รายชื่อรหัสสถานภาพของเอชทีทีพี

บทความรายชื่อวิกิมีเดีย

ต่อไปนี้เป็นรายชื่อรหัสสถานภาพในการตอบรับเอชทีทีพีจากเครื่องให้บริการ ซึ่งมีทั้งรหัสที่กำหนดโดยมาตรฐานอินเทอร์เน็ตของคณะทำงานเฉพาะกิจด้านวิศวกรรมอินเทอร์เน็ต (IETF) และกำหนดโดยเอกสารขอความเห็น (RFC) เอกสารลักษณะเฉพาะอื่น ๆ และรหัสที่มีการใช้งานโดยทั่วไปเพิ่มเข้ามา ตัวเลขแรกของรหัสสถานภาพ (หลักร้อย) เป็นตัวระบุประเภทของการตอบรับหนึ่งในห้าประเภท ซึ่งเครื่องลูกข่ายเอชทีทีพีสามารถรับรู้ประเภททั้งห้านี้ได้เป็นอย่างน้อย อินเทอร์เน็ตอินฟอร์เมชันเซอร์วิสเซส (IIS) ของไมโครซอฟท์ใช้รหัสย่อยเป็นทศนิยมเพิ่มเติมเพื่อแสดงข้อมูลให้เจาะจงมากยิ่งขึ้น [1] แต่จะไม่นำมาแสดงไว้ในนี้ วลีเหตุผลที่อยู่ถัดจากรหัสสถานภาพเป็นตัวอย่างมาตรฐาน ซึ่งสามารถเขียนหรือแปลให้เป็นอย่างอื่นเพื่อให้มนุษย์สามารถอ่านเข้าใจได้ ถ้าหากรหัสสถานภาพใดไม่มีการระบุหมายเหตุ แสดงว่ารหัสนั้นเป็นส่วนหนึ่งของมาตรฐาน HTTP/1.1

ตัวอย่างข้อความร้องขอเอชทีทีพีที่สร้างในเทลเน็ต บรรทัดแรกของสีน้ำเงินคือรหัสสถานภาพ

1xx ข้อมูลทั่วไป

รหัสสถานภาพกลุ่มนี้หมายถึง "เครื่องให้บริการได้รับการร้องขอแล้ว สามารถดำเนินการต่อไปได้" ใช้เป็นข้อความตอบรับชั่วคราว ซึ่งจะประกอบด้วยส่วนหัว Status-Line กับส่วนหัวอื่น ๆ เพิ่มเติม และจบด้วยบรรทัดว่าง แต่เนื่องจาก HTTP/1.0 ไม่ได้กำหนดรหัส 1xx เอาไว้ ดังนั้นเครื่องแม่ข่ายต้องไม่ส่งการตอบรับด้วยรหัส 1xx ไปยังเครื่องลูกข่ายที่เป็น HTTP/1.0 เว้นแต่ว่าจะอยู่ภายใต้เงื่อนไขที่เกี่ยวกับการทดลอง

100 Continue
เครื่องให้บริการได้รับการร้องขอแล้ว และเครื่องลูกข่ายควรจะส่งเนื้อหาตามออกไปกับข้อความร้องขอ (ในกรณีที่เนื้อหาจำเป็นต้องส่งไปกับการร้องขอ เช่นข้อความร้องขอแบบ POST) ถ้าเนื้อหาในข้อความร้องขอมีขนาดใหญ่ การส่งข้อมูลไปยังเครื่องแม่ข่ายอาจเกิดการชะงัก การร้องขออาจถูกตัดไปเสียก่อนเพราะไม่มีส่วนหัวที่เหมาะสม ดังนั้นเพื่อให้เครื่องแม่ข่ายสามารถตรวจสอบได้ว่าการร้องขอนั้นจะเป็นที่ยอมรับได้หรือไม่ เครื่องลูกข่ายจะต้องส่งส่วนหัว Expect: 100-continue ไปในข้อความร้องขอครั้งแรก [2] และตรวจสอบว่ารหัสสถานภาพที่ได้มาจากข้อความตอบรับเป็น 100 Continue ก่อนดำเนินการส่งข้อมูลต่อไป (หากล้มเหลว จะได้รับรหัสเป็น 417 Expectation Failed และหยุดดำเนินการส่งข้อมูล) [3]
101 Switching Protocols
เกิดจากผู้ร้องขอที่ได้สอบถามให้เครื่องแม่ข่ายเปลี่ยนโพรโทคอลในการสื่อสาร เมื่อเครื่องแม่ข่ายรับทราบก็จะคืนรหัสสถานภาพนี้มายังผู้ร้องขอ แล้วจะดำเนินการเปลี่ยนโพรโทคอลตาม [4]
102 Processing
เครื่องให้บริการกำลังประมวลผล (RFC 2518) (WebDAV)

