HTTP協議 (2)瞭解請求報文
之前已經簡單的認識了一下HTTP協議
下面就看一下這個協議中一個重要的部分:請求
請求報文屬於HTTP報文,是從客戶端向服務端傳送的請求
請求報文由三部分組成,分別是請求行(開始行),請求頭(訊息報頭),請求正文(通常不用)
GET / HTTP/1.1 #請求行 Host: www.baidu.com #請求頭 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Cookie: BAIDUID=E488017CE899228FF852BB2FA2762A62:FG=1; BIDUPSID=E488017CE899228FF852BB2FA2762A62; PSTM=1461377714; H_PS_PSSID=19003_17745_1434_18280_19781_19804_19806_19808_18559_15037_11966; BD_UPN=13314352; H_PS_645EC=556daOZJ2LejeLXIqU%2F9lyAAdB91FUm5%2FDSGrrkVbrESV9uFGgi7a4PwdfbO0YyMPSFx; BDSFRCVID=iFksJeC62RUdyn6RyrsGuyBx-2KKoWcTH6aoKGNAecjkR56n56F7EG0Pf3lQpYDbei5yogKKymOTHr7P; H_BDCLCKID_SF=tRKe_KDbJK03qRnnbJ5qhRIJbfTMeJQjaIOyB-OSHJOoDDvYQ4R5y4LdjG5NL438aJcNX4ob3-5BE4PzDxRvhp-S3-Aq54Ri32oC0RO_2M_hMRuGjxDbQfbQ0MDe2pojymna0RIaMR7JOpvwhfnxybjW0a62btt_JJ4OVCjP; BD_CK_SAM=1; BDRCVFR[Fc9oatPmwxn]=G01CoNuskzfuh-zuyuEXAPCpy49QhP8; BD_HOME=0 Connection: close
請求行也是由三個部分組成:請求方法,請求資源的URL,HTTP版本號
GET / HTTP/1.1
其中GET就是請求方法 ,/就是請求資源的url,HTTP/1.1是HTTP的版本號
常見的HTTP請求方法有這些:
GET:用於獲取請求頁面的請求資訊。
HEAD:服務端不能響應裡響應訊息主題,通常用來測試服務端是否存活。
POST:向服務端傳送大量資料,其中含有請求內容,安全性相對GET要高。
PUT:向服務端傳送請求,將請求中的實體儲存在請求資源下(檔案上傳)。
DELETE:向服務端請求刪除請求資源(危險,一般不開放)。
TRACE:回顯服務端收到的請求。
CONNECT:隧道代理,將伺服器作為HTTP代理。
OPTIONS:向服務端傳送請求,獲取在請求/響應過程中可一使用的功能。
在請求頭中是客戶端向伺服器傳送傳遞請求的附加資訊以及自身資訊。
上面的請求頭中有下面幾種訊息:
Host:被請求資源的internet主機和埠號。
User-Agent:客戶端使用的瀏覽器,作業系統,版本以及其他資訊。
Accept:客戶端接收訊息的型別。
Accept-Language:客戶端支援的語言。
Accept-Encoding:客戶端支援的編碼格式。
Cookie:伺服器與客戶端之間傳遞的狀態訊息。
Connection:傳送指定連線的選項。
除了上述這些,常見的訊息還有:
Rerferer:訪問當前URL的上一個URL(比較抽象)。
Range:請求實體的部分內容(通常用於多執行緒下載)。
Accept-Charset:制定客戶端接收的字符集。