Apakah ada ukuran maksimum yang diizinkan untuk header HTTP? Jika demikian, apakah itu? Jika tidak, apakah ini sesuatu yang spesifik untuk server atau standar yang diterima untuk memungkinkan header dengan ukuran berapa pun?
http
http-headers
Cory
sumber
sumber
Seperti yang dikatakan vartec di atas, spesifikasi HTTP tidak menentukan batas, namun banyak server melakukannya secara default. Ini berarti, secara praktis, batas bawah adalah 8K . Untuk sebagian besar server, batas ini berlaku untuk jumlah baris permintaan dan SEMUA bidang tajuk (jadi singkatkan cookie Anda).
Perlu dicatat bahwa nginx menggunakan ukuran halaman sistem secara default, yaitu 4K pada kebanyakan sistem. Anda dapat memeriksa dengan program kecil ini:
pagesize.c:
Kompilasi dengan
gcc -o pagesize pagesize.c
kemudian jalankan./pagesize
. Server ubuntu saya dari Linode dengan patuh memberi tahu saya bahwa jawabannya adalah 4k.sumber
LimitRequestLine
danLimitRequestFieldSize
berlaku untuk setiap baris tajuk HTTP secara perorangan ... bukan "jumlah ..."Nilai HTTP Header dibatasi oleh implementasi server. Spesifikasi Http tidak membatasi ukuran tajuk.
Sebagian besar server akan kembali
413 Entity Too Large
atau sesuai kesalahan 4xx ketika ini terjadi.Ukuran header HTTP yang tidak tertutup membuat server terekspos terhadap serangan dan dapat menurunkan kapasitasnya untuk melayani lalu lintas organik.
Sumber
sumber
Berikut adalah batasan server web paling populer
sumber
Saya juga menemukan bahwa dalam beberapa kasus alasan 502/400 dalam kasus banyak header bisa jadi karena sejumlah besar header tanpa memperhatikan ukuran. dari dokumen
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.http.maxhdr
sumber