HTTP報文首部

HTTP的首部字段都包括什么获洲?

HTTP請求報文: method / url / HTTP版本號 / header / body
也就是請求行矛双、 請求頭 程拭、 請求體

HTTP響應(yīng)報文: http 版本號 / 狀態(tài)碼 / headers / body
響應(yīng)行/ 響應(yīng)頭部/響應(yīng)體

request headers

  • 請求首部字段
  • 通用首部字段
  • 實體首部字段

response headers

  • 響應(yīng)首部字段
  • 通用首部字段
  • 實體首部字段

一共有4種首部字段建蹄,下面會一一介紹

  • 通用首部字段:請求報文和響應(yīng)報文都使用的字段讼渊,例如Date 动看、 Warning
  • 請求報文字段:從客戶端向服務(wù)端發(fā)送請求報文時使用的首部字段,例如Host (請求資源所在服務(wù)器) User-Agent(HTTP客戶端程序信息)
  • 響應(yīng)報文字段:從服務(wù)端想客戶端發(fā)送響應(yīng)報文時使用的首部字段,例如 Server
  • 實體報文字段: 專門針對請求包文和響應(yīng)報文的實體部分爪幻,使用的字段菱皆,例如Content-Length / Content-Type

實際的HTTP通信中须误,不限于RFC2616中定義的47種字段,還包括Cookie仇轻、Set-Cookie等

一 通用首部字段介紹

  • Cache-Control : no-cache 設(shè)置 我們?nèi)绾慰刂凭彺?/li>
  • Connection: keep-alive
    • 設(shè)置不再轉(zhuǎn)發(fā)給代理的首部字段京痢,比如connection: Upgrade 的意思就是,首部字段刪除掉Upgrade后篷店,再轉(zhuǎn)發(fā)
    • 管理持久鏈接祭椰。
http1.1默認都是持久鏈接,例如 Connection: keep-alive
如果服務(wù)端想明確的斷開鏈接疲陕,可以設(shè)置  Connection: close
  • Date 這當然也屬于通用首部字段方淤,表明創(chuàng)建HTTP報文的日期
  • Pragma 是HTTP1.1之前版本的歷史遺留字段。
 它的取值很單一蹄殃,就是表示客戶端要求携茂,所有的中間服務(wù)器不要返給我緩存的資源
Pragma: no-cache

理想情況下,所有的中間服務(wù)器都是基于HTTP1.1協(xié)議的話窃爷,我們只用
Cache-Control: no-cache 

可是實際開發(fā)中邑蒋,一般我們發(fā)送請求會2個首部字段都寫上

Pragma: no-cache
Cahche-Control: no-cache

  • Tailer 事先說明報文主體后,記錄了哪些首部字段按厘。
  • Transfer-Encoding医吊。 規(guī)則了傳輸報文主體時采用的編碼方式
 Transfer-Encoding: chunked
  • Upgrade 用于檢測HTTP協(xié)議,是否可使用更高版本的協(xié)議

  • Via 該字段用于追蹤傳輸路徑逮京,因為經(jīng)過每一個代理服務(wù)器時卿堂,都有在via字段,留下自身服務(wù)器的信息

  • Warning 告知用戶一些與緩存相關(guān)的警告

Warning: [警告碼] [警告主機: 端口號] [ 警告內(nèi)容] [日期]

二 請求首部字段

  • Accept 客戶端用該字段懒棉,指定服務(wù)器返回的文件類型
例如: 
文本文件  text/html , text/plain , text/css
圖片文件  image/jpeg    image/gif
應(yīng)用程序使用的二進制文件:   application/octet-stream , application/zip

可以使用q= 可以指定優(yōu)先級草描,默認q=1 
  • Accept-Charset 用于通知服務(wù)器,我們需要的字符集策严,以及字符集優(yōu)先級

  • Accept-Encoding 告知服務(wù)器穗慕,代理支持的內(nèi)容編碼

  • Accept-Language: 告知服務(wù)器,我們能夠處理的自然語言妻导,用q=0.8 來設(shè)置優(yōu)先級

  • Auothorization 告知服務(wù)器逛绵,用戶代理的認證信息

  • Expect 告知服務(wù)器,期望服務(wù)器出現(xiàn)的某種行為

 Expect: 100-continue
