¿Cómo sabe el servidor web a quién devolver el resultado del formulario?

¿Cómo sabe el servidor web a quién devolver el resultado del formulario?

Probablemente sea una pregunta estúpida...

Cuando envío un formulario en línea a un servidor web, ¿cómo sabe el servidor que soy yo quien debe devolver el resultado?

Creo que tiene que ver con una conexión http persistente, pero no sé por qué creo que es correcto.

gracias

Respuesta1

Respuesta corta: proviene de la conexión TCP que transporta los datos HTTP. Los sitios web y navegadores modernos trabajan juntos utilizando tecnologías tanto por encima como por debajo de HTTP para mejorar la experiencia del usuario.

HTTP en sí es un protocolo de capa de aplicación, con verbos estándar como GET, POST, HEAD, etc. Es importante comprender que cada uno de estos verbos es "sin estado" en el sentido de que cada verbo se solicita al servidor en completo aislamiento de cualquier otro. peticiones. También es importante comprender que cada verbo implementa un par de solicitud-respuesta, de modo que una solicitud y su respuesta están intrínsecamente ligadas. Como tal, los controladores del protocolo del servidor web siempre rastrearán la información sobre la solicitud para poder enviar la respuesta.

Una conexión TCP se presenta ante una aplicación como un par de flujos de E/S hacia y desde el servidor. Una vez que se establece una conexión TCP, las aplicaciones simplemente leen su flujo de entrada y escriben en su flujo de salida, por lo que no hay forma (válida) de que la aplicación pueda enviar la respuesta a nadie más porque el flujo de salida es parte de su conexión. Busque en la biblioteca Berkeley Sockets si está interesado en ejemplos de cómo se combina todo eso.

Espero que eso ayude. La forma en que todo esto se combina es complicada y lleva algo de tiempo asimilarlo. Solo recuerde, HTTP en sí es un protocolo notablemente simple que tiene un conjunto muy limitado de operaciones y, si bien introducimos capacidades adicionales tanto por debajo como por encima del propio HTTP, no son en sí mismas parte de HTTP.

información relacionada