1. 程式人生 > >初見 http 401------談談401和403的區別

初見 http 401------談談401和403的區別

       最近, 去訪問某一資源, 提示http 401,  頗為納悶, 從未見過啊, 孤陋寡聞。

       於是, 上網查找了一下, 是鑑權錯誤, 仔細check了一下自己的程式碼, 發現程式碼果然有問題, 配置出錯了, 而且還多了一個空格, 導致http req中的authentication資訊不對, 從而導致http rsp中的status code為 401. 修改程式碼後, 就OK了。

       之前, 我們還說過http 403,  那http 401和 http 403有什麼區別呢? 我來引用網上的一段話來說明:

There's a problem with 401 Unauthorized

, the HTTP status code for authentication errors. And that’s just it: it’s for authentication, not authorization. Receiving a 401 response is the server telling you, “you aren’t authenticated–either not authenticated at all or authenticated incorrectly–but please reauthenticate and try again.” To help you out, it will always include a WWW-Authenticate
 header that describes how to authenticate.

This is a response generally returned by your web server, not your web application.

It’s also something very temporary; the server is asking you to try again.

So, for authorization I use the 403 Forbidden response. It’s permanent, it’s tied to my application logic, and it’s a more concrete response than a 401.

Receiving a 403 response is the server telling you, “I’m sorry. I know who you are–I believe who you say you are–but you just don’t have permission to access this resource. Maybe if you ask the system administrator nicely, you’ll get permission. But please don’t bother me again until your predicament changes.”

In summary, a 401 Unauthorized response should be used for missing or bad authentication, and a 403 Forbidden response should be used afterwards, when the user is authenticated but isn’t authorized to perform the requested operation on the given resource.


相關推薦

初見 http 401------談談401403區別

       最近, 去訪問某一資源, 提示http 401,  頗為納悶, 從未見過啊, 孤陋寡聞。        於是, 上網查找了一下, 是鑑權錯誤, 仔細check了一下自己的程式碼, 發現程式碼果然有問題, 配置出錯了, 而且還多了一個空格, 導致http req

談談SynchrnizedReentrantLock區別

  今年參加校招筆試面試經常遇到的一個問題。     總的來說,ReentrantLock並不是一種替代內建加鎖的方法,而是當內建加鎖機制不適用時,作為一種可選擇的高階功能。與內建鎖不同的是,Lock提供了一種無條件的、可輪詢的、定時的以及可中斷的鎖獲取

HTTP 請求中 Get Post 區別

一、原理區別 一般我們在瀏覽器輸入一個網址訪問網站都是GET請求;再FORM表單中,可以通過設定Method指定提交方式為GET或者POST提交方式,預設為GET提交方式。 HTTP定義了與伺服器互動的不同方法,其中最基本的四種:GET,POST,PUT,DELETE,H

HTTP報錯401403詳解及解決辦法

一、401: 1. HTTP 401 錯誤 - 未授權: (Unauthorized) 您的Web伺服器認為,客戶端傳送的 HTTP 資料流是正確的,但進入網址 (URL) 資源 , 需要使用者身份驗證 , 而相關資訊 1 )尚未被提供, 或 2 )已提供但沒有通過授

HTTP請求錯誤400、401、402、403、404、405、406、407、412、414、50

HTTP 錯誤 400 400 請求出錯 由於語法格式有誤,伺服器無法理解此請求。不作修改,客戶程式就無法重複此請求。  HTTP 錯誤 401 401.1 未授權:登入失敗 此錯誤表明傳輸給伺服器的證書與登入伺服器所需的證書不匹配。 請與 Web

HTTP請求錯誤400、401、402、403、404、405、406、407、412、414、500、501、502解析

HTTP 錯誤 401 401.1 未授權:登入失敗 此錯誤表明傳輸給伺服器的證書與登入伺服器所需的證書不匹配。 請與 Web 伺服器的管理員聯絡,以確認您是否具有訪問所請求資源的許可權。 401.2 未授權:伺服器的配置導致登入失敗 此錯誤表明傳輸給伺服器的

HTTP請求錯誤200、300、400、401、402、403、404、405、406、407、412、414、415、500、501、502解析

1開頭的http狀態碼 表示臨時響應並需要請求者繼續執行操作的狀態程式碼。 100 (繼續) 請求者應當繼續提出請求。 伺服器返回此程式碼表示已收到請求的第一部分,正在等待其餘部分。 101 (切換協議) 請求者已要求伺服器切換協議,伺服器已確認並準備切換。 2開頭的http狀態碼

