es.phhsnews.com


es.phhsnews.com / ¿Los servidores web solo tienen un sitio web cada uno?

¿Los servidores web solo tienen un sitio web cada uno?


Cuando comienza a aprender cómo los nombres de dominio, direcciones IP, servidores web y sitios web encajan y funcionan juntos, puede ser un poco confuso o abrumador a veces. ¿Cómo está todo listo para funcionar tan suavemente? La publicación de preguntas y respuestas SuperUser de hoy tiene las respuestas a las preguntas de un lector curioso.

La sesión de preguntas y respuestas de hoy nos llega cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios de preguntas y respuestas impulsada por la comunidad.

Foto cortesía de Rosmarie Voegtli (Flickr).

The Question

SuperUser reader user3407319 quiere saber si los servidores web solo tienen un sitio web cada uno:

Basado en lo que entiendo sobre DNS y vinculando un nombre de dominio con la dirección IP del servidor web en el que se almacena un sitio web, ¿significa eso que cada servidor web solo puede contener un sitio web? Si los servidores web tienen más de un sitio web, ¿cómo se resuelve todo para que pueda acceder al sitio web que quiero sin ningún problema o confusión?

¿Los servidores web solo tienen un sitio web cada uno, o tienen más ?

Respuesta

Colaborador SuperUser Bob tiene la respuesta para nosotros:

Básicamente, el navegador incluye el nombre de dominio en la solicitud HTTP para que el servidor web sepa qué dominio se solicitó y puede responder en consecuencia.

Solicitudes HTTP

Así es como ocurre su solicitud HTTP típica:

1. El usuario proporciona una URL, en la forma // host: puerto / ruta.

2. La el navegador extrae la parte del host (dominio) de la URL y la traduce en una dirección IP (si es necesario) en un proceso conocido como resolución de nombre. Esta traducción puede realizarse a través de DNS, pero no tiene que ser así (por ejemplo, el archivo de hosts local en los sistemas operativos comunes omite el DNS).

3. El navegador abre una conexión TCP al puerto especificado o valores predeterminados al puerto 80 en esa dirección IP.

4. El navegador envía una solicitud HTTP. Para HTTP / 1.1, se ve así:

El encabezado del host es estándar y se requiere en HTTP / 1.1. No se especificó en la especificación HTTP / 1.0, pero algunos servidores lo admiten de todos modos.

Desde aquí, el servidor web tiene varias piezas de información que puede usar para decidir cuál debería ser la respuesta. Tenga en cuenta que es posible que un único servidor web se vincule a múltiples direcciones IP.

  • La dirección IP solicitada, desde el socket TCP (la dirección IP del cliente también está disponible, pero esto se usa raramente, y algunas veces para bloqueo / filtrado)
  • El puerto solicitado, desde el socket TCP
  • El nombre de host solicitado, como se especifica en el encabezado del host por el navegador en la solicitud HTTP
  • La ruta solicitada
  • Cualquier otro encabezado (cookies , etc.)

Como parece haber notado, la configuración de alojamiento compartido más común en estos días coloca varios sitios web en una sola dirección IP: combinación de puertos, dejando solo el host para diferenciar entre sitios web.

Esto se conoce como un host virtual basado en el nombre en Apache-land, mientras que Nginx los llama nombres de servidor en los bloques de servidor e IIS prefiere el servidor virtual.

¿Qué ocurre con HTTPS?

HTTPS es un poco diferente. Todo es idéntico al establecimiento de la conexión TCP, pero después de eso debe establecerse un túnel cifrado TLS. El objetivo es no filtrar información sobre la solicitud.

Para verificar que el servidor web sea el propietario de este dominio, el servidor web debe enviar un certificado firmado por un tercero de confianza. El navegador comparará este certificado con el dominio que solicitó.

Esto presenta un problema. ¿Cómo sabe el servidor web qué certificado de host / sitio web se debe enviar si es necesario antes de recibir la solicitud HTTP?

Tradicionalmente, esto se resolvió teniendo una dirección IP (o puerto) dedicada para cada sitio web que requería HTTPS. Obviamente, esto se ha vuelto problemático ya que nos estamos quedando sin direcciones IPv4.

Ingrese SNI (Nombre del servidor). El navegador ahora pasa el nombre de host durante las negociaciones de TLS, por lo que el servidor web tiene esta información lo suficientemente temprano para enviar el certificado correcto. En el lado del servidor web, la configuración es muy similar a cómo se configuran los hosts virtuales HTTP.

La desventaja es que el nombre de host ahora se pasa como texto sin formato antes del cifrado, y se trata esencialmente de información filtrada. Esto generalmente se considera una compensación aceptable aunque el nombre de host normalmente está expuesto en una consulta DNS de todos modos.

¿Qué pasa si solicita un sitio web solo por dirección IP?

Lo que hace el servidor web cuando no lo sabe qué host específico solicitó depende de la implementación y configuración del servidor web. Normalmente, hay un sitio web "predeterminado", "catch-all" o "repliegue" especificado que proporcionará respuestas a todas las solicitudes que no especifiquen explícitamente un host.

Este sitio web predeterminado puede ser su propio sitio web independiente ( a menudo muestra un mensaje de error), o podría ser cualquiera de los otros sitios web del servidor web según las preferencias del administrador del servidor web.


¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios. ¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí.


Cómo agregar accesos directos de texto personalizados a iOS

Cómo agregar accesos directos de texto personalizados a iOS

Escribir el mismo texto una y otra vez: direcciones de correo electrónico, números de teléfono, etc. puede envejecer. Si te encuentras diciendo lo mismo varias veces en tu iPhone, hay una manera más fácil. Al agregar accesos directos de texto al sistema, puede escribir oraciones completas con solo unas pocas letras.

(how-to)

Cómo programar su Ecobee para que entre en el modo de vacaciones

Cómo programar su Ecobee para que entre en el modo de vacaciones

Si se va de vacaciones pronto, y no quiere que le moleste cambiar el termostato mientras trata de disputar el familia, el Ecobee en realidad le permite programar el termostato para entrar en modo ausente con anticipación. La configuración de unas vacaciones en el Ecobee es básicamente ponerlo en modo ausente, lo que reduce los ajustes de temperatura para que su calefacción o el aire acondicionado no funciona con tanta frecuencia mientras está fuera de la casa.

(how-to)