1.介紹
HTTP(HyperText Transfer Protocol)是超文本傳輸協(xié)議祭钉。最新版本是HTTP 1.1。它的作用是從服務(wù)器傳輸超文本到本地瀏覽器掖疮。它是一個(gè)應(yīng)用層協(xié)議心软,是一個(gè)標(biāo)準(zhǔn)的客戶端服務(wù)器(CS)模型。
2.在TCP/IP分層模型中的位置
HTTP協(xié)議位于第四層即應(yīng)用層蕊爵。TCPIP的四層由低到高分別是網(wǎng)絡(luò)接口層辉哥,網(wǎng)際互聯(lián)層,運(yùn)輸層攒射,應(yīng)用層醋旦。http的消息分為由客戶端發(fā)往服務(wù)器的請(qǐng)求消息和服務(wù)器發(fā)往客戶端的響應(yīng)消息。請(qǐng)求消息和響應(yīng)消息都是由開始行会放、消息報(bào)頭饲齐、空行、消息正文組成咧最,對(duì)于請(qǐng)求消息捂人,開始行是請(qǐng)求行,對(duì)于響應(yīng)消息矢沿,開始行是狀態(tài)行滥搭,消息報(bào)頭和消息正文都是可選的。消息報(bào)頭分為通用報(bào)頭捣鲸、請(qǐng)求報(bào)頭瑟匆、響應(yīng)報(bào)頭、實(shí)體報(bào)頭栽惶。
3.請(qǐng)求消息格式
請(qǐng)求行
消息報(bào)頭愁溜,消息報(bào)頭對(duì)于請(qǐng)求消息而言包括通用信息頭、請(qǐng)求頭媒役、實(shí)體頭
回車換行
請(qǐng)求正文
對(duì)于GET請(qǐng)求消息祝谚,沒有請(qǐng)求正文
GET /tech/jsp/userlogin HTTP/1.1 這里是請(qǐng)求行
Host: share.zte.com.cn 消息報(bào)頭開始
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8 消息報(bào)頭結(jié)束
對(duì)于POST請(qǐng)求消息,經(jīng)常會(huì)有請(qǐng)求正文:
POST /tech/jsp/loginsubmit? HTTP/1.1 這里是請(qǐng)求行
Host: share.zte.com.cn 消息頭開始
Connection: keep-alive
Content-Length: 64
Cache-Control: max-age=0
Origin: http://share.zte.com.cn
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Referer: http://share.zte.com.cn/tech/jsp/userlogin
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: TECH_LOGIN_NAME_COOKIE_KEY=10202340; TECH_LOGIN_REMEBER_COOKIE_KEY=false; JSESSIONID=D12572E7A7805CC7646E6D0E917646A2; language=zh; TECH_LOGIN_INDEX_ID_COOKIE_KEY=201605706446; TECH_LOGIN_ID_COOKIE_KEY=10202340; TECH_LOGIN_EMPIDUI_COOKIE_KEY=10202340; TECH_LOGIN_CHNAME_COOKIE_KEY=5ZGo5ZCv5omN; TECH_LOGIN_ENNAME_COOKIE_KEY="" 消息頭結(jié)束
這里是空行(原本沒有文字酣衷,只是空行)
username=xiaoming&password=1234&language_flag=zh&language=zh 請(qǐng)求正文
4.響應(yīng)消息格式
狀態(tài)行
消息報(bào)頭交惯,消息報(bào)頭對(duì)于請(qǐng)求消息而言包括通用信息頭,響應(yīng)頭,實(shí)體頭
回車換行
響應(yīng)正文
個(gè)人認(rèn)為席爽,對(duì)于消息報(bào)頭沒有必要記住所有的分類意荤,只需記住http消息由開始行、消息報(bào)頭只锻、空行玖像、消息正文組成即可。
響應(yīng)消息齐饮,不帶響應(yīng)正文:
HTTP/1.1 200 OK 這里是狀態(tài)行
Server: nginx/1.2.3 消息頭開始
Date: Sat, 09 Jul 2016 02:35:31 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding
P3P: CP=CAO PSA OUR IDC DSP COR ADM DEVi TAIi PSD IVAi IVDi CONi HIS IND CNT
Pragma: no-cache
Cache-Control: no-cache
Expires: Wed, 31 Dec 1969 23:59:59 GMT
Content-Language: zh
Content-Encoding: gzip 消息頭結(jié)束
響應(yīng)消息捐寥,帶響應(yīng)正文:
HTTP/1.1 200 OK 狀態(tài)行
Server: nginx/1.2.3 消息頭開始
Date: Sat, 09 Jul 2016 02:35:38 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding
Pragma: no-cache
Cache-Control: no-cache
Expires: Wed, 31 Dec 1969 23:59:59 GMT
Content-Language: zh
Content-Encoding: gzip 消息頭結(jié)束
這里是空行(原本沒有任何文字)
45a2...............}kw....g.+&.vd.lif.........`.;...F....F.F...Y...W0;.....!8..d...這里是響應(yīng)正文,有一大堆看不懂的字母數(shù)字和符號(hào)祖驱。