saltstack api wheel模塊報錯HTTP/1.1 401 Unauthorized

saltstack api saltapi salt-api報錯 當使用saltstack api調用wheel模塊的時候會出現沒有權限的報錯[[email protected]/* */ ~]# curl -k -v https://localhost:8000 -H "Ac

http協議中getpost的區別

httpHttp定義了與服務器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETEURL全稱是資源描述符,我們可以這樣認 為:一個URL地址,它用於描述一個網絡上的資源,而HTTP中的GET,POST,PUT,DELETE就對應著對這個資源的查 ,改 ,增 ,刪 4個操作。到這裏,

HTTP ------ connection 為 close keep-alive 的區別

圖片 tcp連接 三次握手 字段 tcp 其它 時代 http 網頁 keep-alive和close這個要從TCP握手講起HTTP請求是基於TCP連接的,TCP的請求會包含(三次握手,中間請求,四次揮手)在HTTP/1.0時代,一個HTTP請求就要三次握手和四次揮手,當一

我來談談PHPJAVA在web開發上的的區別

高性能 分鐘 turn 小時 gpo 處理 body 功能 而且 這裏的標題寫的是談談PHP和JAVA的區別,其實是委婉的說法,其實別人是想聽PHP好還是JAVA好!!! 從而從中找到存在感!!!   因為由於我是從多年的php開發轉到java開發的。所以最,不時的有好幾

HTTP 協議中 URI URL 有什麽區別

路徑 西湖區 AI www. str 我們 tar ofo 不能 URI = Universal Resource IdentifierURL = Universal Resource Locator 統一資源標誌符URI就是在某一規則下能把一個資源獨一無二地標識出來。拿

(轉)Http狀態碼301302概念簡單區別及企業應用案例

ash BE light div www oldboy dex -i 地址 Http狀態碼301和302的區別及企業應用案例 原文:http://blog.51cto.com/oldboy/1774260 1、什麽是301重定向?   301重定向/跳轉一般,表示本網頁永

談談surging引擎的tcp、http、ws協議如何容器化部署

spro inter span ppi package completed module out 選址 1、前言 分布式已經成為了當前最熱門的話題,分布式框架也百花齊放,群雄逐鹿。從中心化服務治理框架,到去中心化分布式服務框架,再到分布式微服務引擎,這

Http協議中GETPOST請求方法的區別

出場 請求參數 底層 情況下 -type 過去 firefox url sym GET和POST是HTTP請求的兩種基本方法,要說它們的區別,接觸過WEB開發的人都能說出一二。 最直觀的區別就是GET把參數包含在URL中,POST通過request body傳遞

HTTP協議中GETPOST兩種基本請求方法的區別

GET和POST兩種基本請求方法的區別 GET和POST是HTTP請求的兩種基本方法,要說它們的區別,接觸過WEB開發的人都能說出一二。   最直觀的區別就是GET把引數包含在URL中,POST通過request body傳遞引數。   你可能自己寫過無數個G

TCP/IP、socket、Http之間的聯絡區別

參考轉載:http://xinzhi.wenda.so.com/a/1510590824200942 網路是資訊傳輸、接收、共享的虛擬平臺,它用物理鏈路將各個孤立的工作站或主機相連在一起,組成資料鏈路,從而達到資源共享和通訊的目的。網路會藉助文字閱讀、圖片檢視、影音播放、下載傳輸、遊戲聊天等軟體

什麼是http協議?getpost請求有什麼區別http請求content-Type有幾種,有什麼區別http適合什麼場景?http狀態碼有哪些?

這裡是修真院後端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析後端知識/技能,本篇分享的是: 【什麼是http協議?get和post請求有什麼區別?http請求content-Type有幾種

http中的getpost的區別

HTTP協議:超文字傳輸協議,保證客戶端和服務端的通訊。 get和post實現的功能基本相同,都是客戶端提交資料給伺服器端,只是實現的機制不同而已。 get是把引數資料佇列新增到表單的action屬性所指向的url中,值和表單裡的name屬性一一對應,在url中可以看到。 post是通過

HTTP請求方式GETPOST的區別詳解

HTTP有兩部分組成:請求與響應,下面分別整理。 一.HTTP請求 1.HTTP請求格式: <request line> <headers> <blank line> [<request-body>] 在HTTP請