涉及基礎,必會

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協議版本。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章