nicetool.dev logo

รหัสสถานะ HTTP

ค้นหาด้วยตัวเลขหรือชื่อ หรือกรองตามกลุ่ม ทุกรหัสมีลิงก์ไปยังข้อกำหนด

1xx ข้อมูล

ได้รับคำขอแล้วและกำลังดำเนินการต่อ ไม่ค่อยพบในโค้ดของแอป

100

Continue

เซิร์ฟเวอร์ได้รับเฮดเดอร์ของคำขอแล้ว ไคลเอนต์ส่งเนื้อหาต่อได้ ใช้กับ "Expect: 100-continue" ก่อนอัปโหลดไฟล์ใหญ่

RFC 9110
101

Switching Protocols

เซิร์ฟเวอร์ยอมเปลี่ยนโปรโตคอลตามที่ไคลเอนต์ขอ เช่น จาก HTTP/1.1 เป็น WebSocket

RFC 9110
102

Processing

WebDAV: เซิร์ฟเวอร์รับคำขอแล้วและยังประมวลผลอยู่ ไคลเอนต์ไม่ควรตัดการเชื่อมต่อเพราะหมดเวลา

RFC 2518
103

Early Hints

ส่งเฮดเดอร์ Link ล่วงหน้าเพื่อให้เบราว์เซอร์โหลด CSS หรือฟอนต์ก่อน ขณะที่เซิร์ฟเวอร์เตรียมคำตอบจริง

RFC 8297

2xx สำเร็จ

ได้รับ เข้าใจ และยอมรับคำขอแล้ว

200

OK

คำขอสำเร็จ เนื้อหามีทรัพยากรที่ร้องขอหรือผลลัพธ์ของการดำเนินการ

RFC 9110
201

Created

สร้างทรัพยากรใหม่แล้ว มักเกิดหลัง POST และเฮดเดอร์ Location ควรชี้ไปยังทรัพยากรนั้น

RFC 9110
202

Accepted

รับคำขอไว้ประมวลผลแล้วแต่ยังไม่เสร็จ เช่น งานเบื้องหลังที่รออยู่ในคิว

RFC 9110
203

Non-Authoritative Information

สำเร็จ แต่พร็อกซีที่แปลงข้อมูลได้แก้ไขคำตอบ จึงไม่ตรงกับที่เซิร์ฟเวอร์ต้นทางส่งทุกประการ

RFC 9110
204

No Content

สำเร็จแต่ไม่มีเนื้อหาส่งกลับ ใช้บ่อยกับ DELETE หรือการบันทึกฟอร์มโดยไม่โหลดหน้าใหม่

RFC 9110
205

Reset Content

สำเร็จ ไคลเอนต์ควรรีเซ็ตฟอร์มหรือหน้าจอที่ส่งคำขอ

RFC 9110
206

Partial Content

ส่งกลับเพียงบางส่วนของทรัพยากรตามเฮดเดอร์ Range ใช้กับการดาวน์โหลดต่อและการเลื่อนวิดีโอ

RFC 9110
207

Multi-Status

WebDAV: เนื้อหามีรหัสสถานะหลายรหัสสำหรับหลายการดำเนินการ

RFC 4918
208

Already Reported

WebDAV: สมาชิกที่แสดงไปแล้วก่อนหน้าในคำตอบจะไม่ถูกแสดงซ้ำ

RFC 5842
226

IM Used

เซิร์ฟเวอร์ใช้การเข้ารหัสแบบ delta กับคำตอบ แทบไม่มีการใช้งาน

RFC 3229

3xx เปลี่ยนเส้นทาง

ต้องมีการดำเนินการเพิ่ม มักเป็นการไปที่ URL อื่น เพื่อให้คำขอเสร็จสมบูรณ์

300

Multiple Choices

มีหลายรูปแบบให้เลือก (เช่น ภาษาหรือฟอร์แมต) และไคลเอนต์ควรเลือกหนึ่งรายการ

RFC 9110
301

Moved Permanently

ทรัพยากรย้ายไปที่ URL ใหม่ถาวรตามที่ระบุใน Location เครื่องมือค้นหาจะโอนอันดับไป URL ใหม่

