HTTP請(qǐng)求

HTTP請(qǐng)求過程

我們?cè)跒g覽器輸入百度首頁(yè)的地址:https://www.baidu.com盛卡,輸入之后瀏覽器會(huì)給我們打開百度首頁(yè)摩钙。實(shí)際上這個(gè)過程是瀏覽器向網(wǎng)站所在的服務(wù)器發(fā)送了一個(gè)Request請(qǐng)求,網(wǎng)站服務(wù)器接收到這個(gè)Request之后進(jìn)行處理和解析说墨,然后返回對(duì)應(yīng)的一個(gè)Response響應(yīng),然后傳回給瀏覽器苍柏,Response里面就包含了頁(yè)面的源代碼等內(nèi)容尼斧,瀏覽器再對(duì)其進(jìn)行解析便將網(wǎng)頁(yè)呈現(xiàn)了出來。

image.jpeg

在網(wǎng)頁(yè)中按F12可查看詳細(xì)的請(qǐng)求和響應(yīng)內(nèi)容

Request(請(qǐng)求)

由客戶端向服務(wù)端發(fā)出试吁⊥患眨可以將Request劃分為四部分內(nèi)容:

  • Request Method:請(qǐng)求方式
  • Request URL:請(qǐng)求鏈接
  • Request Headers:請(qǐng)求頭
  • Request Body:請(qǐng)求體

Request Method

請(qǐng)求方式常見的有兩種類型,GET和POST。

  • GET用于信息獲取律秃,而且應(yīng)該是安全的和冪等的(冪等的意思就是一個(gè)操作不會(huì)修改狀態(tài)信息爬橡,并且每次操作的時(shí)候都返回同樣的結(jié)果。)從發(fā)送請(qǐng)求的角度棒动,GET請(qǐng)求相當(dāng)于我們?cè)跀?shù)據(jù)庫(kù)中做了查詢的操作糙申,這樣的操作不影響數(shù)據(jù)庫(kù)本身的數(shù)據(jù)。
  • POST表示可能會(huì)修改服務(wù)器上資源的請(qǐng)求船惨,也相當(dāng)于在數(shù)據(jù)庫(kù)中做了修改的操作柜裸,會(huì)影響數(shù)據(jù)庫(kù)本身的數(shù)據(jù)(比如:注冊(cè)了賬戶,發(fā)了帖子粱锐,做了評(píng)論疙挺,得到了積分等。這種情況下怜浅,資源狀態(tài)被改變了)铐然。

案例1——GET請(qǐng)求

在瀏覽器輸入:https://www.baidu.com/s?wd=appium 并回車,這個(gè)其實(shí)就是在百度搜索appium這個(gè)關(guān)鍵詞恶座。URL中包含了請(qǐng)求的參數(shù)信息搀暑,這里參數(shù)wd就是要搜尋的關(guān)鍵字。在瀏覽器可以看到Query String Parameters 選項(xiàng)就是請(qǐng)求的參數(shù)跨琳。發(fā)起一次GET請(qǐng)求時(shí)自点,參數(shù)會(huì)以u(píng)rl string的形式進(jìn)行傳遞。即脉让?后的字符串則為其請(qǐng)求參數(shù)桂敛。并以&作為分隔符。

案例2——POST請(qǐng)求

一般來說溅潜,網(wǎng)站登錄驗(yàn)證的時(shí)候术唬,需要提交用戶名密碼,這里包含了敏感信息伟恶,使用GET方式請(qǐng)求的話密碼就會(huì)暴露在URL里面碴开,造成密碼泄漏,所以這里最好以POST方式發(fā)送博秫。文件的上傳時(shí)潦牛,由于文件內(nèi)容比較大,也會(huì)選用POST方式挡育。

除了常規(guī)的GET巴碗,POST請(qǐng)求,另外還有一些請(qǐng)求方式即寒,如HEAD橡淆、PUT召噩、DELETE等,簡(jiǎn)單將其總結(jié)如下:


image.png

Request URL

Request URL就是請(qǐng)求的網(wǎng)址逸爵,即統(tǒng)一資源定位符具滴,用URL 可以唯一確定我們想請(qǐng)求的資源。比如:https://www.baidu.com/

Request Headers