2xx การร้องขอสำเร็จ

รหัสสถานภาพกลุ่มนี้หมายถึง "การดำเนินการที่ร้องขอได้รับแล้ว เป็นที่เข้าใจแล้ว และได้ยอมรับแล้ว" ใช้แสดงว่าการร้องขอจากเครื่องลูกข่ายได้ดำเนินการสำเร็จแล้ว

200 OK
เป็นรหัสตอบรับมาตรฐานสำหรับการร้องขอที่สำเร็จ ข้อความตอบรับที่แท้จริงอาจแตกต่างกันออกไปตามคำสั่งร้องขอที่ใช้ ในการร้องขอแบบ GET เนื้อหาในข้อความตอบรับจะเป็นเนื้อหาที่เกี่ยวข้องกับทรัพยากรที่ร้องขอ ส่วนในการร้องขอแบบ POST เนื้อหาในข้อความตอบรับจะเป็นการอธิบายทรัพยากรหรือผลลัพธ์จากการดำเนินการดังกล่าว เป็นต้น
201 Created
การร้องขอได้ดำเนินการแล้ว ซึ่งได้ผลลัพธ์เป็นทรัพยากรที่สร้างขึ้นใหม่บนเครื่องให้บริการ
202 Accepted
การร้องขอได้รับแล้วเพื่อดำเนินการ แต่การดำเนินการนั้นยังไม่เสร็จสิ้น ซึ่งไม่จำเป็นต้องส่งการร้องขอใหม่ในช่วงเวลาดังกล่าว เพราะว่าเครื่องแม่ข่ายอาจยังไม่รับการร้องขอในขณะนั้น
203 Non-Authoritative Information
การร้องขอได้ดำเนินการสำเร็จแล้ว แต่คืนผลลัพธ์เป็นข้อมูลที่อาจจะมาจากแหล่งอื่น (ตั้งแต่ HTTP/1.1)
204 No Content
การร้องขอได้ดำเนินการสำเร็จแล้ว แต่ไม่มีเนื้อหาใด ๆ คืนกลับมา
205 Reset Content
การร้องขอได้ดำเนินการสำเร็จแล้ว แต่ไม่มีเนื้อหาใด ๆ คืนกลับมา ต่างจากรหัส 204 ตรงที่การตอบรับนี้ ผู้ร้องขอจำเป็นต้องล้างมุมมองของเอกสาร
206 Partial Content
เครื่องแม่ข่ายจะส่งเนื้อหาจากทรัพยากรเพียงบางส่วน ตามช่วงไบต์ในส่วนหัว Range ที่เครื่องลูกข่ายร้องขอไป การส่งทรัพยากรเพียงบางส่วนนี้มักใช้เป็นประโยชน์โดยโปรแกรมช่วยดาวน์โหลด เพื่อการดาวน์โหลดข้อมูลต่อหรือแบ่งการดาวน์โหลดออกเป็นหลายกระแสพร้อมกัน
207 Multi-Status
เนื้อหาในข้อความที่เป็นเอกซ์เอ็มแอล อาจมีรหัสสถานภาพในการตอบรับที่แยกจากกันจำนวนหนึ่ง ขึ้นอยู่กับว่ามีข้อความร้องขอย่อยมากเท่าใด (WebDAV)

3xx การเปลี่ยนทาง

รหัสสถานภาพกลุ่มนี้หมายถึง "เครื่องลูกข่ายอาจต้องมีการกระทำอื่นเพิ่มเติม เพื่อที่จะทำการร้องขอนั้นให้สำเร็จ" แสดงว่าโปรแกรมตัวแทนผู้ใช้จำเป็นต้องมีการดำเนินการอื่นเพิ่มเติม ซึ่งอาจทำได้เองโดยไม่จำเป็นต้องโต้ตอบกับผู้ใช้ ถ้าคำสั่งร้องขอครั้งที่สองเป็น GET หรือ HEAD นอกจากนี้ตัวแทนผู้ใช้ไม่ควรเปลี่ยนทางมากกว่าห้าครั้ง เพราะว่าการทำเช่นนั้นอาจถูกพิจารณาว่าเป็นวงวนไม่รู้จบ

