7. Entity (Entità)
I messaggi di richiesta e risposta possono (MAY) trasferire un'entità se non limitato dal metodo di richiesta o dal codice di stato della risposta. Un'entità è composta da campi di intestazione di entità (entity header field) e da un corpo di entità (entity body), sebbene alcune risposte includeranno solo le intestazioni di entità.
In questa sezione, mittente (sender) e destinatario (receiver) si riferiscono entrambi al client o al server, a seconda di chi invia e chi riceve l'entità.
7.1 Entity Header Fields (Campi di Intestazione di Entità)
I campi di intestazione di entità definiscono meta-informazioni sul corpo dell'entità o, se nessun corpo è presente, sulla risorsa identificata dalla richiesta. Alcune di queste meta-informazioni sono opzionali (OPTIONAL); alcune possono essere richieste (REQUIRED) da parti di questa specifica.
entity-header = Allow ; Section 14.7
| Content-Encoding ; Section 14.11
| Content-Language ; Section 14.12
| Content-Length ; Section 14.13
| Content-Location ; Section 14.14
| Content-MD5 ; Section 14.15
| Content-Range ; Section 14.16
| Content-Type ; Section 14.17
| Expires ; Section 14.21
| Last-Modified ; Section 14.29
| extension-header
extension-header = message-header
Il meccanismo di intestazione di estensione consente di definire campi di intestazione di entità aggiuntivi senza modificare il protocollo, ma non si può presumere che il destinatario possa riconoscere questi campi. I destinatari dovrebbero (SHOULD) ignorare i campi di intestazione non riconosciuti e i proxy trasparenti devono (MUST) inoltrarli.
7.2 Entity Body (Corpo di Entità)
Il corpo dell'entità (se presente) inviato con una richiesta o risposta HTTP è in un formato e codifica definiti dai campi di intestazione dell'entità.
entity-body = *OCTET
Il corpo dell'entità è presente in un messaggio solo quando è presente un corpo del messaggio, come descritto nella sezione 4.3. Il corpo dell'entità si ottiene dal corpo del messaggio decodificando qualsiasi codifica di trasferimento (Transfer-Encoding) che possa essere stata applicata per garantire un trasferimento sicuro e corretto del messaggio.
7.2.1 Type (Tipo)
Quando un corpo di entità è incluso in un messaggio, il tipo di dati di quel corpo è determinato dai campi di intestazione Content-Type e Content-Encoding. Questi definiscono un modello di codifica ordinato a due livelli:
entity-body := Content-Encoding( Content-Type( data ) )
Content-Type specifica il tipo di media dei dati sottostanti. Content-Encoding può (MAY) essere utilizzato per indicare qualsiasi codifica di contenuto aggiuntiva applicata ai dati, generalmente utilizzata per la compressione dei dati, che è una proprietà della risorsa richiesta. Non esiste una codifica predefinita.
Qualsiasi messaggio HTTP/1.1 contenente un corpo di entità dovrebbe (SHOULD) includere un campo di intestazione Content-Type che definisce il tipo di media per quel corpo. Il destinatario può (MAY) tentare di indovinare il tipo di media ispezionando il suo contenuto e/o l'estensione del nome dell'URI utilizzato per identificare la risorsa, se e solo se il campo Content-Type non fornisce un tipo di media. Se il tipo di media rimane sconosciuto, il destinatario dovrebbe (SHOULD) trattarlo come tipo "application/octet-stream".
7.2.2 Entity Length (Lunghezza dell'Entità)
La lunghezza dell'entità (entity-length) di un'entità è la lunghezza del corpo dell'entità o sarebbe la lunghezza del corpo dell'entità prima dell'applicazione di qualsiasi codifica di trasferimento. La sezione 4.4 definisce come determinare la lunghezza di trasferimento di un messaggio.