Latest web development tutorials

ส่วนหัวของการตอบสนอง HTTP

ส่วนหัวคำขอ HTTP ให้ข้อมูลเกี่ยวกับการร้องขอการตอบสนองหรือหน่วยงานอื่น ๆ ที่ส่ง

ในส่วนนี้เราจะมาแนะนำส่วนหัวของการตอบสนอง HTTP ที่เฉพาะเจาะจง

หัวข้อการตอบสนอง คำอธิบาย
อนุญาต

เซิร์ฟเวอร์ที่สนับสนุนวิธีการร้องขอ (เช่น GET, POST ฯลฯ )

เนื้อหาการเข้ารหัส

การเข้ารหัสเอกสาร (เข้ารหัส) วิธีการ แต่หลังจากที่ถอดรหัสได้รับส่วนหัวของเนื้อหาชนิดระบุประเภทของเนื้อหา ใช้ gzip บีบอัดไฟล์มากสามารถลดเวลาในการดาวน์โหลดของเอกสาร HTML GZIPOutputStream ของ Java สามารถบีบอัด gzip ได้อย่างง่ายดาย แต่ Netscape และ IE บน Windows Unix วันที่ 4, 5 IE เท่านั้นสนับสนุนมัน ดังนั้น Servlet ควรจะเป็นโดยดูที่ส่วนหัวยอมรับเข้ารหัส (เช่น request.getHeader ( "ยอมรับเข้ารหัส")) เพื่อตรวจสอบว่าเบราว์เซอร์รองรับ gzip, gzip สนับสนุนเบราว์เซอร์บีบอัด gzip ด้วยการกลับมาของหน้า HTML เพื่อให้กลับมาเป็นปกติเป็นเบราว์เซอร์อื่น ๆ หน้า

ความยาวของเนื้อหา

