Gli header HTTP vengono trasferiti fra client e server e generalmente contengono meta-informazioni sul contenuto effettivo della risorsa (file) trasferita.
Il loro formato è:
NomeHeader: Valore (CRLF)
in una richiesta o una risposta HTTP possono esistere un numero arbitrario di header, il loro ordine non è importante ma è raccomandato un ordine sulla base delle categorie sotto indicate.
Esistono 4 categorie di header, di queste citiamo solo le voci più significative:
1 - GENERAL HEADERS
Contengono informazioni generali non relative al server, al client, al dato trasferito o al protocollo HTTP.
Cache-Control: direttive
- Definisce le direttive sia associate a richieste che a risposte (separate da virgola) a cui devono obbedire tutti i sistemi di caching fra client e server. Quando sul proprio browser si cambiano le impostazioni relative alla cache, di fatto si modificano le direttive gestite con questo header.
Date: data_rfc-1123
- (es: Wed, 23 Oct 2002 18:59:12 GMT) La data è quella in cui il messaggio viene originato.
Pragma: no-cache
- Il contenuto richiesto non deve essere messo in alcuna cache (del browser, di un proxy ecc.). Fondamentale per pagine dinamiche che devono essere sempre aggiornate.
Via: protocollo host_ricevente [commento]
- Va aggiunto da proxy o gateway per indicare i protocolli e gli host intermedi fra client e server attraverso i quali è passata la richiesta.
Upgrade: protocollo/versione
- Permette al client di specificare che supporta una versione di protocollo superiore a quella che si sta utilizzando (tipicamente HTTP/1.1 rispetto a HTTP/1.0) e al server di indicare su quale protocollo ha switchato.
2 - REQUEST HEADERS
Sono riservati alla richieste che il client esegue e contengono informazioni riguardo la richiesta stessa o il client.
Accept: tipo/sottotipo [;q=valore]
- Indica quali tipi di file sono accettati dal client, in formato MIME (es: text/html). Con il parametro q (valori da 0 a 1) si definisce la preferenza relativa al tipo indicato (es: Accept: text/plain; q=0.5, text/html; q=0.8).
Accept-Charset: charset [;q=valore]
- Indica i charset (set di caratteri per le diverse lingue) il client accetta e in che ordine.
Accept-Encoding: encoding-type [;q=valore]
- Indica il tipo di encoding che il client può accettare (es: Accept-Encoding: gzip, default, compress;q=0.9).
Accept-Language: lingua [;q=valore]
- Indica la lingua che il client preferisce e quali può comunque accettare (es: Accept-Language: en-us, en;q=0.5).
Authorization: credenziali
- Quando l'utente si è autenticato e accede a pagine protette, il client con questo header fornisce le credenziali richeste ed evita ultetiori richieste di autenticazione da sottoporre all'utente.
3 - RESPONSE HEADERS
Sono riservati alle risposte del server e contengono info sul server stesso o sulla risorsa richiesta. Fra questi:
Age: secondi
- Tempo stimato da quando è stata generata la risposta sul server.
Server string
- Contiene informazioni sulla versione del software utilizzata dal server
4 -ENTITY HEADERS
Contengono meta-informazioni sull'entità (file) trasferito.
Content-Encoding: encoding
- Indica quali tipi di encoding (es: gzip) sono stati fatte sul contenuto del messaggio, per permettere al client di decodificarlo.
Content-Language: lingue
- Indica la lingua presunta dell'utente che riceve il file, si basa sull'analogo Request header Accept-Languages.
Content-Lenght: bytes
- Indica la lunghezza in byte del file servito.
Expires: data
- Indica la data dopo la quale il file servito è da considerare obsoleto. Va considerata da tutti i meccanismi di cache coinvolti nella richiesta.
Last-Modified: data
- Indica la data di ultima modifica del file.
HyperText Transfer Protocol: sintassi, headers, URI e methods. Introduzione a HTTPS.
Ottenere il php
volendo creare un piccolo files hosting come megaupload, che permette di scaricare anche files php, vorrei sapere qual è l'header adatto da inserire per ottenere il file php non interpretato, altrimenti, non capisco come faccia
RispondiRe: estrapolare i dati
$file = fopen( "url", "r");
scusate il disturbo...
estrapolare il content-lenght con php
Salve. Il titolo è autoesplicativo :) posso in qualche modo estrapolare il content-lenght della mia pagina in php?
Io vorrei creare uno script sul controllo del flusso della banda. Grazie in anticipo per le info.
Re: HTTP
Il protocollo HTTP comunemente scarica immagini, html e qualsiasi file esportato via web. Se vuoi scaricare una immagine, senza usare un browser, puoi usare progrmmi come wget o curl (seguiti dall'URL).
RispondiHTTP: posso scaricare immagini?
Con il protocollo HTTP è possibile scaricare da un server un'immagine jpg?
Il metodo GET restituisce informazioni aggiuntive. COmo posso scaricare solo il file immagine?