1. 程式人生 > >HTML狀態訊息和方法

HTML狀態訊息和方法

參考連結1
參考連結2

當瀏覽器從 web 伺服器請求服務時,可能會發生錯誤。

HTML訊息

1xx: 資訊

訊息: 描述:
100 Continue 伺服器僅接收到部分請求,但是一旦伺服器並沒有拒絕該請求,客戶端應該繼續傳送其餘的請求。
101 Switching Protocols 伺服器轉換協議:伺服器將遵從客戶的請求轉換到另外一種協議。

2xx: 成功

訊息: 描述:
200 OK 請求成功(其後是對GET和POST請求的應答文件。)
201 Created 請求被建立完成,同時新的資源被建立。
202 Accepted 供處理的請求已被接受,但是處理未完成。
203 Non-authoritative Information 文件已經正常地返回,但一些應答頭可能不正確,因為使用的是文件的拷貝。
204 No Content 沒有新文件。瀏覽器應該繼續顯示原來的文件。如果使用者定期地重新整理頁面,而Servlet可以確定使用者文件足夠新,這個狀態程式碼是很有用的。
205 Reset Content 沒有新文件。但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容。
206 Partial Content 客戶傳送了一個帶有Range頭的GET請求,伺服器完成了它。

3xx: 重定向

訊息: 描述:
300 Multiple Choices 多重選擇。連結列表。使用者可以選擇某連結到達目的地。最多允許五個地址。
301 Moved Permanently 所請求的頁面已經轉移至新的url。
302 Found 所請求的頁面已經臨時轉移至新的url。
303 See Other 所請求的頁面可在別的url下被找到。
304 Not Modified 未按預期修改文件。客戶端有緩衝的文件併發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文件)。伺服器告訴客戶,原來緩衝的文件還可以繼續使用。
305 Use Proxy 客戶請求的文件應該通過Location頭所指明的代理伺服器提取。
306 Unused 此程式碼被用於前一版本。目前已不再使用,但是程式碼依然被保留。
307 Temporary Redirect 被請求的頁面已經臨時移至新的url。

4xx: 客戶端錯誤

訊息: 描述:
400 Bad Request 伺服器未能理解請求。
401 Unauthorized 被請求的頁面需要使用者名稱和密碼。
402 Payment Required 此程式碼尚無法使用。
403 Forbidden 對被請求頁面的訪問被禁止。
404 Not Found 伺服器無法找到被請求的頁面。
405 Method Not Allowed 請求中指定的方法不被允許。
406 Not Acceptable 伺服器生成的響應無法被客戶端所接受。
407 Proxy Authentication Required 使用者必須首先使用代理伺服器進行驗證,這樣請求才會被處理。
408 Request Timeout 請求超出了伺服器的等待時間。
409 Conflict 由於衝突,請求無法被完成。
410 Gone 被請求的頁面不可用。
411 Length Required "Content-Length" 未被定義。如果無此內容,伺服器不會接受請求。
412 Precondition Failed 請求中的前提條件被伺服器評估為失敗。
413 Request Entity Too Large 由於所請求的實體的太大,伺服器不會接受請求。
414 Request-url Too Long 由於url太長,伺服器不會接受請求。當post請求被轉換為帶有很長的查詢資訊的get請求時,就會發生這種情況。
415 Unsupported Media Type 由於媒介型別不被支援,伺服器不會接受請求。
416 伺服器不能滿足客戶在請求中指定的Range頭。
417 Expectation Failed

5xx: 伺服器錯誤

訊息: 描述:
500 Internal Server Error 請求未完成。伺服器遇到不可預知的情況。
501 Not Implemented 請求未完成。伺服器不支援所請求的功能。
502 Bad Gateway 請求未完成。伺服器從上游伺服器收到一個無效的響應。
503 Service Unavailable 請求未完成。伺服器臨時過載或當機。
504 Gateway Timeout 閘道器超時。
505 HTTP Version Not Supported 伺服器不支援請求中指明的HTTP協議版本。

HTTP 方法:GET & POST

GET 方法

請注意,查詢字串(名稱/值對)是在 GET 請求的 URL 中傳送的:

/test/demo_form.asp?name1=value1&name2=value2

有關 GET 請求的其他一些註釋:

  • GET 請求可被快取
  • GET 請求保留在瀏覽器歷史記錄中
  • GET 請求可被收藏為書籤
  • GET 請求不應在處理敏感資料時使用
  • GET 請求有長度限制
  • GET 請求只應當用於取回資料

POST 方法

請注意,查詢字串(名稱/值對)是在 POST 請求的 HTTP 訊息主體中傳送的:

POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

有關 POST 請求的其他一些註釋:

  • POST 請求不會被快取
  • POST 請求不會保留在瀏覽器歷史記錄中
  • POST 不能被收藏為書籤
  • POST 請求對資料長度沒有要求

比較 GET 與 POST

下面的表格比較了兩種 HTTP 方法:GET 和 POST。

GET POST
後退按鈕/重新整理 無害 資料會被重新提交(瀏覽器應該告知使用者資料會被重新提交)。
書籤 可收藏為書籤 不可收藏為書籤
快取 能被快取 不能快取
編碼型別 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。為二進位制資料使用多重編碼。
歷史 引數保留在瀏覽器歷史中。 引數不會儲存在瀏覽器歷史中。
對資料長度的限制 是的。當傳送資料時,GET 方法向 URL 新增資料;URL 的長度是受限制的(URL 的最大長度是 2048 個字元)。 無限制。
對資料型別的限制 只允許 ASCII 字元。 沒有限制。也允許二進位制資料。
安全性 與 POST 相比,GET 的安全性較差,因為所傳送的資料是 URL 的一部分。在傳送密碼或其他敏感資訊時絕不要使用 GET ! POST 比 GET 更安全,因為引數不會被儲存在瀏覽器歷史或 web 伺服器日誌中。
可見性 資料在 URL 中對所有人都是可見的。 資料不會顯示在 URL 中。

其他 HTTP 請求方法

下面的表格列出了其他一些 HTTP 請求方法:

方法 描述
HEAD 與 GET 相同,但只返回 HTTP 報頭,不返回文件主體。
PUT 上傳指定的 URI 表示。
DELETE 刪除指定資源。
OPTIONS 返回伺服器支援的 HTTP 方法。
CONNECT 把請求連線轉換到透明的 TCP/IP 通道。