RFC 9110
302

Found

ทรัพยากรอยู่ที่ URL อื่นชั่วคราว ไคลเอนต์ยังใช้ URL เดิม และเบราว์เซอร์อาจเปลี่ยน POST เป็น GET

RFC 9110
303

See Other

ผลลัพธ์อยู่ที่ URL อื่นซึ่งเรียกด้วย GET ใช้หลัง POST ฟอร์มเพื่อป้องกันการส่งซ้ำ (Post/Redirect/Get)

RFC 9110
304

Not Modified

สำเนาในแคชยังใช้ได้ (If-None-Match หรือ If-Modified-Since ตรงกัน) จึงไม่ส่งเนื้อหา

RFC 9110
307

Temporary Redirect

เปลี่ยนเส้นทางชั่วคราวโดยคงเมธอดและเนื้อหาไว้ POST ยังคงเป็น POST

RFC 9110
308

Permanent Redirect

เปลี่ยนเส้นทางถาวรโดยคงเมธอดและเนื้อหาไว้ เป็นเวอร์ชันเคร่งครัดของ 301

RFC 9110

4xx ข้อผิดพลาดฝั่งไคลเอนต์

คำขอไม่ถูกต้อง เช่น ไวยากรณ์ผิด ไม่ได้ยืนยันตัวตน ไม่มีสิทธิ์ หรือไม่มีทรัพยากรนั้น

400

Bad Request

เซิร์ฟเวอร์ประมวลผลไม่ได้เพราะคำขอผิดรูปแบบ เช่น ไวยากรณ์ผิด JSON เสีย หรือพารามิเตอร์ผิด

RFC 9110
401

Unauthorized

ไม่มีหรือยืนยันตัวตนไม่ถูกต้อง คำตอบมีเฮดเดอร์ WWW-Authenticate บอกวิธีเข้าสู่ระบบ

RFC 9110
402

Payment Required

สงวนไว้สำหรับระบบชำระเงินดิจิทัลในอนาคต บาง API ใช้เมื่อต้องจ่ายค่าสมาชิกหรือโควตา

RFC 9110
403

Forbidden

เซิร์ฟเวอร์รู้ว่าคุณเป็นใครแต่ปฏิเสธเพราะไม่มีสิทธิ์ เข้าสู่ระบบใหม่ก็ไม่ช่วย

RFC 9110
404

Not Found

ไม่มีทรัพยากรนี้ หรือเซิร์ฟเวอร์ไม่ต้องการเปิดเผยว่ามีอยู่

RFC 9110
405

Method Not Allowed

URL นี้ไม่รองรับเมธอด HTTP ดังกล่าว เช่น POST ไปยังทรัพยากรที่อ่านได้อย่างเดียว เฮดเดอร์ Allow จะบอกเมธอดที่ใช้ได้

RFC 9110
406

Not Acceptable

เซิร์ฟเวอร์สร้างคำตอบที่ตรงกับเฮดเดอร์ Accept (ชนิด ภาษา หรือการเข้ารหัส) ไม่ได้

RFC 9110
407

Proxy Authentication Required

เหมือน 401 แต่ไคลเอนต์ต้องยืนยันตัวตนกับพร็อกซีก่อน

RFC 9110
408

Request Timeout

เซิร์ฟเวอร์รอให้ไคลเอนต์ส่งคำขอให้เสร็จนานเกินไปจึงปิดการเชื่อมต่อ

RFC 9110
409

Conflict

คำขอขัดกับสถานะปัจจุบัน เช่น การแก้ไขชนกันหรือคีย์ที่ต้องไม่ซ้ำเกิดซ้ำ

RFC 9110
410

Gone

ทรัพยากรถูกลบโดยตั้งใจและจะไม่กลับมา เครื่องมือค้นหาจะนำออกเร็วกว่า 404

RFC 9110
411

Length Required

เซิร์ฟเวอร์ต้องการเฮดเดอร์ Content-Length สำหรับคำขอนี้

RFC 9110
412

Precondition Failed

เฮดเดอร์แบบมีเงื่อนไขอย่าง If-Match ไม่ตรงกัน มักใช้เพื่อป้องกันการเขียนทับการแก้ไขของผู้อื่น

RFC 9110
413

Content Too Large

เนื้อหาคำขอใหญ่กว่าที่เซิร์ฟเวอร์อนุญาต (เดิมชื่อ "Payload Too Large")

RFC 9110
414

URI Too Long

URL ยาวเกินกว่าที่เซิร์ฟเวอร์รับได้ มักเกิดจากใส่ข้อมูลใน query string ของ GET มากเกินไป

RFC 9110
415

Unsupported Media Type

ไม่รองรับรูปแบบเนื้อหา (Content-Type) เช่น ส่ง XML ไปยัง API ที่รับเฉพาะ JSON

RFC 9110
416

Range Not Satisfiable

เฮดเดอร์ Range ขอส่วนของไฟล์ที่ไม่มีอยู่

RFC 9110
417

Expectation Failed

เซิร์ฟเวอร์ทำตามข้อกำหนดในเฮดเดอร์ Expect ไม่ได้

RFC 9110
418

I'm a teapot

มุกวันโกหกเดือนเมษายนจากโปรโตคอลควบคุมหม้อกาแฟ กาน้ำชาชงกาแฟไม่ได้ บางเว็บไซต์ใช้เป็น easter egg

RFC 2324
421

Misdirected Request

คำขอไปถึงเซิร์ฟเวอร์ที่ตอบแทนโฮสต์นี้ไม่ได้ เช่น เมื่อการเชื่อมต่อ HTTP/2 ที่ใช้ซ้ำชี้ไปยัง origin ผิด

RFC 9110
422

Unprocessable Content

ไวยากรณ์ถูกต้องแต่เนื้อหาไม่ถูกต้อง เช่น ไม่ผ่านกฎการตรวจสอบ (เดิมชื่อ "Unprocessable Entity")

RFC 9110
423

Locked

WebDAV: ทรัพยากรถูกล็อก

RFC 4918
424

Failed Dependency

WebDAV: คำขอล้มเหลวเพราะขึ้นกับคำขออื่นที่ล้มเหลว

RFC 4918
425

Too Early

เซิร์ฟเวอร์ไม่ประมวลผลคำขอที่อาจถูกส่งซ้ำ เช่น early data ของ TLS 1.3

RFC 8470
426

Upgrade Required

ไคลเอนต์ต้องเปลี่ยนไปใช้โปรโตคอลอื่นตามที่ระบุในเฮดเดอร์ Upgrade

RFC 9110
428

Precondition Required

เซิร์ฟเวอร์ต้องการคำขอแบบมีเงื่อนไข (If-Match) เพื่อป้องกันการอัปเดตสูญหาย

RFC 6585
429

Too Many Requests

ไคลเอนต์ส่งคำขอมากเกินไปในช่วงเวลาหนึ่ง (จำกัดอัตรา) เฮดเดอร์ Retry-After บอกว่าลองใหม่ได้เมื่อไร

RFC 6585
431

Request Header Fields Too Large

เฮดเดอร์รวมกันใหญ่เกินไปหรือมีเฮดเดอร์ใดใหญ่เกิน มักเกิดจากคุกกี้ที่บวม

RFC 6585
451

Unavailable For Legal Reasons

ทรัพยากรถูกบล็อกด้วยเหตุผลทางกฎหมาย เช่น การเซ็นเซอร์หรือคำสั่งศาล ตัวเลขอ้างอิงนิยาย "Fahrenheit 451"

RFC 7725

5xx ข้อผิดพลาดฝั่งเซิร์ฟเวอร์

คำขอดูถูกต้อง แต่เซิร์ฟเวอร์ประมวลผลไม่สำเร็จ

500

Internal Server Error

ข้อผิดพลาดทั่วไป: เกิดปัญหาที่ไม่คาดคิดบนเซิร์ฟเวอร์ ให้ตรวจล็อกของเซิร์ฟเวอร์

RFC 9110
501

Not Implemented

เซิร์ฟเวอร์ไม่รองรับฟีเจอร์หรือเมธอดที่ต้องใช้กับคำขอนี้

