HTTP 301
และ308
รหัสสถานะต่างกันอย่างไร
301
(ย้ายถาวร): คำขอนี้และในอนาคตทั้งหมดควรถูกส่งไปยัง URI ที่กำหนด308
(การเปลี่ยนเส้นทางถาวร): คำขอและคำขอในอนาคตทั้งหมดควรทำซ้ำโดยใช้ URI อื่น
พวกเขาดูเหมือนจะคล้ายกัน
HTTP 301
และ308
รหัสสถานะต่างกันอย่างไร
301
(ย้ายถาวร): คำขอนี้และในอนาคตทั้งหมดควรถูกส่งไปยัง URI ที่กำหนด
308
(การเปลี่ยนเส้นทางถาวร): คำขอและคำขอในอนาคตทั้งหมดควรทำซ้ำโดยใช้ URI อื่น
พวกเขาดูเหมือนจะคล้ายกัน
คำตอบ:
301
, 302
และ307
RFC 7231อ้างอิงปัจจุบันความหมายและเนื้อหาของ HTTP / 1.1 โปรโตคอลกำหนด301
(ย้ายถาวร) และ302
รหัสสถานะ (พบ) ที่ช่วยให้วิธีการขอให้มีการเปลี่ยนแปลงไปPOST
GET
ข้อกำหนดนี้ยังกำหนด307
(ชั่วคราวเปลี่ยนเส้นทาง) รหัสสถานะที่ไม่อนุญาตให้ใช้วิธีการขอให้มีการเปลี่ยนแปลงไปPOST
GET
ดูรายละเอียดเพิ่มเติมด้านล่าง:
301
(ย้ายถาวร) รหัสสถานะบ่งชี้ว่าทรัพยากรเป้าหมายได้รับมอบหมายถาวร URI ใหม่และการอ้างอิงในอนาคตใด ๆ กับทรัพยากรนี้ควรจะใช้อย่างใดอย่างหนึ่งของยูริที่แนบมา [ ... ]หมายเหตุ:ด้วยเหตุผลทางประวัติศาสตร์ตัวแทนผู้ใช้อาจเปลี่ยนวิธีการร้องขอจาก
POST
เป็นGET
สำหรับการร้องขอในภายหลัง หากพฤติกรรมนี้ไม่เป็นที่ต้องการ307
สามารถใช้รหัสสถานะ (การเปลี่ยนเส้นทางชั่วคราว) แทนได้
302
(พบ) รหัสสถานะบ่งชี้ว่าทรัพยากรเป้าหมายอาศัยอยู่ชั่วคราวภายใต้ URI ที่แตกต่างกัน เนื่องจากการเปลี่ยนเส้นทางอาจมีการเปลี่ยนแปลงในบางครั้งไคลเอนต์จึงควรใช้ URI คำขอที่มีประสิทธิภาพต่อไปสำหรับคำขอในอนาคต [ ... ]หมายเหตุ:ด้วยเหตุผลทางประวัติศาสตร์ตัวแทนผู้ใช้อาจเปลี่ยนวิธีการร้องขอจาก
POST
เป็นGET
สำหรับการร้องขอในภายหลัง หากพฤติกรรมนี้ไม่เป็นที่ต้องการ307
สามารถใช้รหัสสถานะ (การเปลี่ยนเส้นทางชั่วคราว) แทนได้
6.4.7 307 การเปลี่ยนเส้นทางชั่วคราว
307
(ชั่วคราวเปลี่ยนเส้นทาง) รหัสสถานะบ่งชี้ว่าอยู่ทรัพยากรเป้าหมายชั่วคราวภายใต้แตกต่างกัน URI และตัวแทนของผู้ใช้จะต้องไม่เปลี่ยนวิธีการร้องขอถ้ามันดำเนินการเปลี่ยนเส้นทางโดยอัตโนมัติเพื่อ URI ที่ เนื่องจากการเปลี่ยนเส้นทางสามารถเปลี่ยนแปลงได้ตลอดเวลาไคลเอนต์จึงควรใช้ URI คำขอเดิมที่มีผลบังคับใช้ต่อไปสำหรับคำขอในอนาคต [ ... ]หมายเหตุ:รหัสสถานะนี้จะคล้ายกับ
302
(พบ) ยกเว้นว่าจะไม่อนุญาตให้มีการเปลี่ยนแปลงวิธีการร้องขอจากไปPOST
GET
ข้อกำหนดนี้ไม่ได้กำหนดคู่ที่เทียบเท่าสำหรับ301
(ย้ายถาวร) ( RFC 7238อย่างไรก็ตามกำหนดรหัสสถานะ308
(การเปลี่ยนเส้นทางถาวร) สำหรับวัตถุประสงค์นี้)
308
RFC 7238ได้ถูกสร้างขึ้นเพื่อกำหนด308
(ถาวรเปลี่ยนเส้นทาง) รหัสสถานะที่คล้ายกับ301
(ย้ายถาวร) แต่ไม่ได้ช่วยให้วิธีการขอให้มีการเปลี่ยนแปลงไปPOST
GET
308
รหัสสถานะที่ถูกกำหนดในขณะนี้โดยRFC 7538 (ที่จำหน่ายแล้วRFC 7238 )
308
(ถาวรเปลี่ยนเส้นทาง) รหัสสถานะบ่งชี้ว่าทรัพยากรเป้าหมายได้รับมอบหมายถาวร URI ใหม่และการอ้างอิงในอนาคตใด ๆ กับทรัพยากรนี้ควรจะใช้อย่างใดอย่างหนึ่งของยูริที่แนบมา ไคลเอนต์ที่มีความสามารถในการแก้ไขลิงก์ควรเชื่อมโยงการอ้างอิงไปยัง URI คำขอที่มีประสิทธิภาพอีกครั้งโดยอัตโนมัติกับการอ้างอิงใหม่ที่ส่งโดยเซิร์ฟเวอร์หากเป็นไปได้ [ ... ]หมายเหตุ:รหัสสถานะนี้จะคล้ายกับ
301
(ย้ายถาวร) ยกเว้นว่ามันไม่ได้ช่วยให้การเปลี่ยนวิธีการร้องขอจาก ไปPOST
GET
เรามีสิ่งต่อไปนี้:
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn't allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
Michael Kropatรวบรวมชุดแผนภูมิการตัดสินใจที่ช่วยในการกำหนดรหัสสถานะที่ดีที่สุดสำหรับแต่ละสถานการณ์ ดูรหัสสถานะ2xx
และ3xx
รหัสต่อไปนี้:
POST
เป็นGET
" ได้หรือไม่ หมายความว่า dat แบบฟอร์มที่โพสต์ไม่สามารถประมวลผลได้ แต่ฟอร์มใหม่สดสามารถถูกเซิร์ฟเวอร์แล้วโพสต์ในคำขอถัดไปได้หรือไม่?
POST
คำขอ (ปลอดภัย) เป็น a ถึง(ไม่ปลอดภัยในข้อมูลนั้นโดยการเพิ่มลงใน url - และสามารถบันทึก URL ได้ - รวมถึงรหัสผ่าน) คำขออาจเป็นปัญหาด้านความปลอดภัยและโดยทั่วไปควรหลีกเลี่ยงเว้นแต่คุณจะทราบว่าปลอดภัยในการเปลี่ยนแปลง ทุกวันนี้ดูเหมือนว่าโดยทั่วไปได้รับการสนับสนุนและชอบใช้ 307, 308 มากกว่า 301, 302 แต่คุณควรตรวจสอบ GET
308
เป็นเหมือนอินฟินิตี้ด้านข้างดังนั้นการเปลี่ยนเส้นทางถาวรและไม่เคยเปลี่ยนวิธีการร้องขอ - มันเป็นประเภทคำขอถาวรแบบถาวร จากนั้น307
เป็น1
ขั้นตอนด้านล่าง - วิธีการขอถาวร / เก็บ (รับ / โพสต์) แต่เปลี่ยนเส้นทางไปยังตำแหน่งชั่วคราว: 7 - ดูเหมือน "เลี้ยวซ้าย" หรือทางอ้อมชั่วคราวและ 7 ก็คล้ายกับ k ดังนั้น "เก็บ" วิธีการร้องขอ