Apakah HTTP header case sensitif?

Dalam posting blog saya menggunakan PHP berikut untuk mengatur tipe konten dari respons:

 header('content-type: application/json; charset=utf-8'); 

Saya baru saja menerima komentar pada posting ini, yang mengatakan bahwa tipe content-type perlu diperhalus, tipe content-type . Benarkah itu Tampaknya bekerja untuk saya dengan semua huruf kecil, dan saya berasumsi bahwa header HTTP tidak peka huruf besar-kecil. Atau apakah itu hanya berfungsi karena browser bagus?

460
10 марта '11 в 14:22 2011-03-10 14:22 Svish diatur pada 10 Maret '11 pukul 14:22 2011-03-10 14:22
@ 5 balasan

Dari RFC 2616 - "Protokol Transfer Hiperteks - HTTP / 1.1" , Bagian 4.2, "Header Pesan" :

Setiap bidang tajuk terdiri dari nama yang diikuti oleh titik dua (":") dan nilai bidang. Nama bidang tidak sensitif huruf.

Pembaruan RFC 7230 tidak mengandung perubahan apa pun dari RFC 2616 di bagian ini.

637
10 марта '11 в 14:24 2011-03-10 14:24 Jawaban diberikan oleh Ignacio Vazquez-Abrams 10 Maret, '11 pada 14:24 2011-03-10 14:24

Nama-nama header HTTP tidak peka huruf besar-kecil, sesuai RFC 2616 :

4.2

Setiap bidang tajuk terdiri dari nama yang diikuti oleh titik dua (":") dan nilai bidang. Nama bidang tidak sensitif huruf.

(Nilai bidang mungkin peka atau tidak peka huruf besar-kecil.)

Jika Anda percaya browser utama untuk mengikutinya, Anda sudah siap.


Omong-omong, tidak seperti kebanyakan HTTP, metode (kata kerja) peka terhadap huruf besar-kecil:

5.1.1 Metode

Token menunjukkan bahwa metode yang akan dijalankan
sumber daya diidentifikasi Request-URI. Metode ini peka terhadap huruf besar-kecil.

  Method = "OPTIONS" ; Section 9.2 | "GET" ; Section 9.3 | "HEAD" ; Section 9.4 | "POST" ; Section 9.5 | "PUT" ; Section 9.6 | "DELETE" ; Section 9.7 | "TRACE" ; Section 9.8 | "CONNECT" ; Section 9.9 | extension-method extension-method = token 
179
10 марта '11 в 14:27 2011-03-10 14:27 jawabannya diberikan kepada Lightness Races in Orbit pada 10 Maret '11 pada 14:27 2011-03-10 14:27

header('Content-type: image/png') tidak berfungsi dengan PHP 5.5 yang menyajikan IE11 karena teks ditampilkan dalam aliran gambar

header('Content-type: image/png') berfungsi saat gambar muncul di gambar

Satu-satunya perbedaan adalah modal "T".

11
02 дек. Jawabannya diberikan oleh Rudiger W. 02 Des. 2015-12-02 12:27 '15 pada 12:27 2015-12-02 12:27

TL; DR; HTTP / 1.1 dan HTTP / 2 header tidak peka huruf besar-kecil.

Menurut RFC 7230 (HTTP / 1.1):

Setiap bidang tajuk terdiri dari bidang tidak peka huruf besar kecil diikuti oleh titik dua (":"), bidang spasi awal awal opsional, bidang nilai, dan spasi tambahan opsional.

https://tools.ietf.org/html/rfc7230#section-3.2

Selain itu, RFC 7540 (HTTP / 2):

Seperti HTTP / 1.x, nama bidang tajuk adalah string ASCII.
karakter yang tidak sensitif huruf besar / kecil.

https://tools.ietf.org/html/rfc7540#section-8.1.2

11
15 дек. Jawaban yang diberikan oleh Afshin Mehrabani 15 Des 2016-12-15 20:22 '16 pada 8:22 malam 2016-12-15 20:22

RFC untuk HTTP (seperti dikutip di atas) menentukan bahwa tajuk tidak peka terhadap huruf besar-kecil, namun Anda akan menemukan bahwa dengan beberapa peramban (saya melihat Anda, IE) yang menggunakan huruf besar untuk setiap kata cenderung lebih baik:

 Location: http://stackoverflow.com Content-Type: text/plain 

menentang

 Location: http://stackoverflow.com Content-Type: text/plain 

Ini bukan "HTTP" standar, tetapi hanya salah satu fitur browser, yang harus kita pikirkan sebagai pengembang.

0
06 мая '16 в 17:55 2016-05-06 17:55 Jawaban diberikan oleh Robert Lerner pada 06 Mei 16 di 17:55 2016-05-06 17:55

Pertanyaan lain tentang tag atau Ask a Question