Quali sono le informazioni obbligatorie che deve contenere un'intestazione di richiesta HTTP?


Risposte:


36

GET / HTTP/1.0 è una richiesta HTTP legale.

Se non è presente alcun Hostcampo di intestazione, potresti non ottenere i risultati sperati se il server di destinazione è un host virtuale che non ha un proprio indirizzo IP per distinguersi dagli altri host virtuali.

HTTP 1.1 richiede il Hostcampo.


1
Ho fatto un po 'di ricerche da solo e hai ragione @gbroiles. Per l'hosting virtuale basato sul nome è richiesto in generale un browser con HTTP 1.1. Il browser invia il nome host nell'intestazione host e il server Web serve host virtuali basati sul nome, se configurato. Con i browser più vecchi e HTTP 1.0 questo è in qualche modo possibile, ma è necessaria una soluzione alternativa come la Direttiva ServerPath di apache. Fortunatamente i browser più recenti implementano estensioni quando si utilizza HTTP 1.0 per garantire l'invio del campo di intestazione host. w3.org/Protocols/rfc2616/rfc2616-sec14.html
Stephan

1
Esistono ancora browser che eseguono effettivamente HTTP 1.0?
Pacerier

Molti interpreti utilizzano HTTP 1.0. Le persone che utilizzano i browser Web useranno HTTP 1.1 o 2.0 ove possibile, ma potranno accedere tramite un proxy che supporta solo HTTP 1.0. I crawler o i robot possono utilizzare HTTP 1.0. I client semplici come wgetusare HTTP 1.0. Si noti che non è necessario alcun lato server per supportare i client HTTP 1.0, poiché un server conforme a HTTP 1.1 supporterà i client HTTP 1.0 (HTTP 1.1 è stato creato per essere un miglioramento progressivo su HTTP 1.0; funzionalità non compatibili come Chunked codifica e keep-alive impostazione predefinita disattivata per richieste HTTP 1.0).
thomasrutter,

3

Nessuna delle intestazioni HTTP è richiesta in una richiesta. Non ci sono intestazioni di risposta richieste neanche.

Tutto questo e altro in HTTP 1.1 - RFC 2616


15
Ti sbagli. Secondo la RFC che hai collegato qui: "Un client DEVE includere un campo di intestazione Host in tutti i messaggi di richiesta HTTP / 1.1". Quindi l' Hostintestazione è obbligatoria.
user219882

2
Corretto, ma non è necessario che un client utilizzi HTTP / 1.1 in primo luogo.
Chris S,

2
Content-Length o Transfer-Encoding sono obbligatori solo se un'entità viene consegnata con la richiesta o la risposta e in molti casi una richiesta o una risposta mancano di un'entità (come una richiesta GET o una risposta 302).
Brandon Rhodes,

6
Non posso sottovalutare, ma questa risposta è sbagliata. Correggi o rimuovi.
vikingsteve

4
Sono d'accordo con vikingsteve. La tua risposta implica che HTTP 1.1 non ha intestazioni richieste.
nullstellensatz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.