RFC 9110
502

Bad Gateway

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

RFC 9110
503

Service Unavailable

เซิร์ฟเวอร์รับคำขอไม่ได้ชั่วคราวเพราะโหลดเกินหรือกำลังบำรุงรักษา Retry-After อาจบอกเวลากลับมา

RFC 9110
504

Gateway Timeout

เกตเวย์หรือพร็อกซีไม่ได้รับคำตอบจากเซิร์ฟเวอร์ต้นทางทันเวลา

RFC 9110
505

HTTP Version Not Supported

เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ที่ใช้ในคำขอ

RFC 9110
506

Variant Also Negotiates

ตั้งค่าการต่อรองเนื้อหาผิด รูปแบบที่ถูกเลือกพยายามต่อรองซ้ำอีก

RFC 2295
507

Insufficient Storage

WebDAV: เซิร์ฟเวอร์จัดเก็บข้อมูลที่จำเป็นต่อการทำคำขอให้เสร็จไม่ได้

RFC 4918
508

Loop Detected

WebDAV: เซิร์ฟเวอร์พบลูปไม่รู้จบระหว่างประมวลผลคำขอ

RFC 5842
510

Not Extended

คำขอต้องมีส่วนขยายเพิ่มเติม ล้าสมัยและแทบไม่มีการใช้

RFC 2774
511

Network Authentication Required

ไคลเอนต์ต้องล็อกอินเข้าเครือข่ายก่อน มักเป็นหน้า captive portal ของ Wi-Fi โรงแรมหรือสนามบิน

RFC 6585

รหัสสถานะ HTTP คืออะไร?

ทุกการตอบกลับ HTTP ขึ้นต้นด้วยรหัสสถานะสามหลักที่บอกไคลเอนต์ว่าคำขอเป็นอย่างไร หลักแรกบอกกลุ่ม ได้แก่ 1xx ข้อมูล 2xx สำเร็จ 3xx เปลี่ยนเส้นทาง 4xx ข้อผิดพลาดฝั่งไคลเอนต์ และ 5xx ข้อผิดพลาดฝั่งเซิร์ฟเวอร์ เบราว์เซอร์ เครื่องมือค้นหา แคช ไคลเอนต์ API และเครื่องมือมอนิเตอร์ล้วนทำงานตามรหัสเหล่านี้ การเลือกให้ถูกจึงสำคัญ เช่น 301 ส่งต่อคุณค่า SEO ไปยัง URL ใหม่แต่ 302 ไม่ส่ง 503 บอกให้ครอว์เลอร์กลับมาใหม่ภายหลัง และ 429 บอกให้ไคลเอนต์ API ชะลอ รหัสส่วนใหญ่กำหนดใน RFC 9110 (HTTP Semantics) และบางรหัสอยู่ใน RFC แยก

ฟีเจอร์

  • • รหัสสถานะที่จดทะเบียนกับ IANA ครบ 61 รหัส ตั้งแต่ 100 ถึง 511
  • • อธิบายความหมายของแต่ละรหัสและเวลาที่ควรใช้อย่างเข้าใจง่าย
  • • ค้นหาทันทีด้วยตัวเลข ชื่อ หรือคีย์เวิร์ด พร้อมตัวกรองตามกลุ่ม
  • • ลิงก์ตรงไปยังส่วนของ RFC ที่กำหนดแต่ละรหัส
  • • แยกสีตามกลุ่มและลิงก์ด้วย anchor #รหัสได้

เร็วและใช้ออฟไลน์ได้

ข้อมูลอ้างอิงทั้งหมดอยู่ในหน้าแล้ว การค้นหาจึงทำงานทันทีในเบราว์เซอร์โดยไม่ส่งคำขอไปยังเซิร์ฟเวอร์

ข้อมูลอ้างอิงค้นหาได้ ไม่มีการติดตาม

