1. TCP/IP è un gruppo di protocolli che può essere suddiviso in tre livelli: livello di rete, livello di trasporto e livello di applicazione.
Nel livello di rete sono presenti il protocollo IP, il protocollo ICMP, il protocollo ARP, il protocollo RARP e il protocollo BOOTP.
Nel livello di trasporto sono presenti il protocollo TCP e il protocollo UDP.
Nel livello dell'applicazione esistono protocolli come FTP, HTTP, TELNET, SMTP e DNS.
Pertanto, lo stesso HTTP è un protocollo, un protocollo di trasmissione per trasmettere l'ipertesto da un server Web a un browser locale.
2. Il protocollo HTTP si basa sul modello richiesta/risposta. Innanzitutto, il client stabilisce una connessione TCP con il server e invia una richiesta al server, che include il metodo di richiesta, l'URI, la versione del protocollo e i relativi messaggi in stile MIME. Il server risponde con una riga di stato contenente la versione del protocollo del messaggio, un codice di successo e fallimento e lo stile MIME associato del messaggio.
HTTP/1.0 stabilisce una nuova connessione TCP per ogni richiesta/risposta HTTP, quindi una pagina contenente contenuti HTML e immagini dovrà stabilire più connessioni TCP a breve termine. Per stabilire una connessione TCP saranno necessari 3 handshake.
Inoltre, per ottenere la velocità di trasmissione adeguata, TCP deve impiegare ulteriore tempo di connessione di andata e ritorno (RTT). La creazione di ciascun collegamento richiede questo tipo di sovraccarico regolare e non trasporta dati utili effettivi, ma garantisce solo l'affidabilità del collegamento. Pertanto, HTTP/1.1 propone un metodo di implementazione del collegamento sostenibile. HTTP/1.1 stabilirà una connessione TCP solo una volta e la utilizzerà ripetutamente per trasmettere una serie di messaggi di richiesta/risposta, riducendo così il numero di stabilimenti di connessione e il normale sovraccarico della connessione.

3. Conclusione: sebbene HTTP stesso sia un protocollo, in definitiva si basa su TCP. Tuttavia, attualmente, alcuni stanno studiando il protocollo HTTP basato sulla combinazione TCP+UDP.
Cos'è Socket?
Socket è un livello di astrazione software intermedio per la comunicazione tra il livello dell'applicazione e la famiglia di protocolli TCP/IP ed è un insieme di interfacce. Nella modalità di progettazione, Socket è in realtà una modalità di facciata, che nasconde la complessa famiglia di protocolli TCP/IP dietro l'interfaccia Socket. Per gli utenti, tutto è costituito da una serie di semplici interfacce e Socket organizza i dati per soddisfare il protocollo specificato.





