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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP首部(1)

發(fā)布時(shí)間:2025/3/8 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP首部(1) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、報(bào)文首部

   

  HTTP協(xié)議的請(qǐng)求和響應(yīng)必定包含HTTP首部,它包括了客戶端和服務(wù)端分別處理請(qǐng)求和響應(yīng)提供所需要的信息。報(bào)文主體字兒是所需要的用戶和資源的信息都在這邊。 

  HTTP請(qǐng)求報(bào)文組成

?????  ? 方法,URL,HTTP版本,HTTP首部字段

  

  HTTP響應(yīng)報(bào)文組成

??????   HTTP版本,狀態(tài)碼(數(shù)字和原因短語),HTTP首部字段

  

2、HTTP首部字段

  2.1 ?首部介紹

  HTTP首部信息傳遞了重要的信息,是構(gòu)成HTTP報(bào)文的要素。

  

  2.2 HTTP首部字段結(jié)構(gòu)

  首部字段結(jié)構(gòu)

??????   首部字段名:字段值

  另外,字段值對(duì)應(yīng)單個(gè)HTTP首部字段可以有多個(gè)值,中間用逗號(hào)間隔。如

?????   Keep-Alive: timeout=15,max=100

  2.3 HTTP的4種首部字段類型

    通用首部字段:請(qǐng)求報(bào)文和響應(yīng)報(bào)文兩方都會(huì)使用的首部;

    請(qǐng)求首部字段:從客戶端到服務(wù)端發(fā)送的請(qǐng)求報(bào)文時(shí)使用的首部。補(bǔ)充了請(qǐng)求的附加內(nèi)容,客戶端信息、響應(yīng)內(nèi)容相關(guān)優(yōu)先級(jí)信息;

    響應(yīng)首部字段:從服務(wù)端到客戶端發(fā)送的響應(yīng)報(bào)文時(shí)使用的首部。補(bǔ)充了響應(yīng)的附加內(nèi)容,也會(huì)要求客戶端附加額外的內(nèi)容信息;

    實(shí)體首部字段:針對(duì)請(qǐng)求報(bào)文和響應(yīng)報(bào)文的實(shí)體部分使用的首部。補(bǔ)充了資源內(nèi)容更新時(shí)間等于實(shí)體相關(guān)的信息。

  ?? ?

   請(qǐng)求首部字段

  

  響應(yīng)首部字段

  

  

  2.4 其他首部字段

  端到端首部(end-to-end Header)

?????  ? 分在此類別中的首部會(huì)轉(zhuǎn)發(fā)請(qǐng)求/響應(yīng)對(duì)應(yīng)的最終接收目標(biāo),且必須保存在由緩存生成的響應(yīng)中,另外規(guī)定它必須被轉(zhuǎn)發(fā)。

  逐跳首部(Hop-by-hop Header)

??????   分在此類別中的首部只對(duì)單次轉(zhuǎn)發(fā)有效,會(huì)因通過緩存或代理而不再轉(zhuǎn)發(fā)。逐跳首部字段只對(duì)concention,keep-alive,proxy-authenticate,proxy-authorization,trailer,te,transfer-encoding、upgrade這8個(gè)首部字段有效,其他的字段都為端到端首部。

3、HTTP通用首部字段

  3.1 cache-control?

  ? ? ?

?

  Cache-Control: 是否能緩存的指令

  3.1.1 ??public、private

  Cache-Control :public:其他用戶也可利用緩存;

  Cache-Control :private:響應(yīng)只以特定的用戶作為對(duì)象;緩存服務(wù)器只會(huì)對(duì)特定用戶提供緩存服務(wù),其他用戶則不會(huì)。

  

  3.1.2 no-cache 

  Cache-Control :no-cache:為防止從緩存中返回過期的資源,

  當(dāng)請(qǐng)求首部中包含no-cache時(shí)則表示客戶端將不會(huì)接收緩存過的響應(yīng),于是,中間的緩存服務(wù)器會(huì)把客戶端請(qǐng)求轉(zhuǎn)發(fā)給源服務(wù)器。

  當(dāng)響應(yīng)首部中包含no-cache時(shí)則表示緩存服務(wù)器不對(duì)資源進(jìn)行緩存。源服務(wù)器以后也將不再對(duì)緩存服務(wù)器請(qǐng)求中的資源進(jìn)行有效性確認(rèn)且禁止對(duì)其響應(yīng)資源進(jìn)行緩存操作。

  Cache-Control :no-cache=Location

?????? 無參數(shù)值的首部字段可以使用緩存,有參數(shù)值不使用緩存,指定首部字段具體值的方式,只能在響應(yīng)指令中指定。

  3.1.3?no-store

  Cache-Control:no-store? 控制可執(zhí)行緩存的對(duì)象指令,使用該指令,暗示請(qǐng)求和響應(yīng)中包含機(jī)密信息

?????? no-cache:不緩存過期資源

?????? no-store:不在本地存儲(chǔ)請(qǐng)求和響應(yīng)的任一部分

  3.1.4?s-maxage

  指定緩存期限和認(rèn)證的指令

  Cache-Control: s-maxage=604800(單位:秒)

  s-maxage與max-age指令相同,但是不同點(diǎn)是s-maxage指令只適用于供多位用戶使用的公共緩存服務(wù)器(一般為代理),也可以說對(duì)于向同一用戶重復(fù)返回響應(yīng)的服務(wù)器來說,這個(gè)指令沒有任何作用。同時(shí),使用此字段后,expires和max-age字段無效。

  3.1.5?max-age

  資源保存為緩存的最長(zhǎng)時(shí)間 

  Cache-Control: max-age=604800(單位:秒)

