日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

趣谈HTTP协议中的那些MIME header

發(fā)布時(shí)間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 趣谈HTTP协议中的那些MIME header 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

HTTP協(xié)議是我們最常使用到的協(xié)議,我們通過瀏覽器上網(wǎng),下載文件,上傳數(shù)據(jù)很多都是使用的它,但是我以前對(duì)它還是懵懵懂懂的,逐漸地,我有些感悟了,所以就記載到這里。本文將盡量使用詼諧的筆法介紹HTTP中的那些mime header field 頭域。

場(chǎng)景一:使用wget來下載一個(gè)源碼包,比如ATS 5.3版本,使用下面的命令:

wget -d "http://mirror.bit.edu.cn/apache/trafficserver/trafficserver-5.3.0.tar.bz2"


我們重點(diǎn)看response header部分:

HTTP/1.1 告訴我們使用的是HTTP協(xié)議的1.1版本,現(xiàn)在HTTP/2已經(jīng)出來了,但是我們見到的還不多;

200 OK 告訴我們響應(yīng)的狀態(tài)碼是200,就是正常返回?cái)?shù)據(jù)了,其它還有很多響應(yīng)碼,比如2xx,3xx,4xx,5xx等等,不細(xì)說了;

Server告訴我們服務(wù)器軟件是Nginx,版本是1.1.9,現(xiàn)在最新版的已經(jīng)到1.8.x了;

Content-Type告訴我們響應(yīng)的數(shù)據(jù)類型,這里是C++源碼,當(dāng)然是application/octet-stream了,其它還有圖片,視頻,json,html,xml之類的;

Content-Length告訴我們r(jià)esponse body的長(zhǎng)度,也就是源碼包的字節(jié)大小;

Date 告訴我們從服務(wù)器獲取該源碼包的時(shí)間,和我目前的時(shí)間差8小時(shí),估計(jì)是時(shí)區(qū)設(shè)置的問題;

Last-Modified 告訴我們,這個(gè)ATS 5.3的源碼包放到服務(wù)器上的時(shí)間,剛好是其對(duì)外發(fā)布時(shí)間;

Connection:告訴我們,C/S直接的連接保持方式,這里的keep-alive表示是保活的,沒有立即斷開,如果還有其它請(qǐng)求,可以重用這里TCP連接;

Accept-Ranges告訴我們從需要的字節(jié)開始接收;

由此可見,這些response header都是很有參考意義的,能給我們提供豐富的信息。

場(chǎng)景二:使用curl通過ATS 5.3下載一個(gè)普通的網(wǎng)頁(yè)文件,使用下面的命令:

curl -o /dev/null -vx 127.0.0.1:8081 ?-H "Accept-Encoding: gzip,deflate,sdch" "http://news.sohu.com"


相同的頭在這里不再重復(fù)了。

Vary告訴我們,對(duì)Accept-Encoding頭的不同值要區(qū)分,來得到不同的document副本,比如gzip壓縮的,deflate壓縮的,沒有壓縮的,這些都是不同的副本;

Cache-Control告訴我們緩存規(guī)則,這里是不要對(duì)document做變換,document的最大存活期是120秒,從緩存獲得該文件開始計(jì)算,超過120s要向服務(wù)器再次驗(yàn)證;

Expires告訴我們,到那個(gè)指定的時(shí)刻,這個(gè)document就是過期的,必須向源站重新請(qǐng)求;

Content-Encoding告訴我們,該document是使用gzip壓縮的;

Age告訴我們,文檔的存活期,剛獲取的文檔,存活期是0;

Proxy-Connection告訴我們,curl和Proxy的網(wǎng)絡(luò)連接是保活的;

Via告訴我們,請(qǐng)求從源站到達(dá)客戶端所經(jīng)過的代理情況,這里只經(jīng)過了一個(gè)代理ATS 5.3,注意后面的緩存情況[cMsSfW]表明是回源獲取的;

X-RS,FSS-Cache是源站自定義頭,不做表述。

將上述請(qǐng)求再重復(fù)幾次,我們得到


我們看到了幾點(diǎn)差異:

Age值有變化,原來是0,現(xiàn)在是8,表明該document在ATS的緩存中存活了8秒,它最大存活期是120秒,對(duì)一個(gè)新聞門戶網(wǎng)站來說,這是合理的,120秒后必須刷新網(wǎng)頁(yè)內(nèi)容;

Via頭中緩存狀態(tài)有變化,現(xiàn)在是[cRs f ],表示是從ATS中的RAM中獲取的熱點(diǎn)內(nèi)容;

場(chǎng)景三:range請(qǐng)求和檢查服務(wù)器是否支持?jǐn)帱c(diǎn)續(xù)傳功能

curl命令行中的-r/--range選項(xiàng)支持向服務(wù)器發(fā)送Range請(qǐng)求,-i選項(xiàng)指定顯示響應(yīng)頭信息


注意返回狀態(tài)碼是206,

Accept-Ranges告訴我們服務(wù)器是否支持指定范圍請(qǐng)求及哪種類型的分段請(qǐng)求,這里是byte

Content-Range告訴我們在整個(gè)返回體中本部分的字節(jié)位置,因?yàn)槲覀冋?qǐng)求的是圖片的前10個(gè)字節(jié),所以Content-Range的值是bytes 0-9/1575,后面的1575是圖片總的字節(jié)數(shù)。

上面是curl獲取到的響應(yīng)頭信息,其中如果能夠找到Content-Range則表明服務(wù)器支持?jǐn)帱c(diǎn)續(xù)傳,有些服務(wù)器還會(huì)返回Accept-Ranges。Nginx服務(wù)器默認(rèn)支持?jǐn)帱c(diǎn)續(xù)傳的,無須做任何額外配置。


總結(jié)

以上是生活随笔為你收集整理的趣谈HTTP协议中的那些MIME header的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。