Jakie informacje obowiązkowe musi zawierać nagłówek żądania HTTP?

Odpowiedzi:

36

GET / HTTP/1.0 jest legalnym żądaniem HTTP.

Jeśli nie ma Hostpola nagłówka, możesz nie uzyskać oczekiwanych rezultatów, jeśli serwer docelowy jest wirtualnym hostem , który nie ma własnego adresu IP, aby odróżnić się od innych hostów wirtualnych.

HTTP 1.1 wymaga tego Hostpola.

gbroiles
źródło
1
Zrobiłem trochę badań i masz rację @ gbroiles. Do wirtualnego hostingu opartego na nazwach wymagana jest przeglądarka z HTTP 1.1. Przeglądarki wysyłają nazwę hosta w nagłówku hosta, a serwer sieciowy obsługuje hosty wirtualne oparte na nazwach, jeśli są skonfigurowane. W starszych przeglądarkach i HTTP 1.0 jest to nieco możliwe, ale potrzebujesz obejścia takiego jak dyrektywa ServerPath w Apache. Na szczęście nowsze przeglądarki implementują rozszerzenia przy użyciu protokołu HTTP 1.0, aby zapewnić wysłanie pola nagłówka hosta. w3.org/Protocols/rfc2616/rfc2616-sec14.html
Stephan Kristyn
1
Czy nadal istnieją przeglądarki obsługujące HTTP 1.0?
Pacerier
Wiele programów klienckich używa protokołu HTTP 1.0. Osoby korzystające z przeglądarek internetowych będą w miarę możliwości korzystać z protokołu HTTP 1.1 lub 2.0, ale mogą uzyskiwać dostęp za pośrednictwem serwera proxy obsługującego tylko HTTP 1.0. Roboty lub boty mogą korzystać z protokołu HTTP 1.0. Proste klienty jak wgetHTTP 1.0. Należy pamiętać, że po stronie serwera nie trzeba podejmować wysiłku, aby obsługiwać klientów HTTP 1.0, ponieważ serwer zgodny z HTTP 1.1 będzie obsługiwał klientów HTTP 1.0 (HTTP 1.1 jest zbudowany tak, aby był progresywnym rozszerzeniem w stosunku do HTTP 1.0; niekompatybilne funkcje, takie jak porty kodowanie i utrzymywanie aktywności domyślnie wyłączone dla żądań HTTP 1.0).
thomasrutter
3

Żądanie nie wymaga żadnego nagłówka HTTP. Nie ma również wymaganych nagłówków odpowiedzi.

Wszystko to i więcej w HTTP 1.1 - RFC 2616

Chris S.
źródło
15
Jesteś błędny. Zgodnie z RFC, które podłączyłeś tutaj: „Klient MUSI zawierać pole nagłówka Hosta we wszystkich komunikatach żądania HTTP / 1.1”. Więc Hostnagłówek jest obowiązkowy.
user219882
2
Prawidłowo, ale nie ma wymogu, aby klient korzystał przede wszystkim z protokołu HTTP / 1.1.
Chris S
2
Długość treści lub kodowanie przesyłania są obowiązkowe tylko wtedy, gdy jednostka otrzyma żądanie lub odpowiedź, aw wielu przypadkach w żądaniu lub odpowiedzi nie będzie elementu (np. Żądanie GET lub odpowiedź 302).
Brandon Rhodes,
6
Nie mogę przegłosować, ale ta odpowiedź jest zła. Napraw lub usuń.
vikingsteve
4
Zgadzam się z vikingsteve. Twoja odpowiedź sugeruje, że HTTP 1.1 nie ma wymaganych nagłówków.
nullstellensatz