300 Multiple Choices
แสดงตัวเลือกสำหรับทรัพยากรให้เครื่องลูกข่ายเลือกตามที่ต้องการ ตัวอย่างเช่น รูปแบบที่แตกต่างกันสำหรับวิดีโอ รายชื่อไฟล์ที่มีส่วนขยายแตกต่างกัน หรือการแก้ความกำกวมความหมายของคำ
301 Moved Permanently
บอกให้เครื่องลูกข่ายทราบว่า การร้องขอครั้งนี้และครั้งต่อ ๆ ไปควรจะเปลี่ยนทางไปยังตัวระบุแหล่งทรัพยากรสากล (URI) ที่ให้ไว้ เครื่องแม่ข่ายจะไม่เป็นผู้เปลี่ยนทางให้
302 Found
รหัสนี้นิยมใช้เป็นการเปลี่ยนทางบนหน้าเว็บมากที่สุด แต่ก็เป็นตัวอย่างหนึ่งในทางปฏิบัติที่ขัดกับมาตรฐาน แต่เดิมใน HTTP/1.0 วลีดังกล่าวใช้ว่า "Moved Temporarily" เพื่อเป็นการเปลี่ยนทางชั่วคราว (RFC 1945) แต่หลายเบราว์เซอร์กลับนำไปทำเป็นรหัส 303 See Other แทน ดังนั้นในรุ่น HTTP/1.1 จึงเพิ่มรหัส 303 และ 307 เข้าไปเพื่อแยกแยะพฤติกรรมการใช้งานทั้งสอง แล้วเปลี่ยนวลีเหตุผลของรหัสนี้เป็น "Found" อย่างไรก็ตาม เว็บแอปพลิเคชันและเฟรมเวิร์กส่วนใหญ่ก็ยังใช้รหัส 302 ในลักษณะเดียวกับรหัส 303
303 See Other
เนื้อหาที่ร้องขอสามารถพบได้จากตัวระบุในแหล่งอื่นด้วยคำสั่ง GET แต่ถ้าหากแหล่งอื่นนั้นใช้ PUT เครื่องลูกข่ายจะต้องถือว่าเครื่องแม่ข่ายได้รับข้อมูลแล้ว และการเปลี่ยนทางควรจะกระทำโดยส่งข้อความ GET แยกออกไปต่างหาก (ตั้งแต่ HTTP/1.1)
304 Not Modified
ทรัพยากรที่ร้องขอยังไม่มีการปรับปรุงเพิ่มเติมหลังจากการร้องขอครั้งล่าสุด โดยปกติแล้วเครื่องลูกข่ายเอชทีทีพีจะส่งส่วนหัว If-Modified-Since มาด้วยเพื่อให้เครื่องแม่ข่ายเปรียบเทียบเวลา การใช้ส่วนหัวนี้ให้เป็นประโยชน์ช่วยลดแบนด์วิดท์ และลดการประมวลผลซ้ำซ้อนทั้งทางฝั่งแม่ข่ายและลูกข่าย
305 Use Proxy
แจ้งไปยังเครื่องลูกข่ายว่าควรใช้พร็อกซี ตัวแทนผู้ใช้หลายโปรแกรม อาทิเบราว์เซอร์ของมอซิลลา [5] และอินเทอร์เน็ตเอกซ์พลอเรอร์ ยังดำเนินการกับรหัสตอบรับนี้ไม่ถูกต้อง ด้วยเหตุผลหลักในด้านความปลอดภัย (ตั้งแต่ HTTP/1.1)
306 Switch Proxy
แจ้งไปยังเครื่องลูกข่ายว่าควรเปลี่ยนพร็อกซีที่ใช้ ปัจจุบันเลิกใช้งานแล้ว
307 Temporary Redirect
ข้อความร้องขอที่ส่งเข้ามาในครั้งนี้ ควรจะส่งซ้ำไปยังตัวระบุแหล่งทรัพยากรสากลที่กำหนดให้ แต่ครั้งหน้าก็อาจสามารถส่งมายังที่เดิมได้ ต่างกับรหัส 303 ตรงที่ข้อความร้องขอจะไม่มีการเปลี่ยนแปลง นั่นคือข้อความร้องขอแบบ POST ควรจะเหมือนเดิม เพียงแค่ส่งไปยังแหล่งอื่นแทนเท่านั้น (ตั้งแต่ HTTP/1.1)

