¿Cómo es que HTTP no tiene conexión cuando TCP / IP está orientado a la conexión?

HTTP no tiene estado, en realidad no tiene menos conexión. TCP está orientado a la conexión. Cuando syn proviene del cliente, el servidor asigna el buffer y comienza la contabilidad. El servidor envía sincronización. Luego se envía el paquete http real. Ahora, si el paquete está fuera de servicio, TCP tiene buffers específicos para esta conexión para reorganizarlos. Fin o reset cierra la conexión y libera los recursos. La IP del cliente, el puerto, la IP de origen, el puerto y el número de secuencia mantienen el estado de la conexión. HTTP no tiene ningún identificador de este tipo en su paquete para mapear el historial de transacciones. Si los datos del socket como IP, el puerto se pasa como una variable de entorno al programa de procesamiento, HTTP puede rastrear el estado en una conexión. Pero dado que no se debe pedir a las personas que inicien sesión cada vez que se forma una nueva conexión TCP, HTTP usa cookies o sesiones para rastrear el estado de los usuarios a través de la conexión TCP

Debido a que la conexión es un término dependiente del contexto, el contexto es la capa de red en la que estamos operando. En la capa de transporte, generalmente usamos TCP para conectar procesos en hosts separados. En la capa de sesión nos preocupamos por la comunicación entre los agentes cooperantes, por ejemplo, un navegador y un servidor web (en este caso, usando HTTP). El hecho de que una capa esté orientada a la conexión no obliga a ninguna otra capa a estar orientada a la conexión. HTTP está diseñado para que cada mensaje sea una unidad esencialmente independiente de los demás, y cualquier contexto de servicio debe proporcionarse encima, un ejemplo de esto es el uso de cookies. Si estaba orientado a la conexión, los servidores web tendrían que mantener el estado de potencialmente millones de clientes simultáneos durante un período de tiempo arbitrario, ya que muchos clientes podrían desaparecer aleatoriamente sin cerrar sus conexiones de manera ordenada.

Quizás estás confundiendo el significado de sin conexión con apatridia. Las conexiones HTTP pueden ser persistentes, pero el caso normal es que la solicitud y la respuesta se producen dentro del contexto de una sola conexión. Normalmente, el tiempo requerido para que eso suceda es bastante breve, después de lo cual se completa toda la transferencia de datos necesaria para la conexión, y mantener la conexión no tendría ningún propósito.

Lo que le falta a HTTP es cualquier mecanismo para mantener la continuidad entre las conexiones secuenciales. La capacidad de las aplicaciones para saber, por ejemplo, qué hay en su carrito de compras está integrada en la aplicación mediante cookies y otros dispositivos, ya que cada conexión HTTP es una isla, desconocida para cualquier otra conexión HTTP; Son apátridas.

Debido a que cada conexión HTTP no está relacionada con las anteriores, no hay sesiones de aplicación.

Por supuesto, para entregar el mensaje HTTP, hay una sesión TCP en la capa de transporte, pero estas son dos cosas diferentes.

Se considera sin conexión porque la conexión no se mantiene entre las cargas de página.