La diferencia más fundamental entre los dos es que TCP y HTTP funcionan en diferentes capas, es decir, tienen tareas independientes (y radicalmente diferentes) que realizar. Puede tener ambos protocolos en su aplicación, puede tener cualquiera de los dos o no puede tener ninguno.
Saliendo de los niveles inferiores, comencemos con el nivel de red que alberga el famoso protocolo IPv4. Su objetivo principal es enrutar los paquetes de datos desde el origen hasta el destino. No le importa qué datos lleva y si se entregaron al destino o no. Hará su mejor esfuerzo y eso es todo.
Ahora ingrese la capa de transporte, residencia del protocolo TCP. Una vez que se establece la ruta, el protocolo TCP tiene la responsabilidad de transferir los datos de manera confiable. Por lo tanto, tiene un mecanismo para verificar si el paquete se recibió o no (en forma de campos de reconocimiento), para poner los paquetes en secuencia si se volvieron fuera de servicio en tránsito y muchos más. Tampoco le importan los datos que está transmitiendo. UDP es otro protocolo ampliamente utilizado en este nivel, pero esa es una historia diferente.
- Si un cliente solo puede hablar TCP y un servidor solo puede hablar UDP, ¿será posible o no la comunicación entre ellos?
- ¿Puedo tener una dirección IP pública si estoy conectado a través de un enrutador wifi?
- ¿Es normal ver el paquete de solicitud ICMP (ping) en Wireshark si localizo mi propia dirección IP (no loophack)?
- ¿Cuál es la diferencia entre TCP y FTP?
- ¿Dónde tiene lugar todo el proceso de la capa OSI? Considerando una computadora, ¿la función de cada capa tiene lugar dentro de ella?
Y la capa final de interés es la capa de aplicación. Es la capa más cercana a la aplicación y HTTP es solo uno de los diversos protocolos utilizados. La razón por la que es ampliamente popular es que es utilizado por los navegadores web para comunicarse con el servidor web y buscar las páginas web que ve. De la misma manera que los navegadores usan HTTP, los clientes de correo electrónico usan SMTP e IMAP. No tiene ningún papel en la configuración de la conexión, solo es una aplicación específica. Se supone que usted sabe cómo encontrar la ruta al servidor web (courtsey IPv4) y que ha configurado una conexión y puede transferir datos de manera confiable (courtsey TCP). Solo le conciernen los datos que intercambia; cuál es su URL, cuál es su tipo, dónde encontrarlo.