Tutorial terper...login
Tutorial terperinci HTTP
pengarang:php.cn  masa kemas kini:2022-04-11 13:41:55

Maklumat pengepala respons HTTP


Pengepala permintaan HTTP memberikan maklumat tentang permintaan, respons atau entiti penghantar lain.

Dalam bab ini kami akan memperkenalkan maklumat pengepala respons HTTP secara terperinci.

Diubah TerakhirMasa pengubahsuaian terakhir dokumen Pelanggan boleh memberikan tarikh melalui pengepala permintaan Jika-Diubahsuai-Sejak dan permintaan akan dianggap sebagai GET bersyarat, hanya masa pengubahsuaian adalah lewat daripada yang ditentukan Dokumen masa akan dikembalikan, jika tidak, status 304 (Tidak Diubahsuai) juga boleh ditetapkan menggunakan kaedah setDateHeader. Lokasi menunjukkan bahawa pelanggan harus tiba di tempat untuk mendapatkan semula dokumen Lokasi biasanya tidak ditetapkan secara langsung, tetapi melalui kaedah sendRedirect HttpServletResponse, yang juga menetapkan kod status kepada 302 <. . melalui halaman setHeader("Refresh", "5; URL=http://host/path"). URL=http://host/path"> dalam kawasan HEAD ​​halaman HTML. Ini kerana, Muat semula automatik atau pengalihan semula adalah penting untuk penulis HTML yang tidak boleh menggunakan CGI atau Servlet. Walau bagaimanapun, untuk Servlets, ia lebih mudah untuk menetapkan pengepala Muat Semula secara langsung.Ambil perhatian bahawa maksud Muat semula ialah "muat semula halaman ini atau akses halaman yang ditentukan selepas N saat", bukan "muat semula halaman ini atau akses halaman yang ditentukan setiap N saat". Oleh itu, muat semula berterusan memerlukan penghantaran pengepala Refresh setiap kali dan penghantaran kod status 204 boleh menghalang penyemak imbas daripada terus memuat semula, sama ada menggunakan pengepala Refresh atau .

Perhatikan bahawa pengepala Refresh bukan sebahagian daripada spesifikasi HTTP 1.1 rasmi, tetapi merupakan sambungan, tetapi kedua-dua Netscape dan IE menyokongnya.
Tajuk BalasPenerangan
BenarkanKaedah permintaan yang manakah (seperti GET, POST) disokong oleh pelayan menunggu).
Pengekodan KandunganKaedah pengekodan (Pengekodan) dokumen. Hanya selepas penyahkodan jenis kandungan yang ditentukan oleh pengepala Jenis Kandungan boleh diperolehi. Menggunakan gzip untuk memampatkan dokumen boleh mengurangkan masa muat turun dokumen HTML dengan ketara. GZIPOutputStream Java boleh melakukan pemampatan gzip dengan mudah, tetapi hanya Netscape pada Unix dan IE 4 dan IE 5 pada Windows menyokongnya. Oleh itu, Servlet harus menyemak sama ada penyemak imbas menyokong gzip dengan melihat pengepala Accept-Encoding (iaitu request.getHeader("Terima-Pengekodan")), kembalikan halaman HTML yang dimampatkan gzip untuk penyemak imbas yang menyokong gzip dan kembalikan yang biasa. Halaman HTML untuk halaman pelayar lain.
Panjang Kandungan menunjukkan panjang kandungan. Data ini hanya diperlukan jika penyemak imbas menggunakan sambungan HTTP yang berterusan. Jika anda ingin memanfaatkan sambungan berterusan, anda boleh menulis dokumen output ke ByteArrayOutputStream, semak saiznya apabila selesai, kemudian masukkan nilai ke dalam pengepala Panjang Kandungan, dan akhirnya menghantar kandungan melalui byteArrayStream.writeTo(response.getOutputStream(). ).
Jenis Kandungan menunjukkan jenis MIME yang dimiliki oleh dokumen berikut secara lalai Servlet kepada teks/biasa, tetapi ia biasanya perlu dinyatakan secara jelas sebagai text/html. Untuk menetapkan Content-Type, HttpServletResponse menyediakan kaedah khusus setContentType
DateAnda boleh menggunakan setDateHeader untuk menetapkan ini elakkan kerumitan menukar format masa 🎜>
PelayanNama pelayan. Servlet biasanya tidak menetapkan nilai ini, tetapi ditetapkan oleh pelayan web itu sendiri.
Set-CookieTetapkan kuki yang dikaitkan dengan halaman. Servlet tidak boleh menggunakan response.setHeader("Set-Cookie", ...), tetapi harus menggunakan kaedah khusus addCookie yang disediakan oleh HttpServletResponse. Lihat perbincangan tentang tetapan kuki di bawah.
WWW-AuthenticateApakah jenis maklumat kebenaran yang perlu diberikan oleh pelanggan dalam pengepala Kebenaran? Pengepala ini diperlukan dalam respons yang mengandungi baris status 401 (Tidak dibenarkan). Contohnya, response.setHeader("WWW-Authenticate", "BASIC realm=\"eksekutif\"").
Perhatikan bahawa Servlets biasanya tidak mengendalikan aspek ini, tetapi biarkan mekanisme khusus pelayan web mengawal akses kepada halaman yang dilindungi kata laluan (seperti .htaccess).

Laman web PHP Cina