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.
Tajuk Balas | Penerangan |
---|---|
Benarkan | Kaedah permintaan yang manakah (seperti GET, POST) disokong oleh pelayan menunggu). |
Pengekodan Kandungan | Kaedah 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 |
Date | Anda boleh menggunakan setDateHeader untuk menetapkan ini elakkan kerumitan menukar format masa 🎜> | Diubah Terakhir
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 . |
Pelayan | Nama pelayan. Servlet biasanya tidak menetapkan nilai ini, tetapi ditetapkan oleh pelayan web itu sendiri. |
Set-Cookie | Tetapkan 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-Authenticate | Apakah 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). |