HTTP報錯401和403詳解及解決辦法


一、401:

1. HTTP 401 錯誤 - 未授權: (Unauthorized)

您的Web服務器認為,客戶端發送的 HTTP 數據流是正確的,但進入網址 (URL) 資源 , 需要用戶身份驗證 , 而相關信息 1 )尚未被提供, 或 2 )已提供但沒有通過授權測試。這就是通常所知的“ HTTP 基本驗證 ”。 需客戶端提供的驗證請求在 HTTP 協議中被定義為 WWW – 驗證標頭字段 (WWW-Authenticate header field) 

桌面應用程序一般不會使用cookie, 而是把 "用戶名+冒號+密碼"用BASE64編碼的字符串放在http request 中的header Authorization中發送給服務端, 這種方式叫HTTP基本認證(Basic Authentication)。

 

2. 原因:

因為request中沒有包含Authorization header,服務器會返回一個401 Unauthozied給客戶端,並且在Response的header“www-authentivate”中添加信息。當客戶端把用戶名密碼用Base64加密后編碼,放在Authorization header中發送給服務器,那么就會認證成功了。

 

3. 場景及辦法:

最近用postman偶然遇見了401的報錯,是請求用戶的token這個接口的時候,所有的Body請求參數和Headers都一樣,但是就是報錯401。喊了后端過來看了好久哈哈哈,忘了加Authorization這個請求Header了。解決辦法就是,在Headers中添加基本認證的鍵值對。這個鍵值對如下:

Authorization:Basic YKKOw9MPlY3JldA==(注意:這里的Base64位編碼我隨便寫的,可以隨意看看)

http://blog.csdn.net/u013136708/article/details/41210897

 

二、403:

1. HTTP 403 Forbidden - 拒絕訪問

403 Forbidden 是HTTP協議中的一個狀態碼(Status Code)。可以簡單的理解為沒有權限訪問此站。

該狀態表示服務器理解了本次請求但是拒絕執行該任務,該請求不該重發給服務器。在HTTP請求的方法不是“HEAD”,並且服務器想讓客戶端知道為什么沒有權限的情況下,服務器應該在返回的信息中描述拒絕的理由。在服務器不想提供任何反饋信息的情況下,服務器可以用404 Not Found代替403 Forbidden。

2.  原因:
You don't have permission to access / on this server.Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

3. 場景及辦法:
前幾天偶然看到了這個報錯403,是當時我們鏈接地址是https://www.ceshi.com; 但是卻被誰誰誰配置成了http://www.ceshi.com;最后就會導致403的報錯。解決辦法:就是將http改成https。
細看了下:這個錯誤應該是403.4。403.4錯誤是由於要求SSL而造成的,您必須在要查看的網頁的地址中使用"https"。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM