Funzionalità chiave:
* Server client: Un client inizia la comunicazione inviando una richiesta a un server. Il server risponde alla richiesta.
* Richiesta di risposta: La comunicazione si basa su un ciclo di richiesta-risposta. Ogni richiesta dal client genera un'unica risposta dal server.
* Aporeless: Ogni richiesta è indipendente dalle richieste precedenti. Il server non mantiene le informazioni sulle interazioni passate con il client. (Le sessioni sono gestite attraverso meccanismi come i cookie, non inerenti al protocollo stesso.)
* Gestione delle connessioni: HTTP/1.1 introduce connessioni persistenti (Keep-alive). Ciò consente di inviare più richieste e risposte su una singola connessione TCP, migliorando l'efficienza. L'intestazione `Connection` determina se la connessione deve essere mantenuta in vita dopo una risposta. Se non specificato, il comportamento predefinito dipende dalla configurazione del server, ma è generalmente per mantenere viva la connessione.
* Caching: HTTP/1.1 supporta i meccanismi di memorizzazione nella cache per migliorare le prestazioni. Le risposte possono includere intestazioni che indicano se e come possono essere memorizzate nella cache.
* Intestazioni: Sia le richieste che le risposte includono intestazioni che forniscono metadati, come tipo di contenuto, lunghezza, data e altro. Le intestazioni sono coppie di valore chiave.
* Metodi: HTTP definisce diversi metodi (verbi) per specificare il tipo di richiesta, tra cui:get, post, put, elimina, testa, opzioni, ecc.
* Codici di stato: Il server risponde con un codice di stato a tre cifre che indica il risultato della richiesta (ad es. 200 OK, 404 non trovato, 500 errori del server interno).
* Contenuto: La risposta include in genere il contenuto richiesto (ad es. Una pagina HTML, un'immagine, dati JSON).
Struttura di una richiesta:
`` `
Metodo /Path HTTP /1.1
Host:Esempio.com
Utente-agente:Mozilla/5.0 ...
Accetta:testo/html, applicazione/xhtml+xml, ...
Connessione:Keep-Alive
... altre intestazioni ...
[CONSIGLIO BODY (opzionale)]
`` `
struttura di una risposta:
`` `
HTTP/1.1 200 OK
Data:mar, 29 nov 2023 16:03:22 GMT
Server:Apache/2.4.54
Content-Type:text/html; chatset =UTF-8
Lunghezza del contenuto:1234
Connessione:Keep-Alive
... altre intestazioni ...
[Corpo di risposta]
`` `
Limitazioni di HTTP/1.1:
* Blocco della testa: Poiché le richieste vengono inviate in sequenza tramite una singola connessione, una risorsa a carico lento può bloccare le richieste successive, influenzando le prestazioni. Questo è uno svantaggio significativo, affrontato da protocolli successivi come HTTP/2 e HTTP/3.
* Overhead: Le intestazioni di natura e verbose basate sul testo aggiungono un po 'di sovraccarico rispetto ai protocolli binari più recenti.
HTTP/1.1 è migliorato significativamente sul suo predecessore, HTTP/1.0, ma le sue limitazioni hanno spianato la strada allo sviluppo di protocolli più efficienti come HTTP/2 e HTTP/3. Comprendere HTTP/1.1 è ancora prezioso, tuttavia, poiché molti sistemi lo usano ancora e comprendere i suoi principi è cruciale per afferrare l'evoluzione del web.
networking © www.354353.com