HTTP Headers | |||
Sab 25 Lug 2009 |
|
I campi dello header delle richieste e delle risposte HTTP sono descritti nella sezione 14 della RFC 2616.
Richiesta (Requests)
Accept
Indica il tipo di contenuto che può essere accettato in risposta. Indica che la richiesta è limitata ad alcuni specifici tipi di risorsa.Esempio: Accept: text/plain
Accept = "Accept" ":"
#( media-range [ accept-params ] )
media-range = ( "*/*"
| ( type "/" "*" )
| ( type "/" subtype )
) *( ";" parameter )
accept-params = ";" "q" "=" qvalue *( accept-extension )
accept-extension = ";" token [ "=" ( token | quoted-string ) ]
Accept-Charset
Indica quale set di caratteri può essere accettato in risposta.Esempio: iso-8859-5, unicode-1-1;q=0.8
Accept-Charset = "Accept-Charset" ":"
1#( ( charset | "*" )[ ";" "q" "=" qvalue ] )
Accept-Encoding
Simile al campo Accept. Specifica i tipi di compressione accettati dal client.Esempio: Accept-Encoding: compress, gzip
Accept-Encoding = "Accept-Encoding" ":"
1#( codings [ ";" "q" "=" qvalue ] )
codings = ( content-coding | "*" )
Accept-Language
Simile al campo Accept indica la lingua preferita per la risposta.Esempio: Accept-Language: it
Accept-Language = "Accept-Language" ":"
1#( language-range [ ";" "q" "=" qvalue ] )
language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
Accept-Ranges
Consente al server di indicare il tipo di range che può accettare (bytes o none).Esempio: Accept-Ranges: bytes
Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges
acceptable-ranges = 1#range-unit | "none"
Authorization
Il client invia le sue credenziali al server dopo aver ricevuto una risposta con codice HTTP 401 in questo campo.Esempio: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Authorization = "Authorization" ":" credentials
Cache-Control
Campo usato per specificare le direttive che devono essere osservate da tutti i meccanismi di caching lungo la catena richiesta/risposta.Esempio: Cache-Control: no-cache
Cache-Control = "Cache-Control" ":" 1#cache-directive
cache-directive = cache-request-directive
| cache-response-directive
cache-request-directive =
"no-cache"
| "no-store"
| "max-age" "=" delta-seconds
| "max-stale" [ "=" delta-seconds ]
| "min-fresh" "=" delta-seconds
| "no-transform"
| "only-if-cached"
| cache-extension
cache-response-directive =
"public"
| "private" [ "=" <"> 1#field-name <"> ]
| "no-cache" [ "=" <"> 1#field-name <"> ]
| "no-store"
| "no-transform"
| "must-revalidate"
| "proxy-revalidate"
| "max-age" "=" delta-seconds
| "s-maxage" "=" delta-seconds
| cache-extension
cache-extension = token [ "=" ( token | quoted-string ) ]
Connection
Consente di specificare le opzioni per questa particolare connessione.Connection: Keep Alive -> Connessione da tenere attiva anche dopo la risposta
Connection: Close -> Connessione da chiudere dopo la risposta
Esempio: Connection: close
Connection = "Connection" ":" 1#(connection-token)
connection-token = token
Content-Length
Indica la dimensione del corpo della richiesta espressa in byte.Esempio: Content-Length: 3495
Content-Length = "Content-Length" ":" 1*DIGIT
Content-Type
Indica il tipo del corpo della richiesta.Esempio: Content-Type: text/html; charset=ISO-8859-4
Content-Type = "Content-Type" ":" media-type
Date
Indica la data e l'ora in cui è stato creato il messaggio.Esempio: Date: Tue, 15 Nov 1994 08:12:31 GMT
Date = "Date" ":" HTTP-date
Expect
Indica che sono richiesti particolari comportamenti dal client.Esempio: Expect: 100-continue
Expect = "Expect" ":" 1#expectation
expectation = "100-continue" | expectation-extension
- expectation-extension = token [ "=" ( token | quoted-string )
*expect-params ]
expect-params = ";" token [ "=" ( token | quoted-string ) ]
From
Indica l'indirizzo email dell'utente che ha fatto la richiesta.Esempio: From: user@email.com
From = "From" ":" mailbox
Host
Indica l'host ed il numero di porta della risorsa che viene richiesta.Esempio: Host: www.w3.org
Host = "Host" ":" host [ ":" port ]
If-Match
L'azione sarà eseguita solo se la entity tag fornita nella richiesta corrisponde con una delle entity tag del server.Esempio: If-Match: "xyzzy"
If-Match = "If-Match" ":" ( "*" | 1#entity-tag )
If-Modified-Since
Se la risorsa richiesta è stata modificata dopo l'istante di tempo specificato in questo campo allora viene restituita nella risposta, altrimenti la risorsa non viene restituita e viene inviato un codice HTTP 304.Esempio: If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-Modified-Since = "If-Modified-Since" ":" HTTP-date
If-None-Match
Il client invia al server in questo campo una lista delle entity tag relative alle entità che ha precedentemente ottenuto. Se una qualsiasi delle entity tag corrisponde alla entity tag della risorsa richiesta il server non dovrà trasferire la risorsa al client (a meno che questa non sia stata modificata dopo la data indicata nel campo If-Modified-Since), altrimenti la risorsa dovrà essere inviata al client.Esempio: If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag )
If-Range
Se il client ha già nella sua cache una parte dell'entità e vuole aggiornare l'intera entità può inviare una richiesta specificando in questo campo quale parte dell'entità dovrà essere inviata. Se però l'entità è stata modificata il client dovrebbe fare una seconda richiesta per avere l'intera entità.If-Range = "If-Range" ":" ( entity-tag | HTTP-date )
If-Unmodified-Since
Il server invierà la risorsa richiesta se la risorsa non è stata modificata a partire dalla data e dall'ora indicata in questo campo.Esempio: If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date
Max-Forwards
Limita il numero di volte che il messaggio può essere inviato attraverso proxy e gateway.Esempio: Max-Forwards: 8
Max-Forwards = "Max-Forwards" ":" 1*DIGIT
Pragma
Il campo Pragma è usato per includere direttive specifiche dell'implementazione che potranno avere effetti lungo alla catena richiesta/risposta.Esempio: Pragma: no-cache
Pragma = "Pragma" ":" 1#pragma-directive
pragma-directive = "no-cache" | extension-pragma
extension-pragma = token [ "=" ( token | quoted-string ) ]
Proxy-Authorization
Il campo contiene le credenziali per l'autenticazione con un proxy.Esempio: Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Proxy-Authorization = "Proxy-Authorization" ":" credentials
Range
Il campo specifica quale parte (quale range) della risorsa è stata richiesta.Esempio: Range: bytes=300-599
ranges-specifier = byte-ranges-specifier
byte-ranges-specifier = bytes-unit "=" byte-range-set
byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec )
byte-range-spec = first-byte-pos "-" [last-byte-pos]
first-byte-pos = 1*DIGIT
last-byte-pos = 1*DIGIT
Referer
Indica l'URI della risorsa in cui è stata ottenuta l'URI della risorsa che si sta richiedendo.Esempio: Referer: http://www.w3.org/hypertext/DataSources/Overview.html
Referer = "Referer" ":" ( absoluteURI | relativeURI )
TE
Indica quale tipi di compressione sono accettati dal client.Esempio: TE: deflate;q=0.5
TE = "TE" ":" #( t-codings )
t-codings = "trailers" | ( transfer-extension [ accept-params ] )
Upgrade
Il client indica in questo campo i protocolli che è in grado di supportare e chiede di passare ad un altro protocollo.Esempio: Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Upgrade = "Upgrade" ":" 1#product
User-Agent
Contiene l'user agent.Esempio: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
User-Agent = "User-Agent" ":" 1*( product | comment )
Via
In questo campo vengono inseriti i dati relativi ai gateway e ai proxy (protocolli e host intermedi) attraverso cui è passata la richiesta e la relativa risposta.Esempio: Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Via = "Via" ":" 1#( received-protocol received-by [ comment ] )
received-protocol = [ protocol-name "/" ] protocol-version
protocol-name = token
protocol-version = token
received-by = ( host [ ":" port ] ) | pseudonym
pseudonym = token
Warning
Avvertenza su possibili problemi.Possibili valori
- 110 Response is stale
- 111 Revalidation failed
- 112 Disconnected operation
- 113 Heuristic expiration
- 199 Miscellaneous warning
Warning = "Warning" ":" 1#warning-value
warning-value = warn-code SP warn-agent SP warn-text [SP warn-date]
warn-code = 3DIGIT
warn-agent = ( host [ ":" port ] ) | pseudonym
; the name or pseudonym of the server adding
; the Warning header, for use in debugging
warn-text = quoted-string
warn-date = <"> HTTP-date <">
Risposta (Responses)
Accept-Ranges
Il server indica quale tipo di range supporta.Esempio: Accept-Ranges: bytes
Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges
acceptable-ranges = 1#range-unit | "none"
Age
Indica il tempo (stimato) da quando la risposta è stata generata dal server.Esempio: Age: 25
Age = "Age" ":" age-value
age-value = delta-seconds
Allow
Indica la lista dei metodi supportati per la risorsa richiesta.Esempio: Allow: GET, HEAD, PUT
Allow = "Allow" ":" #Method
Cache-Control
Indica le direttive che devono essere rispettate da tutti i meccanismi di caching lungo la catena di richiesta e di risposta.Esempio: Cache-Control: no-cache
Cache-Control = "Cache-Control" ":" 1#cache-directive
cache-directive = cache-request-directive
| cache-response-directive
cache-request-directive =
"no-cache"
| "no-store"
| "max-age" "=" delta-seconds
| "max-stale" [ "=" delta-seconds ]
| "min-fresh" "=" delta-seconds
| "no-transform"
| "only-if-cached"
| cache-extension
cache-response-directive =
"public"
| "private" [ "=" <"> 1#field-name <"> ]
| "no-cache" [ "=" <"> 1#field-name <"> ]
| "no-store"
| "no-transform"
| "must-revalidate"
| "proxy-revalidate"
| "max-age" "=" delta-seconds
| "s-maxage" "=" delta-seconds
| cache-extension
cache-extension = token [ "=" ( token | quoted-string ) ]
Content-Encoding
Indica il tipo di compressione applicata ai dati.Esempio: Content-Encoding: gzip
Content-Encoding = "Content-Encoding" ":" 1#content-coding
Content-Language
Indica la lingua della risorsa inviata.Esempio: Content-Language: da
Content-Language = "Content-Language" ":" 1#language-tag
Content-Length
Indica la dimensione del corpo della risposta espresso in byte.Esempio: Content-Length: 3495
Content-Length = "Content-Length" ":" 1*DIGIT
Content-Location
Questo campo può essere usato per indicare una diversa locazione per la risorsa qualora la risorsa sia accessibile anche ad un'altra locazione.Esempio: Content-Location: /copia/index.htm
Content-Location = "Content-Location" ":"
( absoluteURI | relativeURI )
Content-MD5
Questo campo contiene la firma MD5 del corpo dell'entità.Esempio: Content-MD5: W2hlY67gSw50ZWdyaXR5SD==
Content-MD5 = "Content-MD5" ":" md5-digest
md5-digest = <base64 of 128 bit MD5 digest as per RFC 1864>
Content-Range
Indica quale parte della risorsa richiesta è stata inviata.Esempio: Content-Range: bytes 500-1233/1234
Content-Range = "Content-Range" ":" content-range-spec
content-range-spec = byte-content-range-spec
byte-content-range-spec = bytes-unit SP
byte-range-resp-spec "/"
( instance-length | "*" )
byte-range-resp-spec = (first-byte-pos "-" last-byte-pos)
| "*"
instance-length = 1*DIGIT
Content-Type
Indica il MIME-type della risorsa.Esempio: Content-Type: text/html; charset=utf-8
Content-Type = "Content-Type" ":" media-type
Date
Indica la data e l'ora in cui il messaggio è stato generato.Esempio: Date: Tue, 15 Nov 1994 08:12:31 GMT
Date = "Date" ":" HTTP-date
ETag
Il campo contiene la ETag (Entity Tag).Esempio: ETag: "xyzzy"
ETag = "ETag" ":" entity-tag
Expires
Indica la data e l'ora dopo la quale la risposta deve essere considerata obsoleta.Esempio: Expires: Thu, 01 Dec 1994 16:00:00 GMT
Expires = "Expires" ":" HTTP-date
Last-Modified
Indica la data e l'ora in cui la risorsa richiesta è stata modificata per l'ultima volta.Esempio: Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Last-Modified = "Last-Modified" ":" HTTP-date
Location
Campo usato per la redirezione o nel caso in cui una nuova risorsa è stata creata.Esempio: Location: http://www.w3.org/pub/WWW/People.html
Location = "Location" ":" absoluteURI
Pragma
Il campo Pragma è usato per includere direttive specifiche dell'implementazione che potranno avere effetti lungo alla catena richiesta/risposta.Esempio: Pragma: no-cache
Pragma = "Pragma" ":" 1#pragma-directive
pragma-directive = "no-cache" | extension-pragma
extension-pragma = token [ "=" ( token | quoted-string ) ]
Proxy-Authenticate
È inclusa come parte di una risposta con codice HTTP 407 Proxy Authentication Required. Nel campo è indicato lo schema di autenticazione e i parametri applicabili.Proxy-Authenticate = "Proxy-Authenticate" ":" 1#challenge
Retry-After
Usato nel caso di risposta con codice HTTP 503 Service Unavailable per indicare al client dopo quanto tempo inoltrare di nuovo la richiesta. Può indicare un numero di secondi o una data dopo cui ritentare la richiesta.Esempio: Retry-After: 120
Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds )
Server
Contiene informazioni sul server.Esempio: Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Server = "Server" ":" 1*( product | comment )
Trailer
Trailer = "Trailer" ":" 1#field-name
Transfer-Encoding
La compressione usata per trasferire l'entità all'utente.Esempio: Transfer-Encoding: chunked
Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding
Vary
Vary = "Vary" ":" ( "*" | 1#field-name )
Via
In questo campo vengono inseriti i dati relativi ai gateway e ai proxy (protocolli e host intermedi) attraverso cui è passata la richiesta e la relativa risposta.Esempio: Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Via = "Via" ":" 1#( received-protocol received-by [ comment ] )
received-protocol = [ protocol-name "/" ] protocol-version
protocol-name = token
protocol-version = token
received-by = ( host [ ":" port ] ) | pseudonym
pseudonym = token
Warning
Avvertenza su possibili problemi.Possibili valori
- 110 Response is stale
- 111 Revalidation failed
- 112 Disconnected operation
- 113 Heuristic expiration
- 199 Miscellaneous warning
Warning = "Warning" ":" 1#warning-value
warning-value = warn-code SP warn-agent SP warn-text [SP warn-date]
warn-code = 3DIGIT
warn-agent = ( host [ ":" port ] ) | pseudonym
; the name or pseudonym of the server adding
; the Warning header, for use in debugging
warn-text = quoted-string
warn-date = <"> HTTP-date <">
WWW-Authenticate
Indica lo schema di autenticazione che deve essere seguito per poter accedere alla risorsa richiesta.WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge