真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

http報(bào)文結(jié)構(gòu)與curl的使用方法

本篇內(nèi)容介紹了“http報(bào)文結(jié)構(gòu)與curl的使用方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專(zhuān)注于中大型企業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作和網(wǎng)站改版、網(wǎng)站營(yíng)銷(xiāo)服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開(kāi)發(fā)的融合,累計(jì)客戶1000多家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專(zhuān)注品牌網(wǎng)站設(shè)計(jì)和互聯(lián)網(wǎng)程序開(kāi)發(fā),在前進(jìn)的路上,與客戶一起成長(zhǎng)!

http協(xié)議使用廣泛,使用場(chǎng)景不必多說(shuō)了。

http是應(yīng)用層協(xié)議,基于tcp。如果要自己實(shí)現(xiàn)的話,應(yīng)該先實(shí)現(xiàn)tcp部分的功能,然后按http的協(xié)議實(shí)現(xiàn)約定的功能。這種需求有時(shí)可能會(huì)出現(xiàn),比如讀者想寫(xiě)一個(gè)http服務(wù)器,那就要了解http協(xié)議。

但是,這一個(gè)流程,從http數(shù)據(jù)包,到tcp包(加tcp頭),再到ip包(加ip頭),以及它的逆向過(guò)程(解包過(guò)程),都有現(xiàn)成的庫(kù)來(lái)實(shí)現(xiàn),讀者需要做的只是怎么更好的使用起來(lái)。

小程這里介紹的也不是什么復(fù)雜的http協(xié)議的實(shí)現(xiàn),而只是介紹一下http請(qǐng)求與響應(yīng)的數(shù)據(jù)結(jié)構(gòu),以及怎么便利地發(fā)送http請(qǐng)求。

本文介紹http請(qǐng)求與響應(yīng)的報(bào)文結(jié)構(gòu),以及curl的使用。

先讓讀者看一個(gè)直觀的示例:在百度的搜索框中,敲入“helloworld”并回車(chē),這時(shí)會(huì)發(fā)起一個(gè)http請(qǐng)求,用charles來(lái)抓包,可以看到這樣的請(qǐng)求與響應(yīng)的信息: 
http報(bào)文結(jié)構(gòu)與curl的使用方法

關(guān)于charles的使用,小程之前有介紹到,讀者可以關(guān)注“廣州小程”微信公眾號(hào),并查閱“軟件基礎(chǔ)”菜單項(xiàng)的內(nèi)容。

從數(shù)據(jù)包來(lái)看,有一個(gè)GET方法,返回了200的狀態(tài)碼,等等。

但這里混合了請(qǐng)求與響應(yīng)的信息,如果分開(kāi)來(lái)看,請(qǐng)求與響應(yīng)各自有什么數(shù)據(jù)結(jié)構(gòu)呢?

(1)請(qǐng)求報(bào)文

http請(qǐng)求數(shù)據(jù),使用的結(jié)構(gòu)是這樣的:

{請(qǐng)求行,請(qǐng)求頭,請(qǐng)求體}

小程引用網(wǎng)上的一張圖,這張圖描繪了這個(gè)結(jié)構(gòu): 
http報(bào)文結(jié)構(gòu)與curl的使用方法

參照上圖,請(qǐng)求行是這個(gè)樣子:

GET /index.html HTTP/1.1 
或者: 
POST /xiaocheng/about.html HTTP/1.1 

注意,請(qǐng)求行一般不包括host的地址,而host地址存放在請(qǐng)求頭中。

然后是請(qǐng)求頭,分為多行,每一行是一個(gè)鍵值對(duì)(key: value的格式),比如請(qǐng)求頭是這個(gè)樣子的: 
http報(bào)文結(jié)構(gòu)與curl的使用方法

最后是請(qǐng)求體,一般來(lái)GET方法是不帶請(qǐng)求體的,因?yàn)樗袃?nèi)容都放到請(qǐng)求行(特別是url中)或請(qǐng)求頭中了,一般來(lái)說(shuō)POST方法需要帶請(qǐng)求體,比如在iTunes下載一個(gè)APP時(shí),POST請(qǐng)求數(shù)據(jù)是這樣的: 
http報(bào)文結(jié)構(gòu)與curl的使用方法
http報(bào)文結(jié)構(gòu)與curl的使用方法

(2)響應(yīng)報(bào)文

響應(yīng)數(shù)據(jù)的結(jié)構(gòu),也可以分三部分:

{響應(yīng)行,響應(yīng)頭,響應(yīng)體}

這里給一個(gè)響應(yīng)實(shí)例: 
http報(bào)文結(jié)構(gòu)與curl的使用方法
http報(bào)文結(jié)構(gòu)與curl的使用方法

響應(yīng)行,也叫狀態(tài)行,包括http的版本、狀態(tài)碼與狀態(tài)描述。

響應(yīng)頭跟請(qǐng)求頭一樣,由一行一行的key-value構(gòu)成。

響應(yīng)體一般就是請(qǐng)求方想要的數(shù)據(jù)了,但響應(yīng)體不一定會(huì)存在,比如HEAD請(qǐng)求方法時(shí)不返回響應(yīng)體(這時(shí)響應(yīng)行就是請(qǐng)求方想要的)。

http請(qǐng)求與響應(yīng)數(shù)據(jù),還有其它的一些知識(shí),比如GET與POST的區(qū)別、返回404/403/303表示什么意思,等等,這些知識(shí)讀者可以具體搜索一下,小程這里不展開(kāi)了。

在簡(jiǎn)單介紹過(guò)http請(qǐng)求與響應(yīng)報(bào)文的結(jié)構(gòu)后,小程介紹一個(gè)工具,這個(gè)工具可以發(fā)起http請(qǐng)求,這個(gè)工具就是curl。

(3)curl的使用

小程使用的是macos,mac自帶了curl工具。

curl的功能也算強(qiáng)大的,提供了系列的選項(xiàng)。這里只介紹一些常規(guī)的使用方式。

get請(qǐng)求,與保存

curl www.baidu.com 


curl "http://172.17.21.197:54321?pa1=hello"


// 保存,下載 

curl -o file.html www.baidu.com 

curl -o i.jpg http://img3.douban.com/lpic/s4549903.jpg 

// -A 仿造ie與運(yùn)行平臺(tái) 

curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" www.baidu.com 

// -e 仿造入口鏈接(即referer,用于盜鏈)

curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -e "www.google.com" www.baidu.com  

// -x 使用代理 

curl -x a.b.c.d:54321 http://google.com 

// -D 保存cookie到文件 

curl www.baidu.com -o aa.txt -D cookie.txt 

// -b 讀取文件并當(dāng)作cookie數(shù)據(jù)來(lái)請(qǐng)求

curl www.baidu.com -b cookie.txt  

// -H 設(shè)置請(qǐng)求頭,這里設(shè)置了cookie跟ua

curl -H "Cookie: install_id=14621691626; sid_guard=\"0eb878191489e4247f643672c932c814|1504782359|2592000|Sat\054 07-Oct-2017 11:05:59 GMT\"; \n User-Agent: xxx/1.5.6 (iPhone; iOS 10.2; Scale/2.00)" "https://xxx.yy.com/…" 

post

// -d 請(qǐng)求體 

curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi 


curl -d "key=jet" 192.168.2.32:54321

post,以表單的方式(multipart/form-data)

// "file"為key名,隨便起,后面為文件路徑(包括文件包)

curl -F "file=@./myfile.ok" "http://172.17.xx.xx:54321" 

“http報(bào)文結(jié)構(gòu)與curl的使用方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


分享名稱:http報(bào)文結(jié)構(gòu)與curl的使用方法
瀏覽地址:http://weahome.cn/article/ihjhii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部