A che servono gli header HTTP? Servono a capire che cosa succeda durante la connessione ad un sito o ad un servizio web, e possono essere utili per inquadrare al meglio eventuali problemi o bug, e poterli risolvere. Per capire cosa sia un header HTTP dobbiamo chiederci cosa succeda dietro le quinte quando, ad esempio, proviamo ad aprire un indirizzo internet nel nostro browser.
il client avrà inviato una richiesta su protocollo HTTPS (Hyper Text Transfer Protocol Secure), al web server del sito, mediante DNS. Avrà richiesto di vedere nello specifico la home page del sito, ovviamente:ed il server dovrà fornire una risposta del tipo “OK”, se nulla ostacola l’operazione, oppure “KO” in caso di errore/i.
In genere possiamo vedere gli header HTTP mediante una linea di comando del programma cURL: le modalità principali sono mediante GET o mediante POST. La differenza tra i due è semplice: le GET appendono gli eventuali parametri della richiesta direttamente nell’URL, sia in chiaro che in forma crittografata, mentre le POST le includono sempre nel corpo (body) della richiesta. Ci sono anche altri tipi di richieste che possono essere utili in questo ambito, come ad esempio UPDATE.
I browser in qualche modo possono emulare quasi tutte e due le modalità , sia POST che GET, ma con qualche limitazione (in alcuni casi): per questo è molto consigliabile fare debug usando client dedicati come ad esempio PostMan.
Header HTTP di tipo GET
Sono le cURL classiche, per cosଠdire, e si possono formulare come segue. Le risposte saranno tipicamente JSON o XML da parserizzare e rendere (con un ulteriore passaggio) all’interno di un risultato finale: un PDF o una pagina HTML, di norma.
Gli HTTP headers (intestazioni HTTP) permettono al client ed al server di scambiarsi le informazioni che gli servono e comunicare secondo una convenzione comune. Un header HTTP (ma anche HTTPS per estensione) è fatto da una triade del tipo:
un nome;
un segno di due punti (:);
un valore;
Spazi e a capo, in questo frangente, vengono solitamente ignorati.
Esempi di header HTTP
Gli header HTTP sono in genere trasmessi singolarmente o in gruppo, nella forma seguente:
Accept: text/html
oppure:
Accept-Charset: utf-8
oppure, ancora:
Content-Length: 348
ed indicano rispettivamente: un contenuto in HTML, un charset impostato a UTF-8 ed una dimensione del contenuto di 348 byte. Quindi sono insiemi di coppie:
chiave: valore
dove la chiave indica il nome della proprietà e valore il suo… valore, per l’appunto.
Come trovare gli header HTTP
Gli header HTTP si possono identificare aprendo una linea di comando (terminale) sul proprio computer, e digitando un comando cURL, nella forma base:
curl -I www.google.it
che restituirà qualcosa del genere, da leggersi come elenco di coppie per riga. Nell’esempio vediamo, tanto per capirci, che il campo Date ha valore Sun, 22 Mar 2020 11:39:30 GMT, che quello Expires è pari a -1, che il campo Cache-Control è impostato su private, max-age=0 e cosଠvia.
HTTP/1.1 200 OK Date: Sun, 22 Mar 2020 11:39:30 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1 P3P: CP=”This is not a P3P policy! See g.co/p3phelp for more info.” Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Set-Cookie: 1P_JAR=2020-03-22-11; expires=Tue, 21-Apr-2020 11:39:30 GMT; path=/; domain=.google.it; Secure Set-Cookie: NID=200=KXE32BblqlTYt6X7Tqiu-4JKuLSvzyGGtS-C231TbzOvvmZW7wkwlQsgiRKXnC5LGgbc-6MztIkB1kAwerTBJ8OM7LN5t409YXVjO6ZpsLxgm_BKReE0oLUi5YtEUNVF7kFDTjxk1TEBnLzps86Sbg_yNe2pRe5tecz3UapbH38; expires=Mon, 21-Sep-2020 11:39:30 GMT; path=/; domain=.google.it; HttpOnly Transfer-Encoding: chunked Accept-Ranges: none Vary: Accept-Encoding
In alternativa, se si preferisce un tool con interfaccia grafica, si può ricorrere al tool per trovare l’IP di un dominio sul nostro sito, che mostra anche informazioni sugli header.
Tipologia di Header HTTP
Gli header HTTP sono in genere di quattro tipi, che corrispondono a specifici record che vengono o meno riempiti di dati:
General header: sono header comuni sia al client che al server
Request header: header di richiesta con info varie su come è stata effettuata e da chi
Response header: header di risposta con info sulla posizione del server e simili
Entity header: contiene informazioni aggiuntive come dimensione della risposta e tipo-MIME.
Un altro modo per raggrupparli prevede di suddividerli sulla base dello scopo che hanno: si chiamano header End-to-End, che corrispondono a quello iniziale e finale di ogni coppia richiesta/risposta, e poi abbiamo gli header Hop-By-Hop che invece sono utili a livello di trasporto, e sono ad esempio:
Sono spesso vitali per le prestazionidella pagina web in termini di velocità di caricamento, in molti casi, ed interessano la parte SEO tecnica del sito.
è utile per determinare la data di ultima modifica di un URL, in modo che (ad esempio) browser e motori di ricerca non ci passino inutilmente più volte, consumando crawl-budget. Dipendono dalle condizioni If-Modified-Since oppureIf-Unmodified-Since.
Questo portale esiste da 4802 giorni (13 anni), e contiene ad oggi 4996 articoli (circa 3.996.800 parole in tutto) e 31 servizi online gratuiti. – Leggi un altro articolo a caso
Utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Lo facciamo per migliorare l'esperienza di navigazione e per mostrare annunci personalizzati. Il consenso a queste tecnologie ci consentirà di elaborare dati quali il comportamento di navigazione o gli ID univoci su questo sito. Il mancato consenso o la revoca del consenso possono influire negativamente su alcune caratteristiche e funzioni.
Funzionale
Sempre attivo
L'archiviazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire l'uso di un servizio specifico esplicitamente richiesto dall'abbonato o dall'utente, o al solo scopo di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
L'archiviazione tecnica o l'accesso sono necessari per lo scopo legittimo di memorizzare le preferenze che non sono richieste dall'abbonato o dall'utente.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici.L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici anonimi. Senza un mandato di comparizione, una conformità volontaria da parte del vostro Fornitore di Servizi Internet, o ulteriori registrazioni da parte di terzi, le informazioni memorizzate o recuperate per questo scopo da sole non possono di solito essere utilizzate per l'identificazione.
Marketing
L'archiviazione tecnica o l'accesso sono necessari per creare profili di utenti per inviare pubblicità, o per tracciare l'utente su un sito web o su diversi siti web per scopi di marketing simili.