Яку обов’язкову інформацію має містити заголовок запиту HTTP?


Відповіді:


36

GET / HTTP/1.0 - це законний запит HTTP.

Якщо немає Hostполя заголовка, ви можете не отримати результатів, на які ви сподівалися, якщо сервер призначення - це віртуальний хост , який не має власної IP-адреси, щоб відрізняти себе від інших віртуальних хостів.

HTTP 1.1 вимагає цього Hostполя.


1
Я трохи зробив дослідження, і ви маєте рацію @gbroiles. Для віртуального хостингу на основі імен загалом потрібен браузер із HTTP 1.1. Браузери надсилають ім'я хоста в заголовок хоста, а веб-сервер подає віртуальних хостів на основі імен, якщо вони налаштовані. Що стосується старих браузерів і HTTP 1.0, це дещо можливо, але вам потрібне вирішення, як-от Директива ServerPath про апачі. На щастя новіші браузери реалізують розширення під час використання HTTP 1.0 для забезпечення надсилання поля заголовка хоста. w3.org/Protocols/rfc2616/rfc2616-sec14.html
Стефан Крістін

1
Чи є ще браузери, які насправді роблять HTTP 1.0?
Pacerier

Багато агентів користувачів використовують HTTP 1.0. Люди, які використовують веб-браузери, використовуватимуть протокол HTTP 1.1 або 2.0, де це можливо, але вони можуть отримати доступ через проксі-сервер, який підтримує лише HTTP 1.0. Сканери або боти можуть використовувати HTTP 1.0. Прості клієнти, як-от wgetкористуються HTTP 1.0. Зауважте, що для підтримки клієнтів HTTP 1.0 не потрібно докладати жодних зусиль, оскільки сервер, сумісний із HTTP 1.1, підтримуватиме клієнтів HTTP 1.0 (HTTP 1.1 побудований для прогресивного вдосконалення поверх HTTP 1.0; несумісні функції, такі як фрагменти кодування та збереження активного за замовчуванням для вимкнення HTTP 1.0-запитів).
thomasrutter

3

Жоден із заголовків HTTP не вимагається у запиті. Не потрібні також заголовки відповідей.

Все це та багато іншого в HTTP 1.1 - RFC 2616


15
Ви помиляєтесь. Відповідно до RFC, який ви посилаєте тут: "Клієнт ОБОВ'ЯЗКОВО включити поле заголовка хоста у всі повідомлення запиту HTTP / 1.1". Тож Hostзаголовок є обов’язковим.
користувач219882

2
Правильно, але не потрібно, щоб клієнт в першу чергу використовував HTTP / 1.1.
Кріс С

2
Довжина вмісту або кодування передачі є обов'язковими лише в тому випадку, якщо суб'єкт господарювання доставляється із запитом чи відповіддю, і в багатьох випадках запиту чи відповіді бракує сутності (наприклад, запит GET або відповідь 302).
Брендон Родос

6
Я не можу спростувати, але ця відповідь неправильна. Виправте або видаліть.
vikingsteve

4
Я згоден з вікінгом. Ваша відповідь означає, що HTTP 1.1 не має необхідних заголовків.
nullstellensatz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.