HTTP請(qǐng)求和響應(yīng)

1.HTTP工作原理

HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)上艘蹋。瀏覽器作為HTTP客戶端通過(guò)URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請(qǐng)求筑辨。
Web服務(wù)器根據(jù)接收到的請(qǐng)求后味廊,向客戶端發(fā)送響應(yīng)信息钱雷。
HTTP默認(rèn)端口號(hào)為80节猿,但是你也可以改為其他端口票从。
HTTP三點(diǎn)注意事項(xiàng):
HTTP是無(wú)連接:無(wú)連接的含義是限制每次連接只處理一個(gè)請(qǐng)求。服務(wù)器處理完客戶的請(qǐng)求滨嘱,并收到客戶的應(yīng)答后峰鄙,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間太雨。
HTTP是媒體獨(dú)立的:這意味著吟榴,只要客戶端和服務(wù)器知道如何處理的數(shù)據(jù)內(nèi)容,任何類型的數(shù)據(jù)都可以通過(guò)HTTP發(fā)送囊扳》苑客戶端以及服務(wù)器指定使用適合的MIME-type內(nèi)容類型。
HTTP是無(wú)狀態(tài):HTTP協(xié)議是無(wú)狀態(tài)協(xié)議锥咸。無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒(méi)有記憶能力狭瞎。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳搏予,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大熊锭。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快雪侥。

2.HTTP請(qǐng)求的格式

HTTP一般有四部分組成碗殷,請(qǐng)求行、請(qǐng)求頭部速缨、空行锌妻、請(qǐng)求數(shù)據(jù)(其中請(qǐng)求數(shù)據(jù)部分可以為空),請(qǐng)求格式如下:

第一部分  動(dòng)詞 路徑 協(xié)議/版本
第二部分   Key1: value1
第二部分   Key2: value2
第二部分   Key3: value3
第二部分   Content-Type: text/html
第二部分   Host: www.baidu.com
第二部分   User-Agent: curl/7.54.0
第三部分 
第四部分   要上傳的數(shù)據(jù)

其中旬牲,第一部分為請(qǐng)求行从祝。請(qǐng)求行中襟己,動(dòng)詞可選的有GET、 POST牍陌、 PUT PATCH 擎浴、DELETE、 HEAD 毒涧、OPTIONS 等贮预。路徑如果你沒(méi)有寫,默認(rèn)路徑為 /契讲。協(xié)議/版本仿吞,比如HTTP/1.1。
第二部分捡偏,請(qǐng)求頭部唤冈,由一系列key:value值組成。如上所示的Context-Type:text/html银伟,表示內(nèi)容為text文件或者HTML文件你虹。
第三部分,是一個(gè)回車(空行)彤避,將第二部分和第四部分分割傅物。
第四部分,就是要上傳的數(shù)據(jù)琉预。

3.HTTP響應(yīng)的格式

HTTP響應(yīng)也由四個(gè)部分組成董饰,分別是:狀態(tài)行、消息報(bào)頭圆米、空行和響應(yīng)正文卒暂。

第一部風(fēng)   協(xié)議/版本號(hào) 狀態(tài)碼 狀態(tài)解釋
第二部分   Key1: value1
第二部分   Key2: value2
第二部分   Content-Length: 17931
第二部分   Content-Type: text/html
第三部分
第四部分   要下載的內(nèi)容

其中,第一部分為狀態(tài)娄帖,表示協(xié)議/版本號(hào)(如HTTP/1.1)介却,狀態(tài)碼及狀態(tài)信息構(gòu)成。
第二部分块茁,狀態(tài)消息齿坷,由一系列key:value值組成。如上所示的Context-Type:text/html数焊,表示內(nèi)容為text文件或者h(yuǎn)tml文件永淌。
第三部分,是一個(gè)回車(空行)佩耳,將第二部分和第四部分分割遂蛀。
第四部分,就是要下載的數(shù)據(jù)干厚。

4.HTTP狀態(tài)碼

  • 1xx 信息李滴,服務(wù)器收到請(qǐng)求螃宙,需要請(qǐng)求者繼續(xù)執(zhí)行操作。
  • 2xx 成功所坯,操作被成功接收并處理谆扎。
  • 3xx 重定向,需要進(jìn)一步的操作以完成請(qǐng)求芹助。
  • 4xx客戶端錯(cuò)誤堂湖,請(qǐng)求包含語(yǔ)法錯(cuò)誤或無(wú)法完成請(qǐng)求。
  • 5xx 服務(wù)器錯(cuò)誤状土,服務(wù)器在處理請(qǐng)求的過(guò)程中發(fā)生了錯(cuò)誤无蜂。
    具體狀態(tài)碼含義可上網(wǎng)查詢。

