I messaggi http request o response sono composti da una testata e da un body; si inizia con una status-line e seguono zero o più header del messaggio, poi una riga vuota ed in seguito c'è il corpo del messaggio. Da notare che per le response si ha la stessa struttura delle request.
è interessante notare come è fatta la linea di stato: si ha, oltre alla versione dell'HTTP usato, un codice numerico seguito dalla spiegazione di tale codice. Si osserva che anche il server deve comunicare la sua HTTP-Version, perché a volte può capitare che sia il server a fare una domanda al client. Gli status code sono codici di 3 numeri, come indicato di seguito. I codici che capita più di frequente di incontrare sono quelli del tipo 4xx.
Una risposta completa (full-response) inizia con una status-line e poi ci sono vari headers che si differenziano in tre sotto tipi di header:
General-header: possono essere presenti sia nella request che nella response;
Response-header: è solo presente in una response. I vari tipi di response-header sono elencati di seguito:
Analizziamone qualche d' uno:
Con AGE viene data l'età del documento, per esempio nel caso sia stato fatto un aggiornamento sul proxy, ossia il tempo trascorso dall'ultimo aggiornamento.
Con LOCATION viene data la locazione del documento richiesto.
Con SERVER vengono date informazioni circa il software usato dal server (è analogo allo USER-AGENT per le request).
Con WWW-AUTENTICATE si richiede all'utente di completare una procedura di autenticazione.
Entity-header: si può trovare sia in una request che in una response, ma sono riferiti alle entità, cioè a quello che è riportato nel message-body.
L'entity body, che è il corpo del messaggio che abbiamo richiesto, arriva sotto forma di dati che vanno interpretati, prima come content-type, poi vanno codificati tramite il content-encoding. Per far questo vengono utilizzate gli entity-headers, di cui di seguito ne viene riportato un elenco completo:
Notare che il content-encoding è una codifica ulteriore che viene introdotta sull'entity per comprimerlo. Il content-type definisce il tipo dell'entity-body, questa è una delle cose più importanti dell'HTTP, perchè dà la possibilità di interpretare nel modo corretto l'entity-body. E’ formato da due parti: la prima è di tipo generico (text, image, altro), la seconda parte ci dice il sottotipo (html, jpg, mail, altro). Questo campo permette al nostro browser di prendere l'entity-body e interpretarlo correttamente. Vediamo di seguito un esempio:
In questo esempio il server ci comunica che:
con Date l'istante in cui viene prodotta la risposta;
con Last-Modified la data dell'ultima modifica;
con Content-Length la lunghezza in byte dei dati presenti nel messaggio;
con Content-Type il tipo MIME dei dati.
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.