請(qǐng)求頭师倔,用來說明服務(wù)器要使用的附加信息构韵,比較重要的信息有Cookie、Referer趋艘、User-Agent等疲恢,下面將一些常用的頭信息說明如下:

  • Accept,請(qǐng)求報(bào)頭域瓷胧,用于指定客戶端可接受哪些類型的信息显拳。
  • Accept-Language,指定客戶端可接受的語(yǔ)言類型搓萧。
  • Accept-Encoding杂数,指定客戶端可接受的內(nèi)容編碼。
  • Host矛绘,用于指定請(qǐng)求資源的主機(jī)IP和端口號(hào)耍休,其內(nèi)容為請(qǐng)求URL的原始服務(wù)器或網(wǎng)關(guān)的位置刃永。從HTTP1.1版本開始货矮,Request必須包含此內(nèi)容。
  • Cookie斯够,也常用復(fù)數(shù)形式Cookies囚玫,是網(wǎng)站為了辨別用戶進(jìn)行Session跟蹤而儲(chǔ)存在用戶本地的數(shù)據(jù)。Cookies的主要功能就是維持當(dāng)前訪問會(huì)話读规。
  • Referer抓督,此內(nèi)容用來標(biāo)識(shí)這個(gè)請(qǐng)求時(shí)從哪個(gè)頁(yè)面發(fā)過來的,服務(wù)器可以拿到這一信息并做相應(yīng)的處理束亏,如做來源統(tǒng)計(jì)铃在、做防盜鏈處理等。
  • User-Agent碍遍,簡(jiǎn)稱UA定铜,它是一個(gè)特殊字符串頭,使得服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本怕敬、瀏覽器及版本等信息揣炕。在做爬蟲時(shí)加上此信息可以偽裝為瀏覽器,如果不加很可能會(huì)被識(shí)別出為爬蟲东跪。
  • Content-Type畸陡,即Internet Media Type鹰溜,互聯(lián)網(wǎng)媒體類型,也叫做MIME類型丁恭,在HTTP協(xié)議消息頭中曹动,使用它來表示具體請(qǐng)求中的媒體類型信息。例如 application/x-www-form-urlencoded表示表單數(shù)據(jù)牲览,text/html代表HTML格式仁期,image/gif代表GIF圖片,application/json代表json類型竭恬。

Request Body

請(qǐng)求體跛蛋,一般用于POST請(qǐng)求中,主要定義向服務(wù)器提交的數(shù)據(jù)類型痊硕,而對(duì)于GET請(qǐng)求Request Body則為空赊级。

比如在登錄之前我們填寫了用戶名和密碼信息,提交時(shí)就這些內(nèi)容就會(huì)以Form Data的形式提交給服務(wù)器岔绸,此時(shí)注意Request Headers中指定了Content-Type為application/x-www-form-urlencoded理逊,只有設(shè)置Content-Type為application/x-www-form-urlencoded才會(huì)以Form Data形式提交,另外我們也可以將Content-Type設(shè)置為application/json提交Json數(shù)據(jù)盒揉,或者設(shè)置為multipart/form-data來上傳文件晋被。

常用Content-Type和POST提交數(shù)據(jù)方式的關(guān)系:


image.png

application/x-www-form-urlencoded與multipart/form-data 區(qū)別

  • 在沒有type=file時(shí)候,用默認(rèn)的application/x-www-form-urlencoded就行刚盈。
  • 在有type=file時(shí)候羡洛,要用multipart/form-data編碼方式。瀏覽器就會(huì)把表單以控件為單位分割,并且為每個(gè)部分加上Content-Disposition(form-data或file)、Content-Type(默認(rèn)text/plain)环揽、name(控件name)等信息蟀淮,并加上分割符(boundary)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌韧涨,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侮繁,死亡現(xiàn)場(chǎng)離奇詭異虑粥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鼎天,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門舀奶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斋射,你說我怎么就攤上這事育勺〉纾” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵涧至,是天一觀的道長(zhǎng)腹躁。 經(jīng)常有香客問我,道長(zhǎng)南蓬,這世上最難降的妖魔是什么纺非? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮赘方,結(jié)果婚禮上烧颖,老公的妹妹穿的比我還像新娘。我一直安慰自己窄陡,他們只是感情好炕淮,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著跳夭,像睡著了一般涂圆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上币叹,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天润歉,我揣著相機(jī)與錄音,去河邊找鬼颈抚。 笑死踩衩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的邪意。 我是一名探鬼主播九妈,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼反砌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼雾鬼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宴树,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤策菜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后酒贬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體又憨,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年锭吨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蠢莺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡零如,死狀恐怖躏将,靈堂內(nèi)的尸體忽然破棺而出锄弱,到底是詐尸還是另有隱情,我是刑警寧澤祸憋,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布会宪,位于F島的核電站,受9級(jí)特大地震影響蚯窥,放射性物質(zhì)發(fā)生泄漏掸鹅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一拦赠、第九天 我趴在偏房一處隱蔽的房頂上張望巍沙。 院中可真熱鬧,春花似錦荷鼠、人聲如沸赎瞎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)务甥。三九已至,卻和暖如春喳篇,著一層夾襖步出監(jiān)牢的瞬間敞临,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工麸澜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挺尿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓炊邦,卻偏偏與公主長(zhǎng)得像编矾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馁害,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

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