5.用chrom查看請(qǐng)求和響應(yīng)

  • 打開chrome蒙谓,F12進(jìn)入開發(fā)者工具斥季,如下圖1所示:
    圖1
  • 點(diǎn)擊network選項(xiàng),在搜索框輸入https://www.baidu.com累驮,并點(diǎn)擊name下的第一行如下圖2所示:
圖2
  • 點(diǎn)擊header下的Request Header選項(xiàng)酣倾,并點(diǎn)擊View source選項(xiàng)即可看到該請(qǐng)求內(nèi)容,如下圖3所示:
    圖3

    由圖3可知該請(qǐng)求只有第一慰照、第二、第三部分琉朽,沒(méi)有第四部分毒租。如果有請(qǐng)求的第四部分,那么在 FormData 或 Payload 里面可以看到箱叁。
  • 點(diǎn)擊圖2Response Header選項(xiàng)墅垮,并點(diǎn)擊View Source選項(xiàng),即可看到相應(yīng)內(nèi)容耕漱,如下圖4所示:
    圖4

    響應(yīng)內(nèi)容可通過(guò)點(diǎn)擊Response選項(xiàng)查看算色,如下圖5所示:
    圖5

6.curl命令

  • curl www.baidu.com該命令將網(wǎng)頁(yè)內(nèi)容顯示在命令行。如下圖所示:

  • curl www.baidu.com >index.html 該命令執(zhí)行的結(jié)果是將該網(wǎng)頁(yè)下載下來(lái)并保存至index.html文件里螟够。

  • curl -o index.html www.baidu.com 該命令的作用和上一條命令一樣灾梦,也是將網(wǎng)頁(yè)下載并保存至index.html文件里。

  • curl -I www.baidu.com 該命令是將baidu.com的響應(yīng)頭部顯示在命令行中妓笙,如下圖所示:


    如果將參數(shù)-I變成-i則顯示響應(yīng)頭部和整個(gè)頁(yè)面若河。

  • curl -L www.sina.com ,該命令執(zhí)行的結(jié)果是將網(wǎng)站自動(dòng)跳轉(zhuǎn)至www.sina.com.cn,-L參數(shù)的作用就是自動(dòng)跳轉(zhuǎn)寞宫。

  • curl -v www.baidu.com 萧福,-v參數(shù)可以顯示一次http通信的整個(gè)過(guò)程,包括端口連接和http request頭信息辈赋,如下圖所示:

  • curl -c cookies.txt http://www.baidu.com/ ,該命令可以把訪問(wèn)網(wǎng)站的cookies保存在cookies.txt文件中鲫忍。

  • curl -b cookies.txt http://www.baidu.com/ ,該命令則可以利用已有的cookie信息文件來(lái)訪問(wèn)網(wǎng)站膏燕。
    更多命令用法請(qǐng)參考https://man.linuxde.net/curlcurl.haxx.se/docs/manpage.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市悟民,隨后出現(xiàn)的幾起案子坝辫,更是在濱河造成了極大的恐慌,老刑警劉巖逾雄,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阀溶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蘸泻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門咖熟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人击纬,你說(shuō)我怎么就攤上這事〖佤铮” “怎么了更振?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)饭尝。 經(jīng)常有香客問(wèn)我肯腕,道長(zhǎng),這世上最難降的妖魔是什么钥平? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任实撒,我火速辦了婚禮,結(jié)果婚禮上涉瘾,老公的妹妹穿的比我還像新娘知态。我一直安慰自己,他們只是感情好立叛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布负敏。 她就那樣靜靜地躺著,像睡著了一般秘蛇。 火紅的嫁衣襯著肌膚如雪其做。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天赁还,我揣著相機(jī)與錄音庶柿,去河邊找鬼。 笑死秽浇,一個(gè)胖子當(dāng)著我的面吹牛浮庐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼审残,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼梭域!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起搅轿,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤病涨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后璧坟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體既穆,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年雀鹃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了幻工。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡黎茎,死狀恐怖囊颅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情傅瞻,我是刑警寧澤踢代,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站嗅骄,受9級(jí)特大地震影響胳挎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溺森,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一慕爬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧儿惫,春花似錦澡罚、人聲如沸伸但。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)更胖。三九已至铛铁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間却妨,已是汗流浹背饵逐。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彪标,地道東北人倍权。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像捞烟,于是被迫代替她去往敵國(guó)和親薄声。 傳聞我的和親對(duì)象是個(gè)殘疾皇子当船,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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