?????? 客戶端請(qǐng)求包含該字段:如果請(qǐng)求的資源的緩存時(shí)間數(shù)值比指定時(shí)間數(shù)值小,則客戶端直接接受緩存的資源,當(dāng)max-age為0時(shí),那么緩存服務(wù)器把請(qǐng)求轉(zhuǎn)發(fā)給源服務(wù)器。

?????? 服務(wù)器返回包含該字段:緩存服務(wù)器將不對(duì)資源進(jìn)行有效性在確認(rèn)。

  HTTP/1.1: max-age優(yōu)先處理,expires忽略;

  HTTP/1.0: expires優(yōu)先處理,max-age忽略。

  3.1.6 min-fresh

  要求緩存服務(wù)器返回至少還未過指定時(shí)間的緩存資源

  Cache-Control: min-fresh=60(單位:秒)

  當(dāng)指定min-fresh為60秒過后,過了60秒的資源都無法作為響應(yīng)返回。

  3.1.7?max-stale:表示緩存資源,即使過期也照樣接收

  Cache-Control: max-stale =60(單位:秒)

  max-stale未指定參數(shù)值,則表示無論經(jīng)過多久,客戶端都會(huì)接收響應(yīng);如果指定了具體參數(shù)值,那么即使過期,只要仍處于max-stale指定時(shí)間內(nèi),仍舊會(huì)被客戶端接收。

  3.1.8?only-if-cached?

  Cache-Control: only-if-cached

  表示客戶端僅在緩存服務(wù)器本地緩存目標(biāo)資源的情況下才會(huì)要求其返回。或者說,如果請(qǐng)求資源緩存服務(wù)器上存在,則永遠(yuǎn)不再重新加載響應(yīng),也不會(huì)確定資源有效性,如果不存在,則返回狀態(tài)碼504 gateway timeout。

  3.1.9?must-revalidate

  代理會(huì)向源服務(wù)器再次驗(yàn)證即將返回的響應(yīng)緩存目前是否仍然有效

  Cache-Control: must-revalidate

  如果代理無法連通源服務(wù)器,則返回504 gateway timeout。

  并且must-revalidate與max-stale沖突,must-revalidate使max-stale無效。

  3.1.10 proxy-revalidate

  要求所有的緩存服務(wù)器在接收客戶端帶有該指令的請(qǐng)求返回響應(yīng)之前,必須再次驗(yàn)證緩存的有效性

?  ?Cache-Control: proxy-revalidate

  3.1.11 no-transform

  無論在請(qǐng)求還是響應(yīng)中,緩存都不能改變實(shí)體主體的媒體類型,主要為了防止緩存或代理壓縮圖片等操作。

  Cache-Control: no-transform

  3.2 ?connection

  作用:控制不在轉(zhuǎn)發(fā)給代理的首部字段和管理持久連接。

  ??  

  

  ? ? ?

  3.3 ?date 

  三種表示格式,主要是協(xié)議版本不同。

  

  

  3.4 ?Prame

  HTTP/1.1之前版本遺留字段,向后兼容,Parame:no-cache,為通用首部字段,只用于客戶端發(fā)送的請(qǐng)求中。客戶端要求所有中間服務(wù)器不返回緩存的資源。通常情況下Parame:no-cache和Cache-Control :no-cache都在請(qǐng)求中包含。

  

  

  3.5 trailer

  此字段會(huì)事先說明在報(bào)文主體后記錄了哪些首部字段,該首部字段可應(yīng)用在HTTP/1,1版本分塊傳輸編碼時(shí)。

  

  

  

   

  3.6 ? transfer-encoding?

  傳輸報(bào)文主體時(shí)采用的編碼方式。HTTP/1.1的傳輸編碼方式僅對(duì)分塊傳輸編碼有效。

  

  

  

  3.7?upgrade

  此字段只能作用于相鄰服務(wù)器之間,如果相鄰服務(wù)器則表示監(jiān)測(cè)HTTP協(xié)議及其他協(xié)議是否可使用更高的版本進(jìn)行通信,其參數(shù)值可以用來指定一個(gè)完全不同的通信協(xié)議。

  如果不是相鄰服務(wù)器則體現(xiàn)了connection的另一個(gè)作用:控制不在轉(zhuǎn)發(fā)給代理的首部字段

?  

  3.8 via

??  此字段用于追蹤客戶端和服務(wù)端之間的請(qǐng)求和響應(yīng)報(bào)文的傳輸路徑。

  

  Via :首部是為了追蹤傳輸路徑,所以經(jīng)常會(huì)在TRACE方法一起使用。

  3.9?warning

  HTTP/1.0:Retry-After →→→→HTTP/1.1:Warning

  Warning:【警告碼】【警告主機(jī):端口號(hào)】【警告內(nèi)容】【日期時(shí)間】

  

轉(zhuǎn)載于:https://www.cnblogs.com/tlxf-blog/p/11078366.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的HTTP首部(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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