淺談HTTP構(gòu)成

1.http協(xié)議

http全稱Hypertext Transfer Protocol超文本傳輸協(xié)議旨怠,該協(xié)議用于規(guī)定客戶端和服務(wù)端之間的傳輸規(guī)則盹沈〕笔郏客戶端按照協(xié)議規(guī)則格式向服務(wù)端發(fā)出請(qǐng)求刘陶,服務(wù)端從而也就能夠根據(jù)規(guī)則格式做出解析请契,同理咳榜,服務(wù)端也會(huì)按照協(xié)議規(guī)則做出響應(yīng),客戶端也就能夠根據(jù)規(guī)則做出解析爽锥。

2.http請(qǐng)求(Request)內(nèi)容

如圖所示涌韩,一個(gè)完整的request包含request line、header氯夷、和body臣樱。同時(shí)需要注意的是,圖中的CRLF也是必不可少的

下面通過charles抓的一個(gè)http請(qǐng)求展開分析 http://www.reibang.com/p/q81RER

GET /p/q81RER HTTP/1.1
Host: www.reibang.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Upgrade-Insecure-Requests: 1
Cookie: _session_id=xxxxx; remember_user_token=xxx; Hm_lpvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1493626002; Hm_lvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1493550585,1493622639,1493623143,1493625980; _ga=GA1.2.487162296.1493344586; _gat=1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
Connection: keep-alive
  • 請(qǐng)求行Request Line
// method+空格+URI+httpVersion+CRLF
GET /p/q81RER HTTP/1.1  

method 就是我們平時(shí)所說的get雇毫、post等請(qǐng)求方式奢啥。
** URI** 就是URL中排除掉Host剩下的部分,也就是資源在服務(wù)器本地上的路徑
** httpVersion** http版本號(hào)

  • 請(qǐng)求頭Request Header
Host: www.reibang.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Upgrade-Insecure-Requests: 1
Cookie: _session_id=xxxxx; remember_user_token=xxx; Hm_lpvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1493626002; Hm_lvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1493550585,1493622639,1493623143,1493625980; _ga=GA1.2.487162296.1493344586; _gat=1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
Connection: keep-alive

請(qǐng)求頭由一些鍵值對(duì)組成嘴拢,每個(gè)鍵值對(duì)的形式為:Key:空格Value+CRLF需要強(qiáng)調(diào)的是寂纪,最后一個(gè)鍵值對(duì)結(jié)束后再跟一個(gè)CRLF席吴,就表示header結(jié)束了
HTTP本身定義了一些header key捞蛋,(需要了解各個(gè)key的含義孝冒,看請(qǐng)求頭響應(yīng)頭參考表)另外也允許開發(fā)者添加自己的key,自定義的key一般以X開頭拟杉,比如可以定義X-APP-VERSION來記錄客戶端的版本號(hào)庄涡。

  • 請(qǐng)求體Body
    body里面包含請(qǐng)求的實(shí)際數(shù)據(jù)。
    Method=GET搬设,body可以不存在穴店,header最后的兩個(gè)CRLF就標(biāo)識(shí)著請(qǐng)求的結(jié)尾。請(qǐng)求的業(yè)務(wù)參數(shù)通過request line中的URI中的query string來傳遞拿穴,如UIR: /p/q81RER?t=aa&t1=bb泣洞,query string部分t=aa&t1=bb體現(xiàn)了業(yè)務(wù)參數(shù),這部分也同樣是以鍵值對(duì)的形式存在的默色。
    Method=POST球凰,body體一般不為空,我們實(shí)際的業(yè)務(wù)數(shù)據(jù)都存放于body當(dāng)中腿宰,數(shù)據(jù)在body體中是以何種形式存在呕诉,其實(shí)大有門道,后面再細(xì)說吃度。至于Request-URI當(dāng)中的query string部分甩挫,我們依然可以選擇放置一部分?jǐn)?shù)據(jù)在其中,但更普遍的做法是使用body體规肴。

3.http響應(yīng)(Response)內(nèi)容

如圖所示捶闸,response的結(jié)構(gòu)和request的結(jié)構(gòu)幾乎一樣,只不過是Request Line變成了Status Line拖刃。

下面是一個(gè)完整的response內(nèi)容例子:

HTTP/1.1 200 OK
Date: Mon, 01 May 2017 08:07:01 GMT
Server: Tengine
Content-Type: application/json; charset=utf-8
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
ETag: W/"8736cdfe08480bca66cffeee06268705"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _session_id=xxxxx; path=/; HttpOnly
X-Request-Id: e7a4211c-efde-4e87-9a48-1e6f09de5afd
X-Runtime: 0.038405
Content-Encoding: gzip
X-Via: 1.1 tongyidong11:0 (Cdn Cache Server V2.0)
Transfer-Encoding: chunked
Proxy-Connection: Keep-alive

{"message":"success"}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末删壮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子兑牡,更是在濱河造成了極大的恐慌央碟,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異亿虽,居然都是意外死亡菱涤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門洛勉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粘秆,“玉大人,你說我怎么就攤上這事收毫」プ撸” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵此再,是天一觀的道長(zhǎng)昔搂。 經(jīng)常有香客問我,道長(zhǎng)输拇,這世上最難降的妖魔是什么摘符? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮策吠,結(jié)果婚禮上逛裤,老公的妹妹穿的比我還像新娘。我一直安慰自己奴曙,他們只是感情好别凹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著洽糟,像睡著了一般炉菲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坤溃,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天拍霜,我揣著相機(jī)與錄音,去河邊找鬼薪介。 笑死祠饺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汁政。 我是一名探鬼主播道偷,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼记劈!你這毒婦竟也來了勺鸦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤目木,失蹤者是張志新(化名)和其女友劉穎换途,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡军拟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年剃执,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懈息。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肾档,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辫继,到底是詐尸還是另有隱情阁最,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布骇两,位于F島的核電站,受9級(jí)特大地震影響姜盈,放射性物質(zhì)發(fā)生泄漏低千。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一馏颂、第九天 我趴在偏房一處隱蔽的房頂上張望示血。 院中可真熱鬧,春花似錦救拉、人聲如沸难审。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)告喊。三九已至,卻和暖如春派昧,著一層夾襖步出監(jiān)牢的瞬間黔姜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工蒂萎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秆吵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓五慈,卻偏偏與公主長(zhǎng)得像纳寂,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泻拦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理毙芜,服務(wù)發(fā)現(xiàn),斷路器聪轿,智...
    卡卡羅2017閱讀 134,672評(píng)論 18 139
  • 組織:中國(guó)互動(dòng)出版網(wǎng)(http://www.china-pub.com/) RFC文檔中文翻譯計(jì)劃(http://...
    Palomar閱讀 1,573評(píng)論 0 6
  • HTTP全稱為HyperText Transfer Protocol爷肝,從名字不難看出這是一種基于文本的網(wǎng)絡(luò)協(xié)議,對(duì)...
    MrPeak閱讀 1,459評(píng)論 3 21
  • PS:簡(jiǎn)書的網(wǎng)址真不是給人看的。灯抛。金赦。我單獨(dú)開了一個(gè)網(wǎng)址可以重定向到我的簡(jiǎn)書主頁(yè)。博客地址:flutterall.c...
    徐愛卿閱讀 6,921評(píng)論 21 97
  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒有聽過Nginx对嚼?那么一定聽過它的“同行”Apache吧夹抗!Ngi...
    JokerW閱讀 32,692評(píng)論 24 1,002