http協議
請求方式
方法 |
描述 |
GET |
請求指定的頁面信息,並返回實體主體。 |
HEAD |
類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 |
POST |
向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。 |
PUT |
從客戶端向服務器傳送的數據取代指定的文檔的內容。 |
DELETE |
請求服務器刪除指定的頁面。 |
CONNECT |
HTTP/1.1協議中預留給能夠將連接改爲管道方式的代理服務器。 |
OPTIONS |
允許客戶端查看服務器的性能。 |
TRACE |
回顯服務器收到的請求,主要用於測試或診斷。 |
GET & POST
|
Get |
Post |
|
後退按鈕/刷新 |
無害 |
數據會被重新提交(瀏覽器應該告知用戶數據會被重新提交) |
|
收藏書籤 |
可以 |
不可以 |
|
瀏覽器主動緩存 |
瀏覽器主動緩存 |
不會主動緩存,除非手動設置 |
|
編碼類型 |
application/x-www-form-urlencoded |
application/x-www-form-urlencoded 或 multipart/form-data。爲二進制數據使用多重編碼。 |
|
歷史 |
參數保留在瀏覽器歷史中 |
參數不會保留在瀏覽器歷史中 |
|
數據長度限制 |
url長度受限制(url最大長度是2048個字符) |
無限制 |
這個長度通常是瀏覽器限制,(大多數)瀏覽器通常都會限制url長度在2K個字節,而(大多數)服務器最多處理64K大小的url |
數據類型限制 |
只允許ASCII字符 |
沒有限制,也允許二進制數據 |
|
安全性 |
發送的數據是url的一部分,與post相比安全性較差 |
參數不會保留在瀏覽器歷史中或web服務器日誌中 |
|
可見性 |
數據在url中對所有人都是可見的 |
數據不會顯示在url中 |
|
數據傳輸方式 |
url傳遞 |
Request Body中 |
get服務也可以在Request Body中放數據,但是不同瀏覽器的處理方式不同,可能造成數據收不到 |
誤區:GET產生一個TCP數據包;POST產生兩個TCP數據包。
對於GET方式的請求,瀏覽器會把http header和data一併發送出去,服務器響應200(返回數據);
而對於POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)。
1、據研究,在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網絡環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。
2、並不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次。
狀態碼
|
狀態碼 |
描述 |
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 |
被請求的頁面需要用戶名和密碼。 |
|
401.1 |
登錄失敗。 |
|
401.2 |
服務器配置導致登錄失敗。 |
|
401.3 |
由於 ACL 對資源的限制而未獲得授權。 |
|
401.4 |
篩選器授權失敗。 |
|
401.5 |
ISAPI/CGI 應用程序授權失敗。 |
|
401.7 |
訪問被 Web 服務器上的 URL 授權策略拒絕。這個錯誤代碼爲 IIS 6.0 所專用。 |
|
402 Payment Required |
此代碼尚無法使用。 |
|
403 Forbidden |
對被請求頁面的訪問被禁止。 |
|
403.1 |
執行訪問被禁止。 |
|
403.2 |
讀訪問被禁止。 |
|
403.3 |
寫訪問被禁止。 |
|
403.4 |
要求 SSL。 |
|
403.5 |
要求 SSL 128。 |
|
403.6 |
IP 地址被拒絕。 |
|
403.7 |
要求客戶端證書。 |
|
403.8 |
站點訪問被拒絕。 |
|
403.9 |
用戶數過多。 |
|
403.10 |
配置無效。 |
|
403.11 |
密碼更改。 |
|
403.12 |
拒絕訪問映射表。 |
|
403.13 |
客戶端證書被吊銷。 |
|
403.14 |
拒絕目錄列表。 |
|
403.15 |
超出客戶端訪問許可。 |
|
403.16 |
客戶端證書不受信任或無效。 |
|
403.17 |
客戶端證書已過期或尚未生效。 |
|
403.18 |
在當前的應用程序池中不能執行所請求的 URL。這個錯誤代碼爲 IIS 6.0 所專用。 |
|
403.19 |
不能爲這個應用程序池中的客戶端執行 CGI。這個錯誤代碼爲 IIS 6.0 所專用。 |
|
403.20 |
Passport 登錄失敗。這個錯誤代碼爲 IIS 6.0 所專用。 |
|
404 Not Found |
服務器無法找到被請求的頁面。 |
|
404.0 |
(無)–沒有找到文件或目錄。 |
|
404.1 |
無法在所請求的端口上訪問 Web 站點。 |
|
404.2 |
Web 服務擴展鎖定策略阻止本請求。 |
|
404.3 |
MIME 映射策略阻止本請求。 |
|
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 Requested Range Not Satisfiable |
服務器不能滿足客戶在請求中指定的Range頭。 |
|
417 Expectation Failed |
執行失敗。 |
|
423 |
鎖定的錯誤 |
5xx 服務器錯誤 |
500 Internal Server Error |
請求未完成。服務器遇到不可預知的情況。 |
|
500.12 |
應用程序正忙於在 Web 服務器上重新啓動。 |
|
500.13 |
Web 服務器太忙。 |
|
500.15 |
不允許直接請求 Global.asa。 |
|
500.16 |
UNC 授權憑據不正確。這個錯誤代碼爲 IIS 6.0 所專用。 |
|
500.18 |
URL 授權存儲不能打開。這個錯誤代碼爲 IIS 6.0 所專用。 |
|
500.100 |
內部 ASP 錯誤。 |
|
501 Not Implemented |
請求未完成。服務器不支持所請求的功能。 |
|
502 Bad Gateway |
請求未完成。服務器從上游服務器收到一個無效的響應。 |
|
502.1 |
CGI 應用程序超時。 · |
|
502.2 |
CGI 應用程序出錯。 |
|
503 Service Unavailable |
請求未完成。服務器臨時過載或當機。 |
|
504 Gateway Timeout |
網關超時。 |
|
505 HTTP Version Not Supported |
服務器不支持請求中指明的HTTP協議版本。 |