1. TCP/IP est un groupe de protocoles qui peut être divisé en trois couches : couche réseau, couche transport et couche application.
Dans la couche réseau, il existe le protocole IP, le protocole ICMP, le protocole ARP, le protocole RARP et le protocole BOOTP.
Il existe le protocole TCP et le protocole UDP dans la couche transport.
Dans la couche application, il existe des protocoles tels que FTP, HTTP, TELNET, SMTP et DNS.
Par conséquent, HTTP lui-même est un protocole, un protocole de transmission permettant de transmettre de l'hypertexte d'un serveur Web à un navigateur local.
2. Le protocole HTTP est basé sur le modèle requête/réponse. Tout d'abord, le client établit une connexion TCP avec le serveur et envoie une requête au serveur, qui inclut la méthode de requête, l'URI, la version du protocole et les messages de style MIME associés. Le serveur répond avec une ligne d'état contenant la version du protocole du message, un code de réussite et d'échec et le style MIME associé du message.
HTTP/1.0 établit une nouvelle connexion TCP pour chaque requête/réponse HTTP, donc une page contenant du contenu HTML et des images devra établir plusieurs connexions TCP à court terme. L'établissement d'une connexion TCP nécessitera 3 handshakes.
De plus, afin d'obtenir la vitesse de transmission appropriée, TCP doit consacrer un temps de connexion aller-retour (RTT) supplémentaire. L'établissement de chaque lien nécessite ce type de surcharge régulière, et il ne transporte pas de données réellement utiles, mais assure uniquement la fiabilité du lien. Par conséquent, HTTP/1.1 propose une méthode de mise en œuvre de liens durable. HTTP/1.1 n'établira une connexion TCP qu'une seule fois et l'utilisera à plusieurs reprises pour transmettre une série de messages de requête/réponse, réduisant ainsi le nombre d'établissements de connexion et la surcharge de connexion régulière.

3. Conclusion : Bien que HTTP soit lui-même un protocole, il est finalement basé sur TCP. Cependant, à l'heure actuelle, certains étudient le protocole HTTP basé sur un mélange TCP+UDP.
Qu’est-ce que Socket ?
Socket est une couche d'abstraction logicielle intermédiaire pour la communication entre la couche application et la famille de protocoles TCP/IP, et il s'agit d'un ensemble d'interfaces. En mode conception, Socket est en fait un mode façade, qui cache la famille complexe de protocoles TCP/IP derrière l'interface Socket. Pour les utilisateurs, un ensemble d'interfaces simples suffit, et Socket organise les données pour répondre au protocole spécifié.





