401 Unauthorized: 該HTTP狀態(tài)碼表示認(rèn)證錯(cuò)誤,它是為了認(rèn)證設(shè)計(jì)的,而不是為了授權(quán)設(shè)計(jì)的。收到401響應(yīng),表示請求沒有被認(rèn)證—壓根沒有認(rèn)證或者認(rèn)證不正確—但是請重新認(rèn)證和重試。(一般在響應(yīng)頭部包含一個(gè)WWW-Authenticate來描述如何認(rèn)證)。通常由web服務(wù)器返回,而不是web應(yīng)用。從性質(zhì)上來說是臨時(shí)的東西。(服務(wù)器要求客戶端重試)
403 Forbidden:該HTTP狀態(tài)碼是關(guān)于授權(quán)方面的。從性質(zhì)上來說是永久的東西,和應(yīng)用的業(yè)務(wù)邏輯相關(guān)聯(lián)。它比401更具體,更實(shí)際。收到403響應(yīng)表示服務(wù)器完成認(rèn)證過程,但是客戶端請求沒有權(quán)限去訪問要求的資源。
總的來說,401 Unauthorized響應(yīng)應(yīng)該用來表示缺失或錯(cuò)誤的認(rèn)證;403 Forbidden響應(yīng)應(yīng)該在這之后用,當(dāng)用戶被認(rèn)證后,但用戶沒有被授權(quán)在特定資源上執(zhí)行操作。
HTTP狀態(tài)碼決策圖:

參考資料
403 Forbidden vs 401 Unauthorized HTTP responses
HTTP Status Codes Decision Diagram – Infographic