¿Cómo devuelve un servidor web una solicitud HTTP?

¿Cómo devuelve un servidor web una solicitud HTTP?

Lo siento si esta es una pregunta realmente estúpida; Mi conocimiento de redes es bastante escaso.

Entonces, un usuario realiza una solicitud HTTP a alguna dirección. Esa solicitud proviene de una dirección en una subred local, pero el enrutador sabe que debe enviar la solicitud a su puerta de enlace predeterminada porque la IP de destino no coincide con nada más en su tabla de enrutamiento. La solicitud salta a través de Internet y finalmente es recibida por la máquina de destino (un servidor web). Todo eso tiene sentido.

Pero ahora, ¿cómo logra el servidor web enviar la solicitud de regreso a la máquina local? ¿La solicitud no provino de una dirección IP en una subred local? ¿De dónde obtuvo la dirección IP del enrutador de la máquina local? E incluso si tiene la IP de ese enrutador, ¿cómo se enruta el paquete a la máquina local una vez que llega al enrutador?

Respuesta1

El paquete tiene una dirección de origen como se mencionó anteriormente, pero también tiene un número de puerto asignado. Esto es especialmente necesario en un entorno NAT (donde las IP internas son privadas y la IP externa es constante, como compartir la conexión a Internet). El enrutador asigna un número de puerto aleatorio no utilizado y mantiene una tabla de a quién se refiere el número de puerto (la computadora del usuario). Cuando el enrutador recibe el paquete, mira el número de puerto, lo coincide y lo envía a la computadora/usuario.

no dude en actualizar/corregir esto si lo encuentra incorrecto, pero así es como funciona. Espero que esto ayude.

Respuesta2

La respuesta del servidor web se maneja igual que la solicitud del cliente. Son sólo datagramas IP.

El servidor web tiene una puerta de enlace predeterminada a la que envía su respuesta. La respuesta "salta a través de Internet y finalmente es recibida" por el cliente que originó la solicitud.

El servidor web "no sabe" nada sobre el enrutador del cliente solicitante.

Editar:

Tu comentario delata una suposición que hice.

Estás hablando de un escenario en el que la computadora cliente solicitante tiene una dirección IP privada y está conectada a una red con unaTraducción de Direcciones de Redenrutador (NAT) en el borde de la red del cliente (donde esa red se conecta a Internet).

En ese caso, el enrutador NAT traducirá la dirección IP de la computadora cliente a una dirección IP pública asignada a la interfaz "externa" del enrutador NAT. El enrutador NAT realiza un seguimiento de la solicitud de modo que la respuesta se enruta de regreso al cliente cuando se recibe de Internet.

Respuesta3

La respuesta está enSPI: inspección de paquetes con estado. Así es como un enrutador realiza un seguimiento de dónde enviar una respuesta en su subred. Yo no conozco todos los detalles (nunca he necesitado saberlo), pero si sigues el enlace encontrarás todo lo que probablemente necesites saber. De lo contrario, una búsqueda sobre "Inspección de paquetes con estado" llenará cualquier vacío.

información relacionada