เป็นตัวแทนของความยาวของเนื้อหา หากเบราว์เซอร์ที่จะใช้การเชื่อมต่อแบบถาวร HTTP ต้องการข้อมูลนี้เฉพาะเมื่อ ถ้าคุณต้องการที่จะใช้ประโยชน์จากการเชื่อมต่อแบบถาวรสามารถเขียนไป ByteArrayOutputStream เอกสารขาออกที่ดูเสร็จขนาดแล้วใส่ค่าที่เป็นส่วนหัวของความยาวเนื้อหาและเนื้อหาในที่สุดก็ส่งผ่าน byteArrayStream.writeTo (response.getOutputStream ()

ประเภทเนื้อหา

มันแสดงให้เห็นว่าเอกสารดังต่อไปนี้คือสิ่งที่ชนิดไมม์ เริ่มต้น Servlet เป็น text / plain แต่มักจะต้องมีการระบุไว้อย่างชัดเจนเป็น text / html เพราะมักจะตั้งเนื้อหาชนิดดังนั้น HttpServletResponse ให้วิธีการ setContentType ทุ่มเท

วันที่

เวลา GMT ปัจจุบัน คุณสามารถตั้งหัว setDateHeader นี้เพื่อหลีกเลี่ยงปัญหาในรูปแบบเวลาเปลี่ยน

วันที่หมดอายุ

สิ่งที่ควรได้รับการพิจารณาเมื่อเอกสารดังกล่าวได้หมดอายุเพื่อที่ว่ามันไม่ได้แคช?

แก้ไขล่าสุด

การปรับเปลี่ยนครั้งสุดท้ายของเอกสาร ลูกค้าสามารถให้ผ่าน If-Modified-ตั้งแต่ส่วนหัวคำขอวันที่คำขอจะได้รับการพิจารณาเป็น GET สภาพเพียงการเปลี่ยนแปลงช้ากว่าเวลาที่กำหนดเอกสารจะถูกส่งกลับไปมิฉะนั้นจะส่งกลับ (ไม่แก้ไข) สถานะ 304 วิธี setDateHeader Last-Modified ยังสามารถใช้ในการตั้งค่า

ที่ตั้ง

มันแสดงให้เห็นว่าลูกค้าควรจะไปดึงข้อมูลเอกสาร สถานที่ตั้งมักจะไม่ได้ตั้งโดยตรง แต่ผ่าน sendRedirect HttpServletResponse วิธีการซึ่งยังตั้งค่ารหัสสถานะของ 302

รีเฟรช

มันแสดงให้เห็นเบราว์เซอร์ควรรีเฟรชเอกสารหลังจากเวลาเท่าใดในไม่กี่วินาที นอกจากเพื่อฟื้นฟูเอกสารปัจจุบันนอกคุณยังสามารถ setHeader ( "รีเฟรช", "5; URL = http: // โฮสต์ / เส้นทาง") ให้เบราว์เซอร์อ่านหน้าระบุ
โปรดทราบว่าคุณลักษณะนี้มักจะโดยการตั้งค่าพื้นที่หน้า HTML หัว <META HTTP-EQUIV = "Refresh" content = "5; URL = http: // โฮสต์ / เส้นทาง"> ประสบความสำเร็จเป็นเพราะสำหรับการรีเฟรชอัตโนมัติหรือเปลี่ยนเส้นทาง ผู้ที่ไม่สามารถใช้ CGI หรือ Servlet เขียน HTML เป็นสิ่งสำคัญมาก อย่างไรก็ตามมีการตั้งค่า Servlet โดยตรงรีเฟรชหัวสะดวกมากขึ้น

หมายเหตุรีเฟรชความหมายของ "N วินาทีหลังจากรีเฟรชหน้าเว็บหรือไปที่หน้าระบุ" แทน "รีเฟรชหน้าเว็บหรือเข้าถึงหน้าเว็บที่ระบุทุกวินาที N." ดังนั้นการฟื้นฟูอย่างต่อเนื่องต้องใช้ในแต่ละที่จะส่งหัวฟื้นฟูและส่ง 204 รหัสสถานะก็สามารถป้องกันไม่ให้เบราว์เซอร์ยังคงปรับปรุงใช้รีเฟรชทั้งหัวหรือ <META HTTP-EQUIV = "รีเฟรช" ... >

หมายเหตุ HTTP รีเฟรช 1.1 ส่วนหัวไม่ได้เป็นส่วนหนึ่งของสเปคอย่างเป็นทางการ แต่ขยาย แต่ Netscape และ IE สนับสนุนมัน

เซิร์ฟเวอร์

ชื่อเซิร์ฟเวอร์ Servlet โดยทั่วไปไม่ได้ตั้งค่านี้ แต่ถูกกำหนดโดยเว็บเซิร์ฟเวอร์ของตัวเอง

คุกกี้ชุด

การตั้งค่าและคุกกี้ที่เกี่ยวข้อง Servlet ไม่ควรใช้ response.setHeader ( "คุกกี้ชุด", ... ) แต่คุณควรใช้วิธีการพิเศษ addCookie HttpServletResponse ให้ ดูการอภิปรายเกี่ยวกับการตั้งค่าคุกกี้ดังต่อไปนี้

WWW-Authenticate

ลูกค้าควรให้ข้อมูลเกี่ยวกับสิ่งที่ประเภทของส่วนหัวของการอนุญาตการอนุมัติ? ในการตอบกลับมี 401 (ไม่ได้รับอนุญาต) บรรทัดสถานะในส่วนหัวจะต้อง ยกตัวอย่างเช่น response.setHeader ( "www พิสูจน์ตัวตน", "BASIC ดินแดน = \" ผู้บริหาร \ "")
หมายเหตุ Servlet โดยทั่วไปจะไม่ได้รับการปฏิบัติในเรื่องนี้ แต่เพื่อให้กลไกพิเศษของเว็บเซิร์ฟเวอร์เพื่อควบคุมการเข้าถึงหน้าเว็บที่ป้องกันด้วยรหัสผ่าน (เช่น .htaccess)