HTML狀態訊息和方法
阿新 • • 發佈:2019-01-01
當瀏覽器從 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 通道。 |