等待狀態(tài)碼100響應(yīng)的客戶端在發(fā)生請求時倔韭,就需要指定這個字段
  • From 用來告知服務(wù)器术浪,用戶的電子郵件地址
  • Host (唯一一個必須被包含的字段 ) 告知服務(wù)器,請求資源所在的主機名和端口號
  • If-xxx 這類的請求首部字段寿酌,都可稱為條件請求胰苏,滿足一定條件,服務(wù)器才會執(zhí)行請求醇疼。
例如:
If-Match
If-Modified-Since
If-None-Match
If-Range
If--Unmodifield-Since
  • Range 告知服務(wù)器請求資源的范圍
  • Referer 告訴服務(wù)器請求的原始資源的URI
  • User-Agent 告訴服務(wù)器硕并,創(chuàng)建請求的瀏覽器和用戶代理名稱等信息

三 響應(yīng)首部字段

  • Accept-Ranges 用來告訴瀏覽器法焰,服務(wù)器是否可以處理范圍請求
Accept-Ranges: none    // 不能處理
Accept-Ranges:bytes    // 可以處理
  • Age 告訴瀏覽器,服務(wù)器在多久之前創(chuàng)建了響應(yīng)
  • ETag字段 告知客戶端的實體標識倔毙。
每次資源被緩存時壶栋,都會被分配一個唯一的標識。
當資源發(fā)生變化時普监,這個ETag也會對應(yīng)的發(fā)生改變。

ETag值也分強弱琉兜,強ETag值只要發(fā)生一點變化就會改變凯正,弱ETag只在發(fā)生較大變化才改變

  • Location字段 。用來做重定向的豌蟋,幾乎所有瀏覽器在接受到包含Location的響應(yīng)后廊散,都會強制性地嘗試對重定向資源進行訪問。

  • Proxy-Authenticate 會把代理服務(wù)器要求的認證信息發(fā)送給客戶端

  • Retry-After 指定瀏覽器梧疲,應(yīng)該在多少秒后允睹,再次發(fā)起請求

  • Server字段 告知瀏覽器,當前服務(wù)器上安裝的http服務(wù)器應(yīng)用程序的信息

  • Vary字段幌氮。 vary字段可以對緩存進行控制

當代理服務(wù)器接受到帶有Vary字段的請求時缭受,如果使用的Accept-Language字段相同,那么就直接從緩存中返回響應(yīng)该互,如果不一致米者,就先從原服務(wù)器獲取資源后,才能作為響應(yīng)返回
  • WWW-Authenticate 用于HTTP訪問認證

四 實體首部字段

在請求報文和響應(yīng)報文中宇智,都包含著實體相關(guān)信息的首部字段

  • Allow字段
Allow: GET,HEAD
用于通知客戶端蔓搞,能支持請求的所有HTTP方法
  • Content-Encoding字段 通知客戶端,服務(wù)器對實體選用的內(nèi)容編碼方式
Content-Encoding: gzip
告知瀏覽器随橘,我已經(jīng)對實體的主體部分進行了gzip壓縮喂分,之后的解壓就麻煩你了

  • Content-Language字段 告知瀏覽器,實體主體使用的自然語言
  • Content-Length 字段 告知瀏覽器實體主體部分的大谢帷(單位是字節(jié))
  • Content-MD5字段 客戶端會將接受到的主體執(zhí)行相同的MD5算法蒲祈,然后與該字段比較
  • Content-Range
  • Content-Type 說明了實體主體內(nèi)對象的媒體類型
類似請求首部字段Accept
  • Expires(到期) 將資源失效的日期告知客戶端。
  • Last-Modifield字段蜒车。 指明資源最終修改的時間

五 為Cookie服務(wù)的首部字段

共2個字段讳嘱,一個在請求頭,一個在響應(yīng)頭

  • Set-Cookie 字段 是響應(yīng)首部字段酿愧,有一些屬性
1.expires 屬性 指定瀏覽器可發(fā)送Cookie的有效期

如果不設(shè)置就默認瀏覽器關(guān)閉沥潭,Cookie就過期。

