สมมติว่า HTTP รับรองความถูกต้อง ( WWW-Authenticateและการอนุญาตส่วนหัว) ที่อยู่ในการใช้งานหากตรวจสอบเป็นผู้ใช้อื่นจะให้สิทธิ์การเข้าถึงทรัพยากรที่ร้องขอแล้ว 401 ไม่ได้รับอนุญาตจะถูกส่งกลับ
403 ต้องห้ามถูกใช้เมื่อทุกคนเข้าถึงทรัพยากรต้องห้ามหรือ จำกัด เครือข่ายที่กำหนดหรืออนุญาตผ่าน SSL เท่านั้นไม่ว่าจะเกี่ยวข้องกับการตรวจสอบสิทธิ์ HTTP หรือไม่ก็ตาม
หากไม่ได้ใช้การตรวจสอบความถูกต้องของ HTTPและให้บริการรูปแบบการตรวจสอบความถูกต้องของคุกกี้ตามปกติในปัจจุบันดังนั้นควรส่งคืน 403 หรือ 404
เกี่ยวกับ 401 นี่มาจาก RFC 7235 (Hypertext Transfer Protocol (HTTP / 1.1): การรับรองความถูกต้อง):
3.1 401 ไม่ได้รับอนุญาต
รหัสสถานะ 401 (ไม่ได้รับอนุญาต) บ่งชี้ว่าการร้องขอนั้นไม่ได้ถูกนำไปใช้เพราะมันไม่มีข้อมูลรับรองการตรวจสอบสิทธิ์ที่ถูกต้องสำหรับทรัพยากรเป้าหมาย เซิร์ฟเวอร์ต้นทางต้องส่งฟิลด์ส่วนหัวรับรองความถูกต้อง WWW (ส่วน 4.4) ที่มีความท้าทายอย่างน้อยหนึ่งข้อที่เกี่ยวข้องกับทรัพยากรเป้าหมาย หากคำร้องขอนั้นมีข้อมูลรับรองการตรวจสอบความถูกต้องการตอบสนอง 401 บ่งชี้ว่าการอนุญาตนั้นถูกปฏิเสธสำหรับข้อมูลรับรองเหล่านั้น. ลูกค้าอาจทำซ้ำการร้องขอด้วยฟิลด์ส่วนหัวการอนุญาตใหม่หรือที่ถูกแทนที่ (ส่วน 4.1) หากการตอบสนอง 401 มีความท้าทายเช่นเดียวกับการตอบสนองก่อนหน้านี้และตัวแทนผู้ใช้ได้พยายามรับรองความถูกต้องอย่างน้อยหนึ่งครั้งตัวแทนผู้ใช้ SHOULD จะแสดงการแสดงที่แนบกับผู้ใช้เนื่องจากโดยทั่วไปจะมีข้อมูลการวินิจฉัยที่เกี่ยวข้อง
ความหมายของ 403 (และ 404) มีการเปลี่ยนแปลงเมื่อเวลาผ่านไป นี่คือจากปี 1999 (RFC 2616):
10.4.4 403 สิ่งต้องห้าม
เซิร์ฟเวอร์เข้าใจคำขอ แต่ปฏิเสธที่จะปฏิบัติตาม
การอนุญาตจะไม่ช่วยและไม่ควรทำซ้ำการร้องขอ
หากวิธีการร้องขอไม่ได้เป็น HEAD และเซิร์ฟเวอร์ประสงค์ที่จะ
เปิดเผยต่อสาธารณะว่าทำไมคำขอไม่ได้รับการตอบสนองก็ควรอธิบายถึงเหตุผลในการปฏิเสธในเอนทิตี หากเซิร์ฟเวอร์ไม่ต้องการให้ข้อมูลนี้พร้อมใช้งานสำหรับลูกค้าสามารถใช้รหัสสถานะ 404
(ไม่พบ) แทน
ในปี 2014 RFC 7231 (Hypertext Transfer Protocol (HTTP / 1.1): ความหมายและเนื้อหา) เปลี่ยนความหมายของ 403:
6.5.3 403 ต้องห้าม
รหัสสถานะ 403 (ต้องห้าม) ระบุว่าเซิร์ฟเวอร์เข้าใจคำขอ แต่ปฏิเสธที่จะอนุญาต เซิร์ฟเวอร์ที่ต้องการเผยแพร่สู่สาธารณะว่าทำไมคำขอจึงถูกห้ามสามารถอธิบายเหตุผลนั้นได้ในเพย์โหลดการตอบสนอง (ถ้ามี)
หากมีการให้ข้อมูลรับรองความถูกต้องในการร้องขอ
เซิร์ฟเวอร์จะถือว่าพวกเขาไม่เพียงพอที่จะให้สิทธิ์การเข้าถึง ลูกค้า
ไม่ควรทำซ้ำการร้องขอโดยอัตโนมัติด้วย
ข้อมูลประจำตัวเดียวกัน ลูกค้าอาจทำซ้ำการร้องขอด้วยข้อมูลประจำตัวใหม่หรือแตกต่างกัน อย่างไรก็ตามคำขออาจถูกห้ามด้วยเหตุผลที่
ไม่เกี่ยวข้องกับข้อมูลประจำตัว
เซิร์ฟเวอร์ต้นทางที่ต้องการ "ซ่อน" การมีอยู่ของ
ทรัพยากรเป้าหมายต้องห้ามในปัจจุบันอาจตอบกลับด้วยรหัสสถานะ
404 (ไม่พบ)
ดังนั้นตอนนี้ 403 (หรือ 404) อาจหมายถึงอะไรก็ได้ การให้ข้อมูลประจำตัวใหม่อาจช่วย ... หรืออาจจะไม่
ฉันเชื่อว่าเหตุผลที่ทำให้สิ่งนี้เปลี่ยนไปคือ RFC 2616 สันนิษฐานว่าการรับรองความถูกต้อง HTTP จะใช้เมื่อในทางปฏิบัติเว็บแอปในปัจจุบันสร้างโครงร่างการรับรองความถูกต้องที่กำหนดเองโดยใช้ตัวอย่างเช่นฟอร์มและคุกกี้