4xx ความผิดพลาดจากเครื่องลูกข่าย

รหัสสถานภาพกลุ่มนี้หมายถึง "การร้องขอจากเครื่องลูกข่ายไม่เป็นที่ยอมรับ หรือไม่สามารถทำตามการร้องขอนั้นได้" เครื่องแม่ข่ายจะถือว่าเป็นความผิดพลาดของเครื่องลูกข่าย เครื่องให้บริการควรจะอธิบายสาเหตุของความผิดพลาดไปกับเนื้อหาด้วย เว้นแต่เมื่อข้อความร้องขอนั้นใช้คำสั่ง HEAD และควรระบุว่าเป็นปัญหาที่เกิดขึ้นชั่วคราวหรือถาวร รหัสสถานภาพเหล่านี้สามารถใช้ตอบรับกับคำสั่งร้องขอใดก็ได้ ซึ่งตัวแทนผู้ใช้ควรแจ้งข้อผิดพลาดเหล่านั้นให้ผู้ใช้งานทราบด้วย

400 Bad Request
ข้อความร้องขอที่ส่งมามีความผิดพลาดทางไวยากรณ์ หรือไม่สามารถทำตามการร้องขอนั้นได้
401 Unauthorized
บอกไปยังเครื่องลูกข่ายว่าจำเป็นต้องทำการพิสูจน์ตัวตนก่อน คล้ายกับรหัส 403 Forbidden แต่ใช้เฉพาะเมื่อการพิสูจน์นั้นสามารถกระทำได้แต่กระบวนการล้มเหลว หรือยังไม่ได้เตรียมไว้ให้ ดูเพิ่มที่ การพิสูจน์ตัวจริงเพื่อเข้าถึงแบบพื้นฐาน (basic access authentication) และ การพิสูจน์ตัวจริงเพื่อเข้าถึงแบบย่อยข้อมูล (digest access authentication)
402 Payment Required
จำเป็นต้องเสียค่าเข้าชมก่อน ความตั้งใจของรหัสสถานภาพนี้คือเพื่อใช้เป็นส่วนหนึ่งของระบบเงินอิเล็กทรอนิกส์หรือระบบที่ต้องบริจาคเพื่อให้ได้มาซึ่งเนื้อหา แต่ก็ยังไม่เคยเกิดขึ้นมาก่อน และรหัสนี้ก็ไม่เคยได้นำมาใช้เลย
403 Forbidden
ข้อความร้องขอที่ส่งเข้ามาถูกต้อง แต่เครื่องแม่ข่ายปฏิเสธที่จะให้บริการ ในกรณีนี้การพิสูจน์ตัวตนไม่ได้ให้ผลที่แตกต่างจากเดิม
404 Not Found
ทรัพยากรที่ร้องขอไม่พบบนเครื่องแม่ข่าย แต่อาจสามารถกลับมามีได้ใหม่ในอนาคต การร้องขออื่น ๆ ที่ตามมายังสามารถดำเนินการได้ต่อไป
405 Method Not Allowed
เครื่องลูกข่ายใช้คำสั่งที่ทรัพยากรนั้นไม่รองรับ ตัวอย่างเช่น การส่งข้อมูลจากแบบฟอร์มด้วยคำสั่ง GET แต่ทรัพยากรปลายทางจำเป็นต้องเสนอด้วยคำสั่ง PUT หรือการใช้ PUT บนทรัพยากรที่อ่านได้อย่างเดียว เป็นต้น
406 Not Acceptable
ทรัพยากรที่ร้องขอซึ่งสามารถสร้างขึ้นได้ แต่เครื่องแม่ข่ายไม่ยอมรับให้ทำเช่นนั้น เนื่องจากส่วนหัว Accept ที่ส่งมากับข้อความร้องขอไม่สัมพันธ์กัน
407 Proxy Authentication Required
จำเป็นต้องมีการพิสูจน์ตัวจริงบนพร็อกซีก่อน
408 Request Timeout
เครื่องให้บริการรอรับข้อความร้องขอจนหมดเวลา
409 Conflict
ใช้แสดงว่าการร้องขอนั้นไม่สามารถประมวลผลได้ เนื่องจากเกิดข้อขัดแย้งในข้อความร้องขอ เช่นการแก้ไขชนกัน
410 Gone
ทรัพยากรที่ร้องขอไม่มีอยู่ และจะไม่กลับมามีอีกต่อไป รหัสนี้ควรใช้เมื่อตั้งใจที่จะเอาทรัพยากรแหล่งหนึ่งออกไปอย่างถาวร อย่างไรก็ตามรหัสนี้ก็ไม่จำเป็นและสามารถใช้ 404 Not Found แทนได้ แต่ถ้าหากได้รับรหัส 410 เมื่อใด เครื่องลูกข่ายไม่ควรส่งการร้องขอทรัพยากรนั้นมาอีกในอนาคต เสิร์ชเอนจินควรลบทรัพยากรนี้ออกจากดัชนีเว็บไซต์
411 Length Required
ข้อความร้องขอไม่ได้ระบุขนาดของเนื้อหามาในส่วนหัว ซึ่งเป็นสิ่งที่จำเป็นโดยทรัพยากรปลายทาง
412 Precondition Failed
เครื่องแม่ข่ายไม่สามารถทำตามเงื่อนไขอย่างใดอย่างหนึ่งที่ให้ไว้โดยผู้ทำการร้องขอ
413 Request Entity Too Large
ทรัพยากรที่ร้องขอใหญ่เกินกว่าที่จะส่งด้วยโพรโทคอลปัจจุบันได้
414 Request-URI Too Long
ตัวระบุแหล่งทรัพยากรสากลยาวเกินกว่าที่เครื่องให้บริการจะประมวลผล
415 Unsupported Media Type
ข้อความร้องขอไม่ได้ระบุแบบชนิดสื่ออินเทอร์เน็ตที่เครื่องแม่ข่ายหรือทรัพยากรนั้นรองรับ ตัวอย่างเช่นเครื่องลูกข่ายระบุว่าทรัพยากรรูปภาพควรจะส่งให้มาเป็น image/svg+xml แต่เครื่องแม่ข่ายไม่สามารถหาชนิดของรูปภาพที่ต้องการ
416 Requested Range Not Satisfiable
เครื่องลูกข่ายร้องขอเนื้อหาบางส่วนของไฟล์ แต่เครื่องแม่ข่ายไม่สามารถจัดหาช่วงข้อมูลนั้นได้ เช่นในกรณีที่ตัวแทนผู้ใช้ร้องขอด้วยช่วงข้อมูลที่เกินกว่าขนาดของไฟล์
417 Expectation Failed
ส่วนหัว Expect ที่ส่งมาจากเครื่องลูกข่าย ยังไม่เพียงพอต่อความต้องการของเครื่องให้บริการ
418 I'm a teapot
แจ้งว่าเครื่องให้บริการเป็น "กาน้ำชา" เนื้อหาที่ได้รับอาจเป็น "short and stout" รหัสสถานภาพนี้กำหนดโดย RFC 2324 ในวันเอพริลฟูลส์ ดูเพิ่มที่ Hyper Text Coffee Pot Control Protocol (HTCPCP)
422 Unprocessable Entity
ข้อความร้องขอถูกจัดรูปแบบไว้อย่างดีแล้ว แต่ไม่สามารถทำตามนั้นได้เนื่องจากการตีความผิดพลาด (RFC 4918) (WebDAV)
423 Locked
ทรัพยากรที่กำลังจะเข้าถึงนั้นถูกล็อกอยู่ (RFC 4918) (WebDAV)
424 Failed Dependency
การร้องขอล้มเหลว อันเนื่องจากความล้มเหลวของการร้องขอก่อนหน้า เช่นการใช้ PROPPATCH (RFC 4918) (WebDAV)
425 Unordered Collection
ได้นิยามไว้ในร่างของ WebDAV Advanced Collections แต่ไม่ได้นำเสนอใน "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol" (RFC 3648)
426 Upgrade Required
เครื่องลูกข่ายควรเปลี่ยนไปใช้ TLS/1.0
449 Retry With
การร้องขอควรจะลองใหม่อีกครั้งหลังจากมีการกระทำที่เหมาะสม เป็นส่วนขยายของไมโครซอฟท์

