| 1xx แจ้งข้อมูล |
|---|
| Continue | เซิร์ฟเวอร์ได้รับส่วนหัวของคำขอแล้ว และไคลเอ็นต์สามารถส่งเนื้อหาได้ | หลังการตรวจสอบเบื้องต้นก่อนอัปโหลดเนื้อหาขนาดใหญ่ |
| Switching Protocols | เซิร์ฟเวอร์ตกลงจะสลับไปใช้โปรโตคอลที่ไคลเอ็นต์ร้องขอ | การอัปเกรดการเชื่อมต่อ HTTP ไปเป็น WebSocket |
| Processing | เซิร์ฟเวอร์ได้รับคำขอแล้วและยังคงประมวลผลอยู่ | เซิร์ฟเวอร์ WebDAV ตอบรับคำขอที่ใช้เวลานานเพื่อไม่ให้ไคลเอ็นต์หมดเวลารอ |
| Early Hints | เซิร์ฟเวอร์ส่งส่วนหัวเบื้องต้นก่อนที่คำตอบสุดท้ายจะพร้อม | ให้เบราว์เซอร์โหลดทรัพยากรล่วงหน้าระหว่างที่หน้าเพจยังเรนเดอร์ไม่เสร็จ |
| 2xx สำเร็จ |
|---|
| OK | คำขอสำเร็จและเนื้อหาของคำตอบบรรจุผลลัพธ์ | คำตอบสำเร็จมาตรฐานสำหรับ GET หรือ PUT |
| Created | คำขอสำเร็จและมีทรัพยากรใหม่ถูกสร้างขึ้น | ส่งกลับหลัง POST ที่สร้างสิ่งใหม่สำเร็จ |
| Accepted | คำขอได้รับการรับไว้เพื่อประมวลผลแต่ยังไม่เสร็จสิ้น | งานที่ใช้เวลานานเริ่มทำงานแล้วและทำงานแบบอะซิงโครนัส |
| Non-Authoritative Information | คำขอสำเร็จแต่ข้อมูลที่ส่งกลับถูกแปลงระหว่างทางกลับ | พร็อกซีหรือแคชส่งข้อมูลเมตาที่แก้ไขแล้วแทนของเซิร์ฟเวอร์ต้นทาง |
| No Content | คำขอสำเร็จและไม่มีเนื้อหาที่จะส่งกลับ | DELETE สำเร็จ หรือ PUT ที่ไม่มีอะไรต้องรายงาน |
| Reset Content | คำขอสำเร็จและไคลเอ็นต์ควรรีเซ็ตมุมมองที่ส่งคำขอนั้น | หลังส่งฟอร์ม เพื่อบอกหน้าให้ล้างช่องกรอกของตัวเอง |
| Partial Content | เซิร์ฟเวอร์ส่งกลับเพียงบางส่วนของทรัพยากรตามที่ร้องขอ | ส่งช่วงไบต์จากคำขอแบบ Range |
| 3xx เปลี่ยนเส้นทาง |
|---|
| Moved Permanently | ทรัพยากรมี URL ใหม่แบบถาวร และคำขอในอนาคตควรใช้ URL นั้น | หน้าเพจย้ายที่แล้วและเสิร์ชเอนจินต้องอัปเดตดัชนี |
| Found | ทรัพยากรอยู่ที่ URL อื่นชั่วคราว แต่ให้ใช้ URL เดิมต่อไป | เปลี่ยนเส้นทางไปหน้าเข้าสู่ระบบชั่วคราว |
| See Other | คำตอบอยู่ที่ URL อื่นและต้องดึงมาด้วย GET | รูปแบบ PRG: เปลี่ยนเส้นทาง POST ไปหน้าผลลัพธ์เพื่อไม่ให้การรีเฟรชส่งข้อมูลซ้ำ |
| Not Modified | สำเนาในแคชยังใช้ได้ เซิร์ฟเวอร์จึงไม่ส่งเนื้อหา | GET แบบมีเงื่อนไขในกรณีที่แคชของไคลเอ็นต์เป็นปัจจุบัน |
| Use Proxy | คำขอต้องถูกส่งผ่านพร็อกซีที่ระบุไว้ในคำตอบ | เครือข่ายพร็อกซีรุ่นเก่า เลิกใช้แล้วตั้งแต่ปี 2011 |
| Temporary Redirect | ทรัพยากรอยู่ที่อื่นชั่วคราวและต้องคงเมธอดของคำขอเดิมไว้ | เหมือน 302 แต่ POST ยังคงเป็น POST หลังเปลี่ยนเส้นทาง |
| Permanent Redirect | ทรัพยากรมี URL ใหม่แบบถาวรและต้องคงเมธอดของคำขอเดิมไว้ | เหมือน 301 แต่ POST ยังคงเป็น POST หลังเปลี่ยนเส้นทาง |
| 4xx ข้อผิดพลาดฝั่งไคลเอ็นต์ |
|---|
| Bad Request | เซิร์ฟเวอร์ไม่เข้าใจคำขอเพราะไวยากรณ์ผิดรูปแบบ | JSON ผิดรูปแบบ หรือขาดฟิลด์ที่จำเป็น |
| Unauthorized | ต้องมีการยืนยันตัวตน ซึ่งอาจขาดไปหรือล้มเหลว | ไม่มีโทเคน หรือโทเคนไม่ถูกต้องหรือหมดอายุ |
| Payment Required | คำขอต้องการการชำระเงิน แต่สเปกไม่เคยกำหนดวิธีทำเลย | API บางตัวใช้เป็นตัวชี้กำแพงชำระเงิน ส่วนใหญ่ไม่ใช้เลย |
| Forbidden | ไคลเอ็นต์ยืนยันตัวตนแล้วแต่ไม่ได้รับอนุญาตให้เข้าถึงทรัพยากรนี้ | เข้าสู่ระบบถูกต้อง แต่ไม่มีสิทธิ์ต่อทรัพยากรนี้ |
| Not Found | เซิร์ฟเวอร์ไม่มีทรัพยากรที่ URL นี้ | URL ที่ไม่รู้จัก หรือ ID ที่ไม่มีอยู่จริง |
| Method Not Allowed | URL มีอยู่แต่ไม่อนุญาตเมธอดของคำขอที่ใช้ | ส่ง POST ไปยัง endpoint ที่รับเฉพาะ GET |
| Not Acceptable | เซิร์ฟเวอร์ส่งคืนเนื้อหาที่ตรงกับส่วนหัว Accept ของไคลเอ็นต์ไม่ได้ | ไคลเอ็นต์ขอเฉพาะ XML แต่ API ส่งกลับเฉพาะ JSON |
| Proxy Authentication Required | ไคลเอ็นต์ต้องยืนยันตัวตนกับพร็อกซีก่อนคำขอจะดำเนินต่อ | พร็อกซีองค์กรปฏิเสธคำขอที่ไม่ได้ยืนยันตัวตน |
| Request Timeout | ไคลเอ็นต์ใช้เวลานานเกินไปในการส่งคำขอ เซิร์ฟเวอร์จึงเลิกรอ | การอัปโหลดที่ค้างก่อนเนื้อหาจะส่งครบ |
| Conflict | คำขอขัดแย้งกับสถานะปัจจุบันของทรัพยากร | อีเมลซ้ำ หรือการแก้ไขชิงกันบนระเบียนเดียวกัน |
| Gone | ทรัพยากรเคยมีอยู่แต่ถูกลบออกถาวรแล้ว | endpoint ที่ปลดระวางโดยเจตนา รุนแรงกว่า 404 |
| Length Required | คำขอต้องมีส่วนหัว Content-Length แต่ไม่มี | เซิร์ฟเวอร์ที่ต้องรู้ขนาดล่วงหน้าปฏิเสธเนื้อหาแบบสตรีม |
| Precondition Failed | เงื่อนไขเบื้องต้นของส่วนหัวอย่าง If-Match ให้ผลเป็นเท็จ | การแก้ไขแบบหวังผลที่ระเบียนเปลี่ยนไปหลังจากไคลเอ็นต์อ่านแล้ว |
| Content Too Large | เนื้อหาของคำขอใหญ่เกินขีดจำกัดที่เซิร์ฟเวอร์ยอมรับ | การอัปโหลดที่ใหญ่กว่าขนาดเนื้อหาสูงสุดของเซิร์ฟเวอร์ |
| URI Too Long | URL ของคำขอยาวเกินกว่าที่เซิร์ฟเวอร์จะยอมตีความ | ฟอร์มที่ถูกทำเป็น query string ของ GET โดยไม่ตั้งใจแล้วยาวขึ้นไม่มีที่สิ้นสุด |
| Unsupported Media Type | รูปแบบเนื้อหาของคำขอไม่ใช่แบบที่ endpoint ยอมรับ | POST ที่ตั้ง Content-Type เป็น text/plain ไปยัง endpoint ที่รับเฉพาะ JSON |
| Range Not Satisfiable | ช่วงไบต์ในส่วนหัว Range ไม่อยู่ในขอบเขตของทรัพยากร | ขอไบต์เลยจุดสิ้นสุดของไฟล์ขณะทำการดาวน์โหลดต่อ |
| Expectation Failed | เซิร์ฟเวอร์ตอบสนองความคาดหวังที่ระบุในส่วนหัว Expect ไม่ได้ | ความคาดหวัง 100-continue ที่เซิร์ฟเวอร์ปฏิเสธจะทำตาม |
| I'm a teapot | เซิร์ฟเวอร์คือกาน้ำชาและปฏิเสธจะชงกาแฟ | เรื่องเล่า 1 เมษายนปี 1998 ที่ไม่ยอมตาย API ส่งคืนมันเพื่อความสนุก |
| Misdirected Request | คำขอถูกส่งไปยังเซิร์ฟเวอร์ที่สร้างคำตอบให้ไม่ได้ | การเชื่อมต่อที่ใช้ซ้ำถูกส่งไปยังโฮสต์ที่เซิร์ฟเวอร์นี้ไม่ได้ให้บริการ |
| Unprocessable Entity | คำขอมีรูปแบบถูกต้องแต่ค่าต่าง ๆ ไม่ผ่านการตรวจสอบเชิงความหมาย | JSON ที่ถูกต้องแต่ฟิลด์ละเมิดกฎทางธุรกิจ |
| Too Early | เซิร์ฟเวอร์ปฏิเสธคำขอที่มีความเสี่ยงเป็นการเล่นซ้ำ | ปฏิเสธคำขอที่ไม่เป็น idempotent ที่ถูกลองใหม่ก่อนคีย์จะถูกหมุนเปลี่ยน |
| Upgrade Required | ไคลเอ็นต์ต้องสลับไปใช้โปรโตคอลอื่นจึงจะใช้ทรัพยากรนี้ได้ | endpoint ที่ยืนกราน TLS หรือ WebSocket |
| Precondition Required | เซิร์ฟเวอร์ต้องการส่วนหัวแบบมีเงื่อนไขซึ่งคำขอไม่ได้ส่งมา | API ที่เรียกร้อง If-Match เพื่อป้องกันการอัปเดตที่หายไป |
| Too Many Requests | ไคลเอ็นต์ส่งคำขอมากเกินไปในช่วงเวลาที่กำหนด | ชนขีดจำกัดอัตราส่งคำขอ ให้ถอยหลังแล้วลองใหม่ |
| Request Header Fields Too Large | ฟิลด์ส่วนหัวอย่างน้อยหนึ่งฟิลด์ใหญ่เกินกว่าเซิร์ฟเวอร์จะประมวลผลไหว | คุกกี้หรือโทเคนที่โตขึ้นเรื่อย ๆ จนบล็อกทุกคำขอไปยังไซต์ |
| Unavailable For Legal Reasons | ทรัพยากรถูกบล็อกด้วยเหตุผลทางกฎหมาย เช่น คำสั่งถอดเนื้อหาหรือการจำกัดตามภูมิศาสตร์ | คำสั่งถอดเนื้อหาจากรัฐบาล หรือหน้าเพจที่ถูกบล็อกในบางประเทศ |
| 5xx ข้อผิดพลาดฝั่งเซิร์ฟเวอร์ |
|---|
| Internal Server Error | เซิร์ฟเวอร์ประสบเงื่อนไขที่คาดไม่ถึงและล้มเหลว | ข้อยกเว้นที่ไม่ถูกจัดการหรือบั๊กบนเซิร์ฟเวอร์ |
| Not Implemented | เซิร์ฟเวอร์ไม่รองรับเมธอดหรือคุณลักษณะที่ร้องขอ | endpoint ที่ประกาศไว้แต่ยังสร้างไม่เสร็จ |
| Bad Gateway | เกตเวย์หรือพร็อกซีได้รับคำตอบที่ไม่ถูกต้องจากเซิร์ฟเวอร์ต้นทาง | reverse proxy ติดต่อแบ็กเอนด์ไม่ได้ |
| Service Unavailable | เซิร์ฟเวอร์ไม่สามารถตอบสนองคำขอได้ชั่วคราว | การบำรุงรักษา ความเร็วเกินพิกัด หรือบริการที่ต้องพึ่งพาล้มเหลว |
| Gateway Timeout | เกตเวย์หรือพร็อกซีไม่ได้รับคำตอบทันเวลาจากเซิร์ฟเวอร์ต้นทาง | แบ็กเอนด์ใช้เวลานานเกินไปจนพร็อกซีเลิกรอ |
| HTTP Version Not Supported | เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ในคำขอ | ไคลเอ็นต์ที่ใช้เวอร์ชันโปรโตคอลที่เซิร์ฟเวอร์ไม่เคยรู้จัก |
| Variant Also Negotiates | การเจรจาเนื้อหาแบบโปร่งใสจบลงด้วยการอ้างอิงแบบวนรอบ | เซิร์ฟเวอร์ที่ตั้งค่าผิดและทำการเจรจาเนื้อหาแบบทดลอง |
| Insufficient Storage | เซิร์ฟเวอร์จัดเก็บข้อมูลนำเสนอที่จำเป็นต่อการเสร็จสิ้นคำขอไม่ได้ | เซิร์ฟเวอร์ WebDAV ที่พื้นที่จัดเก็บที่จัดสรรไว้เต็ม |
| Loop Detected | เซิร์ฟเวอร์เจอวงวนอนันต์ระหว่างประมวลผลคำขอ | การผูก WebDAV ที่อ้างกลับมาที่ตัวเอง |
| Network Authentication Required | ไคลเอ็นต์ต้องยืนยันตัวตนกับเครือข่ายจึงจะได้สิทธิ์เข้าถึง | captive portal ณ โรงแรมหรือสนามบินที่ดักจับคำขอ |