วิธีใช้ รหัสสถานะ HTTP

  1. 1

    พิมพ์ตัวเลขเช่น 404 ชื่อเช่น "gateway" หรือคำเช่น "redirect" ในช่องค้นหา ผลลัพธ์จะอัปเดตขณะพิมพ์

  2. 2

    ใช้ปุ่มกลุ่ม (1xx ถึง 5xx) เพื่อจำกัดรายการ เช่น ดูข้อผิดพลาดฝั่งไคลเอนต์ทั้งหมดพร้อมกัน

  3. 3

    อ่านคำอธิบายใต้แต่ละรหัสเพื่อดูความหมาย เวลาที่เซิร์ฟเวอร์ควรส่ง และไคลเอนต์ตอบสนองอย่างไร

  4. 4

    เปิดลิงก์ RFC เพื่อดูข้อกำหนดที่แน่นอน หรือแชร์ลิงก์ไปยังรหัสโดยตรงด้วย anchor เช่น #429

ตัวอย่างการใช้งานจริง

ออกแบบ REST API

ส่ง 201 Created พร้อมเฮดเดอร์ Location หลัง POST, 204 No Content หลัง DELETE, 400 เมื่อ JSON ผิดรูปแบบ, 422 เมื่อข้อมูลไม่ผ่านการตรวจสอบ และ 409 เมื่อคำขอขัดกับสถานะปัจจุบัน

ย้ายหน้าโดยไม่เสีย SEO

ใช้ 301 หรือ 308 สำหรับการย้ายถาวรเพื่อให้เครื่องมือค้นหาโอนอันดับ และ 302 หรือ 307 สำหรับการเปลี่ยนเส้นทางชั่วคราว เช่น A/B test โดย 308 และ 307 ยังคง POST ไว้เป็น POST

ข้อผิดพลาดการยืนยันตัวตน

ส่ง 401 เมื่อผู้ใช้ยังไม่ได้เข้าสู่ระบบหรือโทเค็นไม่ถูกต้อง และ 403 เมื่อรู้ว่าเป็นใครแต่ไม่มีสิทธิ์ หลาย API ส่ง 404 แทน 403 เพื่อซ่อนว่ามีทรัพยากรนั้นอยู่

การบำรุงรักษาและโหลดเกิน

ส่ง 503 พร้อมเฮดเดอร์ Retry-After ระหว่างบำรุงรักษาเพื่อให้ครอว์เลอร์คงอันดับไว้ และส่ง 429 พร้อม Retry-After เมื่อไคลเอนต์เกินขีดจำกัดอัตราคำขอ

คำถามที่พบบ่อย

401 กับ 403 ต่างกันอย่างไร?+

401 Unauthorized หมายถึง "คุณเป็นใคร?" คือไม่มีหรือยืนยันตัวตนไม่ผ่าน ส่วน 403 Forbidden หมายถึง "รู้ว่าคุณเป็นใคร แต่คุณทำสิ่งนี้ไม่ได้" การเข้าสู่ระบบใหม่แก้ 401 ได้ แต่แก้ 403 ไม่ได้

เปลี่ยนเส้นทางใช้ 301 หรือ 302?+

ใช้ 301 (หรือ 308) เมื่อ URL เดิมหายไปถาวร และ 302 (หรือ 307) เมื่อจะกลับมา การใช้ 302 กับการย้ายถาวรอาจทำให้เครื่องมือค้นหาจัดทำดัชนี URL ใหม่ช้าลง

502, 503 และ 504 ต่างกันอย่างไร?+

502 Bad Gateway: พร็อกซีได้รับคำตอบที่ไม่ถูกต้องจากเซิร์ฟเวอร์ต้นทาง 503 Service Unavailable: เซิร์ฟเวอร์โหลดเกินหรือกำลังบำรุงรักษา 504 Gateway Timeout: เซิร์ฟเวอร์ต้นทางตอบไม่ทันเวลา

ส่ง 200 พร้อมข้อความผิดพลาดได้ไหม?+

ไม่ควร ไคลเอนต์ แคช และระบบมอนิเตอร์อาศัยรหัสสถานะ การส่ง 200 เมื่อล้มเหลวทำให้เครื่องมือมองไม่เห็นข้อผิดพลาด และหน้าข้อผิดพลาดอาจถูกจัดทำดัชนีเป็น "soft 404"