Java當中的HTTP協議詳解
HTTP協議
1. 什麼是協議
雙方在互動、通訊的時候,遵守的一種規範、規則。
2. HTTP協議
針對網路上的客戶端與伺服器端在執行HTTP請求的時候,遵守的一種規範,其實就是規定了客戶端在訪問伺服器的時候,要帶上那些東西,伺服器端返回資料的時候,也要帶上什麼東西。
3. HTTP協議版本
1.1版本:
請求資料,伺服器返回後,將會斷開連線。
1.1版本:
請求資料,伺服器返回後,連線還會保持著。除非伺服器|客戶端關掉,有一定時間限制,如果都空著這個連線,那麼後面會自己斷掉。
HTTP請求資料解釋
請求的資料裡面包含三個部分內容:請求行、請求頭、請求體
請求行:
POST /examples/servlets/servlet/RequestParamExample HTTP/1.1 POST : 請求方式 ,以post去提交資料 /examples/servlets/servlet/RequestParamExample 請求的地址路徑 , 就是要訪問哪個地方。 HTTP/1.1 協議版本 |
請求頭
ccept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */* Referer: http://localhost:8080/examples/servlets/servlet/RequestParamExample Accept-Language: zh-CN User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate Host: localhost:8080 Content-Length: 31 Connection: Keep-Alive Cache-Control: no-cache Accept: 客戶端向伺服器端表示,我能支援什麼型別的資料。 Referer : 真正請求的地址路徑,全路徑 Accept-Language: 支援語言格式 User-Agent: 使用者代理 向伺服器表明,當前來訪的客戶端資訊。 Content-Type: 提交的資料型別。經過urlencoding編碼的form表單的資料 Accept-Encoding: gzip, deflate : 壓縮演算法 。 Host : 主機地址 Content-Length: 資料長度 Connection : Keep-Alive 保持連線 Cache-Control : 對快取的操作 |
請求體
傳送的資料呈現的是key=value ,如果存在多個數據,那麼使用 & firstname=zhang&lastname=sansan |
HTTP響應資料解析
響應的資料裡面包含三個部分:響應行、響應頭、響應體。
響應行
HTTP/1.1 200 OK 協議版本 狀態碼 咱們這次互動到底是什麼樣結果的一個code. 200 : 成功,正常處理,得到資料。 403 : for bidden 拒絕 404 : Not Found 500 : 伺服器異常 |
響應頭
Server: 伺服器是哪一種型別。 Tomcat Content-Type : 伺服器返回給客戶端你的內容型別 Content-Length : 返回的資料長度 Date : 通訊的日期,響應的時間 |
Get和Post請求的區別
1.Post:
1. 資料是以流的方式寫過去,不會在位址列上面顯示。 現在一般提交資料到伺服器使用的都是POST
2. 以流的方式寫資料,所以資料沒有大小限制。
2.Get
1. 會在位址列後面拼接資料,所以有安全隱患。 一般從伺服器獲取資料,並且客戶端也不用提交上面資料的時候,可以使用GET
2. 能夠帶的資料有限, 1kb大小