รูปแบบของคำขอ HTTP และการตอบกลับ HTTP มีความคล้ายคลึงกัน และทั้งสองรูปแบบมีโครงสร้างดังต่อไปนี้:
เริ่มต้นด้วยบรรทัดสถานะ + CRLF (การขึ้นบรรทัดใหม่และการป้อนบรรทัด)
โมดูลส่วนหัวบรรทัดหรือหลายบรรทัด + CRLF
บรรทัดว่าง เช่น CRLF
เนื้อหาข้อความเสริม เช่น ไฟล์ ข้อมูลการสืบค้น เอาต์พุตการสืบค้น
ตัวอย่างเช่น ส่วนหัวการตอบกลับของเซิร์ฟเวอร์มีลักษณะดังนี้:
HTTP/1.1 200 OKContent-Type: text/htmlHeader2: ...HeaderN: ... (บรรทัดว่าง)<!doctype ...><html><head>...</head><body> ... </body></html>
บรรทัดสถานะประกอบด้วยเวอร์ชัน HTTP รหัสสถานะ และข้อความสั้นที่สอดคล้องกับรหัสสถานะ
ตารางต่อไปนี้แสดงรายการรหัสสถานะ HTTP และข้อความที่เกี่ยวข้องซึ่งอาจส่งคืนจากเซิร์ฟเวอร์:
| รหัสสถานะ | ข้อมูล | อธิบาย |
|---|---|---|
| 100 | ดำเนินการต่อ | เซิร์ฟเวอร์ได้รับคำขอเพียงบางส่วนเท่านั้น แต่ตราบใดที่เซิร์ฟเวอร์ไม่ปฏิเสธ ไคลเอนต์จะดำเนินการตามคำขอต่อไป |
| 101 | การสลับโปรโตคอล | โปรโตคอลสวิตช์เซิร์ฟเวอร์ |
| 200 | ตกลง | คำขอได้รับการยืนยันแล้ว |
| 201 | สร้าง | คำขอเสร็จสมบูรณ์และมีการสร้างทรัพยากรใหม่ |
| 202 | ได้รับการยอมรับ | คำขอได้รับการยอมรับแต่ไม่ได้ดำเนินการ |
| 203 | ข้อมูลที่ไม่น่าเชื่อถือ | |
| 204 | ไม่มีเนื้อหา | |
| 205 | รีเซ็ตเนื้อหา | |
| 206 | เนื้อหาบางส่วน | |
| 300 | หลายทางเลือก | ตารางไฮเปอร์ลิงก์ ผู้ใช้สามารถเลือกไฮเปอร์ลิงก์และเข้าถึงไฮเปอร์ลิงก์ได้สูงสุด 5 รายการ |
| 301 | ย้ายถาวร | หน้าที่ร้องขอถูกย้ายไปยัง URL ใหม่ |
| 302 | พบ | หน้าที่ร้องขอถูกย้ายไปยัง URL ใหม่ชั่วคราว |
| 303 | ดูอื่นๆ | หน้าที่ร้องขอสามารถพบได้ภายใต้ URL อื่น |
| 304 | ไม่ดัดแปลง | |
| 305 | ใช้พร็อกซี | |
| 306 | ไม่ได้ใช้ | รหัสสถานะนี้ไม่ได้ใช้อีกต่อไป แต่รหัสสถานะจะยังคงอยู่ |
| 307 | การเปลี่ยนเส้นทางชั่วคราว | หน้าที่ร้องขอถูกย้ายไปยัง URL ใหม่ชั่วคราว |
| 400 | คำขอไม่ถูกต้อง | เซิร์ฟเวอร์ไม่รู้จักคำขอ |
| 401 | ไม่ได้รับอนุญาต | หน้าที่ร้องขอต้องใช้ชื่อผู้ใช้และรหัสผ่าน |
| 402 | จำเป็นต้องชำระเงิน | รหัสสถานะนี้ยังใช้ไม่ได้ |
| 403 | ต้องห้าม | ห้ามเข้าถึงหน้าที่ร้องขอ |
| 404 | ไม่พบ | เซิร์ฟเวอร์ไม่พบหน้าที่ร้องขอ |
| 405 | ไม่อนุญาตให้ใช้วิธีการ | ไม่อนุญาตให้ใช้วิธีการที่ระบุในคำขอ |
| 406 | ไม่เป็นที่ยอมรับ | เซิร์ฟเวอร์สามารถสร้างการตอบกลับที่ไคลเอ็นต์ไม่สามารถยอมรับได้เท่านั้น |
| 407 | จำเป็นต้องมีการรับรองความถูกต้องของพร็อกซี | พร็อกซีเซิร์ฟเวอร์ต้องได้รับการรับรองความถูกต้องก่อนจึงจะสามารถให้บริการคำขอได้ |
| 408 | ขอหมดเวลา | เวลาในการร้องขอเกินเวลาที่เซิร์ฟเวอร์สามารถรอได้ และการเชื่อมต่อถูกตัดการเชื่อมต่อ |
| 409 | ขัดแย้ง | มีข้อขัดแย้งในการร้องขอ |
| 410 | ไปแล้ว | หน้าที่ร้องขอไม่สามารถใช้งานได้อีกต่อไป |
| 411 | ความยาวที่ต้องการ | ไม่ได้กำหนด "ความยาวเนื้อหา" เซิร์ฟเวอร์ปฏิเสธที่จะยอมรับคำขอ |
| 412 | เงื่อนไขเบื้องต้นล้มเหลว | เงื่อนไขเบื้องต้นที่ร้องขอได้รับการประเมินโดยเซิร์ฟเวอร์ว่าเป็นเท็จ |
| 413 | คำขอเอนทิตีมีขนาดใหญ่เกินไป | เซิร์ฟเวอร์ปฏิเสธที่จะยอมรับคำขอเนื่องจากเอนทิตีที่ร้องขอมีขนาดใหญ่เกินไป |
| 414 | URL คำขอยาวเกินไป | เซิร์ฟเวอร์ปฏิเสธที่จะยอมรับคำขอเนื่องจาก URL ยาวเกินไป ข้อมูลการสืบค้นจำนวนมากมักปรากฏขึ้นเมื่อแปลงคำขอ "POST" เป็นคำขอ "GET" |
| 415 | ประเภทสื่อที่ไม่รองรับ | เซิร์ฟเวอร์ปฏิเสธที่จะยอมรับคำขอเนื่องจากไม่รองรับประเภทสื่อ |
| 417 | ความคาดหวังล้มเหลว | |
| 500 | ข้อผิดพลาดเซิร์ฟเวอร์ภายใน | คำขอไม่สมบูรณ์และเซิร์ฟเวอร์พบเงื่อนไขที่ไม่คาดคิด |
| 501 | ไม่ได้นำไปปฏิบัติ | คำขอไม่สมบูรณ์และเซิร์ฟเวอร์ไม่มีฟังก์ชันที่จำเป็น |
| 502 | เกตเวย์ไม่ดี | คำขอไม่สมบูรณ์และเซิร์ฟเวอร์ได้รับการตอบสนองที่ไม่ถูกต้องจากเซิร์ฟเวอร์อัปสตรีม |
| 503 | บริการไม่พร้อมใช้งาน | คำขอไม่สมบูรณ์และเซิร์ฟเวอร์รีสตาร์ทหรือปิดระบบชั่วคราว |
| 504 | เกตเวย์หมดเวลา | หมดเวลาเกตเวย์ |
| 505 | ไม่รองรับเวอร์ชัน HTTP | เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ที่ระบุ |
ตารางต่อไปนี้แสดงวิธีการที่ใช้ในการตั้งค่ารหัสสถานะในคลาส HttpServletResponse:
| ส.น | วิธีการ และ คำอธิบาย |
|---|---|
| 1 | โมฆะสาธารณะ setStatus (int statusCode) วิธีนี้สามารถกำหนดรหัสสถานะใดก็ได้ หากการตอบกลับของคุณมีรหัสสถานะพิเศษและเอกสาร โปรดเรียกใช้เมธอด setStatus ก่อนที่จะส่งคืนสิ่งใดๆ ด้วย PrintWriter |
| 2 | โมฆะสาธารณะ sendRedirect(String url) วิธีการนี้สร้างการตอบสนอง 302 และส่วนหัว ที่ตั้ง เพื่อบอก URL เป็นเอกสารใหม่ |
| 3 | โมฆะสาธารณะ sendError (รหัส int, ข้อความสตริง) วิธีการนี้จะแทรกรหัสสถานะ (ปกติคือ 404) และข้อความสั้น ๆ ลงในเอกสาร HTML โดยอัตโนมัติและส่งกลับไปยังไคลเอนต์ |
ตัวอย่างต่อไปนี้จะส่งรหัสข้อผิดพลาด 407 ไปยังเบราว์เซอร์ และเบราว์เซอร์จะบอกคุณว่า "ต้องการการรับรองความถูกต้อง!!!"
<html><head><title>การตั้งค่ารหัสสถานะ HTTP</title></head><body><% // ตั้งรหัสข้อผิดพลาดและอธิบายเหตุผล response.sendError(407, "Need Authentication!!!" ) ; %></body></html>
การเข้าถึงหน้า JSP ข้างต้น คุณจะได้รับผลลัพธ์ดังต่อไปนี้:

คุณยังสามารถลองใช้รหัสสถานะอื่นเพื่อดูว่าคุณได้รับผลลัพธ์ที่ไม่คาดคิดหรือไม่