什么是協(xié)議:雙方在交互、通訊的時候, 遵守的一種規(guī)范、規(guī)則。
http協(xié)議:針對網(wǎng)絡(luò)上的客戶端 與 服務(wù)器端在執(zhí)行http請求的時候,遵守的一種規(guī)范。 其實就是規(guī)定了客戶端在訪問服務(wù)器端的時候,要帶上哪些東西, 服務(wù)器端返回數(shù)據(jù)的時候,也要帶上什么東西。
版本
1.0:請求數(shù)據(jù),服務(wù)器返回后, 將會斷開連接
1.1:請求數(shù)據(jù),服務(wù)器返回后, 連接還會保持著。 除非服務(wù)器 | 客戶端 關(guān)掉。 有一定的時間限制,如果都空著這個連接,那么后面會自己斷掉。
Http請求數(shù)據(jù)解釋:
請求的數(shù)據(jù)里面包含三個部分內(nèi)容 : 請求行 、 請求頭 、請求體
請求行:
POST /examples/servlets/servlet/RequestParamExample HTTP/1.1
POST : 請求方式 ,以post去提交數(shù)據(jù)
/examples/servlets/servlet/RequestParamExample
請求的地址路徑 , 就是要訪問哪個地方。
HTTP/1.1 協(xié)議版本
請求頭:
Accept: 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: 客戶端向服務(wù)器端表示,我能支持什么類型的數(shù)據(jù)。
Referer : 真正請求的地址路徑,全路徑
Accept-Language: 支持語言格式
User-Agent: 用戶代理 向服務(wù)器表明,當前來訪的客戶端信息。可以判斷是pc端還是手機端
Content-Type: 提交的數(shù)據(jù)類型。經(jīng)過urlencoding編碼的form表單的數(shù)據(jù)
Accept-Encoding: gzip, deflate : 壓縮算法 。
Host : 主機地址
Content-Length: 數(shù)據(jù)長度
Connection : Keep-Alive 保持連接
Cache-Control : 對緩存的操作
請求體:
瀏覽器真正發(fā)送給服務(wù)器的數(shù)據(jù)
發(fā)送的數(shù)據(jù)呈現(xiàn)的是key=value ,如果存在多個數(shù)據(jù),那么使用 &
firstname=zhang&lastname=sansan
Http響應(yīng)數(shù)據(jù)解釋:
請求的數(shù)據(jù)里面包含三個部分內(nèi)容 : 響應(yīng)行 、 響應(yīng)頭 、響應(yīng)體
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 673
Date: Fri, 17 Feb 2017 02:53:02 GMT
...這里還有很多數(shù)據(jù)...
響應(yīng)行:
HTTP/1.1 200 OK
協(xié)議版本
狀態(tài)碼
200 : 成功,正常處理,得到數(shù)據(jù)。
403 : for bidden 拒絕
404 : Not Found
500 : 服務(wù)器異常
OK 對應(yīng)前面的狀態(tài)碼
響應(yīng)頭:
Server: 服務(wù)器是哪一種類型。 Tomcat
Content-Type : 服務(wù)器返回給客戶端你的內(nèi)容類型
Content-Length : 返回的數(shù)據(jù)長度
Date : 通訊的日期,響應(yīng)的時間
Get和Post請求區(qū)別:
1、請求路徑不同,post請求,在url后面不跟上任何數(shù)據(jù),get會在url后面以問號帶參的形式
2、帶上的數(shù)據(jù)不同,post會使用流的方式寫數(shù)據(jù),get是在地址欄寫數(shù)據(jù)
3、由于post使用流的方式寫數(shù)據(jù),一定需要一個Content-Lenght的頭來說明數(shù)據(jù)的長度有多少
4、post不限制數(shù)據(jù)的大小,get只能待1kb
5、post安全性高,get有安全隱患
Web資源
在http協(xié)議當中,規(guī)定了請求和響應(yīng)雙方, 客戶端和服務(wù)器端。與web相關(guān)的資源。
有兩種分類
靜態(tài)資源:html 、 js、 css
動態(tài)資源:servlet/jsp
如果設(shè)置了代理服務(wù)器Nginx,可以實現(xiàn)動靜分離,提高響應(yīng)速度
q
浙公網(wǎng)安備 33010602011771號