2.path屬性 指定
3. domain屬性
4.secure屬性嬉挡,用于限制web頁面只有在HTTPS安全鏈接時钝鸽,才可以發(fā)送Cookie
5.HttpOnly屬性汇恤,可以時JS無法操作Cookie,所以可以用來防止跨站腳本攻擊(XSS)

  • Cookie 字段

六 其他首部字段

HTTP的首部字段是可以自行擴展的拔恰,所以在Web服務(wù)器和瀏覽器的應(yīng)用上因谎,會出現(xiàn)各種非標準的首部字段。以下是比較常見的自己擴展的首部字段

  • X-Frame-Options字段 屬于【響應(yīng)首部字段】
用于控制網(wǎng)站內(nèi)颜懊,在其他網(wǎng)站的Frame標簽內(nèi)的顯示問題财岔。其主要目的是為了防止點擊劫持攻擊
有2個字段值

X-Frame-Options: DENY           拒絕
X-Frame-Options:SAMEORIGIN         僅同源域名下的頁面匹配時許可


  • X-XSS-Protection 字段也屬于【響應(yīng)首部字段】
X-XSS-Protection: 0       關(guān)閉XSS過濾設(shè)置
X-XSS-Protection: 1       開啟XSS的過濾設(shè)置
  • P3P屬于【響應(yīng)首部字段】
  • DNT字段 屬于 【請求首部字段】 Do Not Track 意思是拒絕個人信息被手機
設(shè)置為0同意被追蹤,1拒絕被追蹤
由于DNT的功能具備有效性河爹,所以Web服務(wù)器需要對DNT做好對應(yīng)的支持
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匠璧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子咸这,更是在濱河造成了極大的恐慌夷恍,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媳维,死亡現(xiàn)場離奇詭異酿雪,居然都是意外死亡,警方通過查閱死者的電腦和手機侄刽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門指黎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人州丹,你說我怎么就攤上這事袋励。” “怎么了当叭?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵茬故,是天一觀的道長。 經(jīng)常有香客問我蚁鳖,道長磺芭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任醉箕,我火速辦了婚禮钾腺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讥裤。我一直安慰自己放棒,他們只是感情好,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布己英。 她就那樣靜靜地躺著间螟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厢破,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天荣瑟,我揣著相機與錄音,去河邊找鬼摩泪。 笑死笆焰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的见坑。 我是一名探鬼主播嚷掠,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荞驴!你這毒婦竟也來了叠国?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤戴尸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后冤狡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孙蒙,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年悲雳,在試婚紗的時候發(fā)現(xiàn)自己被綠了挎峦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡合瓢,死狀恐怖坦胶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晴楔,我是刑警寧澤顿苇,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站税弃,受9級特大地震影響纪岁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜则果,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一幔翰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧西壮,春花似錦遗增、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春缓待,著一層夾襖步出監(jiān)牢的瞬間蚓耽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工旋炒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留步悠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓瘫镇,卻偏偏與公主長得像鼎兽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铣除,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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

  • 本文是《圖解HTTP》讀書筆記的第二篇谚咬,主要包括此書的第六章內(nèi)容,因為第六章的內(nèi)容較多尚粘,而且比較重要择卦,所以單獨寫為...
    lijiankun24閱讀 1,357評論 0 6
  • 本篇文章篇幅比較長,先來個思維導圖預覽一下郎嫁。 一秉继、概述 1.計算機網(wǎng)絡(luò)體系結(jié)構(gòu)分層 2.TCP/IP 通信傳輸流 ...
    滌生_Woo閱讀 54,970評論 24 557
  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族,HTTP屬于它內(nèi)部的一個子集泽铛。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,440評論 0 20
  • 鏈接: https://pan.baidu.com/s/1bp08VvT 密碼: nnyd 章節(jié)一:了解Web及網(wǎng)...
    我是三人禾閱讀 1,462評論 0 4
  • 7月3日盔腔,是學生返校接畢業(yè)證杠茬、成績冊的日子。這應(yīng)該是六年來我們最后一次的聚會弛随。由于考試已過了3天瓢喉,幾個學生睡過頭,...
    云散月明閱讀 478評論 0 2