5xx ความผิดพลาดจากเครื่องแม่ข่าย

รหัสสถานภาพกลุ่มนี้หมายถึง "เครื่องแม่ข่ายไม่สามารถให้บริการได้ แม้ว่าการร้องขอจะส่งมาอย่างถูกต้อง" เครื่องให้บริการพบกับข้อผิดพลาดบางประการซึ่งทำให้ไม่สามารถทำตามการร้องขอที่ส่งมา เครื่องแม่ข่ายควรอธิบายสาเหตุของความผิดพลาดลงในส่วนเนื้อหาในข้อความตอบรับ และควรระบุว่าเป็นปัญหาที่เกิดขึ้นชั่วคราวหรือถาวร ยกเว้นเมื่อตอบกลับจากคำสั่ง HEAD นอกจากนั้นตัวผู้ใช้ควรแจ้งข้อผิดพลาดให้ผู้ใช้ทราบ รหัสกลุ่มนี้สามารถใช้ตอบรับกับคำสั่งใดก็ได้

500 Internal Server Error
ข้อความแสดงความผิดพลาดแบบทั่วไป ใช้เมื่อไม่มีข้อความเฉพาะที่เหมาะสมในการแจ้งสาเหตุ
501 Not Implemented
เครื่องให้บริการไม่เข้าใจคำสั่งร้องขอ หรือไม่ได้มีความสามารถให้ทำงานตามคำสั่งนั้น
502 Bad Gateway
เครื่องแม่ข่ายกำลังทำหน้าที่เป็นเกตเวย์หรือพร็อกซี และได้รับข้อความตอบรับที่ผิดพลาดจากเครื่องให้บริการเบื้องหลัง
503 Service Unavailable
เครื่องแม่ข่ายยังไม่ให้บริการในปัจจุบัน อันเนื่องจากการใช้งานเกินพิกัดหรืออยู่ในระหว่างการบำรุงรักษา โดยปกติแล้วสถานภาพนี้จะเป็นอยู่เพียงชั่วคราว
504 Gateway Timeout
เครื่องแม่ข่ายกำลังทำหน้าที่เป็นเกตเวย์หรือพร็อกซี และไม่ได้รับข้อความตอบรับจากเครื่องให้บริการเบื้องหลัง ซึ่งรอรับข้อมูลจนกระทั่งหมดเวลา
505 HTTP Version Not Supported
เครื่องแม่ข่ายไม่รองรับรุ่นของเอชทีทีพีที่ใช้ในข้อความร้องขอ
506 Variant Also Negotiates
เครื่องแม่ข่ายกำลังทำหน้าที่เป็นเกตเวย์หรือพร็อกซี แต่การสื่อสารมีการเจรจาเชื่อมต่อระหว่างกลาง ทำให้การเชื่อมโยงไปไม่ถึงเครื่องให้บริการเบื้องหลัง (RFC 2295)
507 Insufficient Storage
แหล่งเก็บข้อมูลบนเครื่องแม่ข่ายไม่พอเพียง (RFC 4918) (WebDAV)
509 Bandwidth Limit Exceeded
การใช้งานแบนด์วิดท์เกินกำหนด เป็นส่วนขยายของอะแพชี เว็บเซิร์ฟเวอร์ นิยมใช้อย่างแพร่หลายถึงแม้ว่าจะไม่ได้กำหนดในเอกสารขอความเห็น
510 Not Extended
จำเป็นต้องใช้ส่วนขยายเพิ่มเพื่อให้สามารถดำเนินงานตามการร้องขอนั้นได้ แต่ส่วนขยายนั้นไม่มีบนเครื่องแม่ข่าย (RFC 2774)

อ้างอิง

  1. "The HTTP status codes in IIS 7.0". สืบค้นเมื่อ 2009-04-01.
  2. RFC 2616 §14.20– Expect header
  3. RFC 2616 §8.2.3– 100 (Continue) Status
  4. Google Help – Google HTTP status codes
  5. "Mozilla Bugzilla Bug 187996: Strange behavior on 305 redirect". 2003-03-03. สืบค้นเมื่อ 2009-05-21.