Ricerca intestazioni HTTP

Recupera tutte le intestazioni HTTP restituite da un URL per una tipica richiesta GET con il nostro strumento di ricerca delle intestazioni HTTP.

5 di 2 valutazioni
Ricerca intestazioni HTTP

Ricerca intestazioni HTTP è uno strumento gratuito che recupera tutte le intestazioni di risposta HTTP restituite da un URL per una normale richiesta GET.

Che cosa sono le intestazioni di risposta HTTP?

Le intestazioni di risposta HTTP sono metadati che un server web invia prima del corpo della risposta, per esempio una pagina HTML, un'immagine o un documento JSON. Indicano al client come interpretare, memorizzare nella cache, reindirizzare o proteggere la risposta.

Una risposta HTTP/1.x inizia normalmente con una riga di stato HTTP, seguita dalle intestazioni. In HTTP/2 e HTTP/3, lo stato equivalente viene trasmesso nella pseudo-intestazione :status. Tecnicamente, la riga di stato HTTP/1.x è separata dalle intestazioni, ma viene spesso mostrata insieme a esse perché indica se la richiesta è andata a buon fine. Uno stato 200 significa che la risorsa è stata restituita, 301 o 302 indica un reindirizzamento, 404 segnala che la risorsa non è stata trovata e 500 indica un errore lato server.

Le intestazioni possono provenire dal server di origine, da un reverse proxy o da una rete per la distribuzione dei contenuti come Cloudflare. Alcune vengono aggiunte o rimosse durante il passaggio attraverso questi sistemi, quindi il risultato può descrivere più della sola applicazione che ha generato la pagina.

Schema: una richiesta a un server restituisce le intestazioni di risposta HTTP

Come faccio a controllare le intestazioni HTTP?

Inserisci l'URL completo da controllare, incluso lo schema, per esempio https://www.example.com/account. Lo strumento invia dal proprio server una normale richiesta GET e restituisce le intestazioni HTTP ricevute da quell'URL.

Per confrontare con precisione le intestazioni di risposta, usa le varianti esatte degli URL che vuoi analizzare. Le intestazioni di http://example.com, https://example.com e https://www.example.com possono essere diverse, perché ogni indirizzo può avere reindirizzamenti, regole di cache e configurazioni del server specifici.

Anche la sintassi dell'URL influisce sulla richiesta:

  • Gli spazi non sono caratteri validi in formato grezzo all'interno di un URL e normalmente devono essere codificati con la codifica percentuale, in genere come %20 in un percorso.
  • ? introduce la componente query, mentre & e = sono comunemente usati nelle codifiche delle query in stile modulo, ma non svolgono questi ruoli in tutte le stringhe di query.
  • I nomi di dominio accentati e con caratteri non latini vengono elaborati tramite IDNA e rappresentati come etichette A ASCII, che iniziano comunemente con xn--. I caratteri del percorso, invece, vengono in genere codificati come byte UTF-8 e poi con la codifica percentuale.
  • Un frammento che inizia con # viene gestito dal browser e non viene inviato nella richiesta HTTP.
  • Non esiste una lunghezza massima universale per gli URL. Un server, un proxy o un'applicazione può rifiutare URL molto lunghi.
Lo strumento Ricerca intestazioni HTTP su digily.link, con il suo modulo di inserimento

Come si legge il risultato delle intestazioni HTTP?

Esamina le intestazioni relative al problema che stai analizzando. Nei nomi delle intestazioni non si distingue tra maiuscole e minuscole, mentre la sintassi dei valori può farlo.

Campo del risultato Che cosa indica
Location La destinazione di un reindirizzamento. Normalmente è associata a uno stato 3xx.
Content-Type Il tipo di contenuto restituito, per esempio text/html, application/json o image/png.
Content-Length La dimensione dichiarata del corpo della risposta in byte, se fornita dal server. Può essere omessa nelle risposte suddivise in blocchi o generate dinamicamente.
Cache-Control e Expires Le istruzioni per la memorizzazione nella cache e, se specificata, la scadenza della risposta.
Age L'età calcolata, espressa in secondi, di una risposta memorizzata nella cache dal momento in cui è stata generata o convalidata l'ultima volta. Può includere il tempo trascorso nelle cache a monte.
ETag e Last-Modified Validatori che i client possono usare per verificare se il contenuto memorizzato nella cache è cambiato.
Set-Cookie Una richiesta di memorizzazione di un cookie, inclusi attributi come Secure, HttpOnly e SameSite.
Content-Security-Policy Regole del browser che limitano gli script, gli stili, i frame e le altre risorse che una pagina può caricare.
Strict-Transport-Security Un'istruzione che impone ai browser compatibili di usare HTTPS per il periodo specificato.

Altre intestazioni possono essere specifiche dell'applicazione. Per esempio, Access-Control-Allow-Origin stabilisce quali origini possono leggere una risposta tramite richieste cross-origin del browser. Un'intestazione Server può indicare un software o un proxy, ma non costituisce una prova affidabile della piattaforma sottostante, perché gli amministratori possono modificarla o rimuoverla.

