Apa informasi wajib yang harus diisi oleh Kepala Permintaan HTTP?

Jawaban:

36

GET / HTTP/1.0 adalah permintaan HTTP legal.

Jika tidak ada Hostbidang tajuk, Anda mungkin tidak mendapatkan hasil yang Anda harapkan jika server tujuan adalah host virtual yang tidak memiliki alamat IP sendiri untuk membedakan dirinya dari host virtual lainnya.

HTTP 1.1 membutuhkan Hostbidang.

gbroiles
sumber
1
Saya melakukan sedikit riset sendiri dan Anda benar @giles. Untuk Hosting Virtual Berbasis Nama, Browser dengan HTTP 1.1 diperlukan secara umum. Browser mengirimkan nama host di header host dan server Web melayani host virtual berbasis nama jika dikonfigurasi. Dengan browser yang lebih lama dan HTTP 1.0 yang agak mungkin, tetapi Anda membutuhkan solusi seperti ServerPath Directive apache. Untungnya browser yang lebih baru menerapkan ekstensi ketika menggunakan HTTP 1.0 untuk memastikan pengiriman bidang header host. w3.org/Protocols/rfc2616/rfc2616-sec14.html
Stephan Kristyn
1
Apakah masih ada browser yang benar-benar melakukan HTTP 1.0?
Pacerier
Banyak agen pengguna menggunakan HTTP 1.0. Orang yang menggunakan browser web akan menggunakan HTTP 1.1 atau 2.0 jika memungkinkan tetapi mereka dapat mengakses melalui proxy yang hanya mendukung HTTP 1.0. Perayap atau bot dapat menggunakan HTTP 1.0. Klien sederhana suka wgetmenggunakan HTTP 1.0. Perhatikan bahwa tidak ada upaya di sisi server yang diperlukan untuk mendukung klien HTTP 1.0, karena server yang memenuhi HTTP 1.1 akan mendukung klien HTTP 1.0 (HTTP 1.1 dibangun untuk menjadi peningkatan progresif di atas HTTP 1.0; fitur yang tidak kompatibel seperti chunked encoding dan keep-live default ke off untuk permintaan HTTP 1.0).
thomasrutter
3

Tidak ada Judul HTTP yang diperlukan dalam Permintaan. Tidak ada header Respons yang disyaratkan juga.

Semua itu dan lebih banyak lagi di HTTP 1.1 - RFC 2616

Chris S
sumber
15
Anda salah. Menurut RFC yang Anda tautkan di sini: "Seorang klien HARUS menyertakan bidang header Host di semua pesan permintaan HTTP / 1.1". Jadi Hosttajuk itu wajib.
user219882
2
Benar, tetapi tidak ada persyaratan bahwa klien menggunakan HTTP / 1.1 di tempat pertama.
Chris S
2
Konten-Panjang atau Transfer-Pengodean hanya wajib jika suatu entitas dikirimkan dengan permintaan atau respons, dan dalam banyak kasus permintaan atau respons akan kekurangan entitas (seperti permintaan GET, atau respons 302).
Brandon Rhodes
6
Saya tidak bisa memilih, tetapi jawaban ini salah. Harap perbaiki atau hapus.
vikingsteve
4
Saya setuju dengan vikingsteve. Jawaban Anda menyiratkan bahwa HTTP 1.1 tidak memiliki tajuk yang diperlukan.
nullstellensatz