Esempio di risultato prodotto dallo strumento Ricerca intestazioni HTTP

Scenari pratici per la risoluzione dei problemi

I problemi di reindirizzamento sono un motivo comune per esaminare le intestazioni. Supponiamo che https://example.com/old-page restituisca lo stato 301 con Location: https://example.com/new-page. Significa che il server sta indicando al client di richiedere il nuovo indirizzo. Controllando ripetutamente ogni destinazione puoi individuare un ciclo di reindirizzamenti o un passaggio imprevisto tra HTTP e HTTPS.

Se una pagina dietro Cloudflare o un'altra CDN non è aggiornata, esamina Cache-Control, Age, ETag e le eventuali intestazioni di cache specifiche del fornitore. Un valore Age elevato indica l'età calcolata della risposta memorizzata nella cache, che può includere il tempo trascorso nelle cache a monte, non il periodo durante il quale uno specifico intermediario l'ha conservata. Non dimostra che tutte le cache regionali contengano la stessa versione.

Se un'API funziona in uno script lato server ma non nel browser, controlla Content-Type e le intestazioni di risposta CORS, inclusa Access-Control-Allow-Origin. Un endpoint JSON che restituisce text/html potrebbe in realtà fornire una pagina di errore o una schermata di accesso. Se manca l'autorizzazione cross-origin, il browser può bloccare l'accesso anche se il server ha restituito lo stato 200.

Le intestazioni possono essere utili anche quando un sito sembra non disponibile. Una risposta 503 suggerisce un problema temporaneo del server o di un sistema a monte, mentre 404 significa che il percorso richiesto non è stato trovato. Tuttavia, le intestazioni non consentono di diagnosticare ogni malfunzionamento. Se la risoluzione DNS, la connessione TCP o la negoziazione TLS non riesce prima che venga generata una risposta HTTP, potrebbero non esserci intestazioni di risposta da esaminare. Ping permette di effettuare un controllo separato della connettività, mentre Controllo HTTP/2 verifica il supporto del protocollo.

Perché un risultato corretto può sembrare sbagliato?

Un risultato corretto può essere diverso da quello mostrato dal browser perché cache, record DNS e contesto della richiesta possono indirizzare le due richieste verso risposte differenti. Questa ricerca viene eseguita sul server, quindi potrebbe raggiungere un nodo CDN diverso oppure risolvere un record DNS modificato di recente prima o dopo la tua rete locale.

I browser inviano inoltre i propri cookie, i tipi di contenuto accettati, le lingue e i validatori della cache. Di conseguenza, una pagina WordPress a cui hai effettuato l'accesso può restituire regole di cache diverse rispetto a una richiesta anonima proveniente dal server. Anche il routing geografico e i sistemi di gestione dei bot possono modificare la risposta in base alla rete di origine o alle intestazioni della richiesta.

Dopo una modifica al DNS, i resolver con cache possono continuare a usare il record precedente fino alla scadenza del relativo tempo di vita. Quando il traffico raggiunge il nuovo server, un vecchio oggetto della CDN o la cache del browser potrebbe comunque restituire contenuti precedenti. Controlla separatamente l'host risolto, svuota le cache quando opportuno e confronta l'URL esatto, senza presumere che tutti i nomi host usino la stessa configurazione.

Domande frequenti

Questa ricerca mostra anche le intestazioni della richiesta?

No. Recupera le intestazioni di risposta restituite dall'URL per una normale richiesta GET. Le intestazioni della richiesta sono i metadati inviati al server e, per esaminarle completamente, servono gli strumenti per sviluppatori del browser, i log del server o un client da riga di comando.

Gli URL inseriti nello strumento rimangono privati?

La ricerca viene eseguita sul server. I dati inseriti vengono trasmessi a quel server tramite HTTPS e non vengono memorizzati. Evita di inserire URL contenenti password, token di accesso o parametri di query sensibili, perché anche il server di destinazione riceverà tali valori quando viene effettuata la richiesta.

Le intestazioni HTTP possono spiegare un avviso sul certificato?

Di solito non bastano. La connessione TLS viene stabilita prima dell'invio della risposta HTTP, quindi un certificato scaduto, un nome host non corrispondente o un'autorità emittente non attendibile possono impedire la restituzione delle intestazioni. Se l'avviso del browser compare prima del caricamento della pagina, esamina separatamente il certificato e la relativa catena.

Perché vengono restituite più intestazioni Set-Cookie?

Una risposta può impostare più cookie e ciascuno usa il proprio campo Set-Cookie. Non combinarli come se fossero un elenco separato da virgole, perché le date di scadenza dei cookie possono contenere a loro volta delle virgole. Esamina separatamente il dominio, il percorso e gli attributi di sicurezza di ogni cookie.

Posso confrontare il risultato con curl?

Sì. Un comando come curl -D - https://example.com/ -o /dev/null mostra le intestazioni di risposta ed elimina il corpo. Versioni di curl, intestazioni della richiesta, impostazioni dei reindirizzamenti e posizioni di rete diverse possono produrre risultati differenti. Prima di considerare una differenza come un problema del server, assicurati quindi che queste condizioni coincidano.

Strumenti popolari