HTTP首部

這裏有一份簡潔的前端知識體系等待你查收,看看吧,會有驚喜哦~若是以爲不錯,懇求star哈~前端


HTTP報文首部

HTTP協議的請求和響應報文中一定包含HTTP報文首部。首部內容分別爲客戶端和服務器處理請求和響應提供所須要的信息。git

HTTP請求報文

在請求中,HTTP報文由方法、URI、HTTP版本、HTTP首部字段等部分構成github

HTTP響應報文

在響應中,HTTP報文由HTTP版本、狀態碼(數字和緣由短語)、HTTP首部字段3部分構成緩存

HTTP首部字段

request headers服務器

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

response headers代理

  • 響應首部字段
  • 通用首部字段
  • 實體首部字段

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

通用首部字段

請求報文和響應報文都會使用的首部blog

Cache-Control指令一覽

緩存請求指令: 資源

緩存響應指令: get

Cache-Control:public :代表其餘用戶也能夠利用緩存

Cache-Control:private:與public行爲相反

Cache-Control:no-cache:目的是防止從緩存中返回過時的資源。客戶端發送的請求若是包含no-cache,表示客戶端不會接收緩存過的響應,因而中間的緩存服務器必須把客戶端請求轉發給源服務器,若是服務器返回的響應包含該字段,表示緩存服務器不能對資源進行緩存。若對no-cache字段名具體指定參數值,那麼客戶端在接收到這個被指定參數值的首部字段對應的響應報文後,就不能使用緩存。換言之,無參數值的首部字段可使用緩存。只能在響應指令中指定該參數。

Cache-Control:no-store:暗示請求或響應包含機密信息,不能再本地存儲請求或響應的任一部分。

注:事實上no-cache表明不緩存過時的資源,緩存會向源服務器進行有效期確認後處理資源,no-store纔是真正地不進行緩存。

Cache-Control:s-maxage/max-age:指定緩存期限和認證的指令。s-maxage和max-age功能相同,只是s-maxage指令只適用於供多位用戶使用的公共緩存服務器。當客戶端請求中包含max-age指令時,若是斷定緩存資源的緩存時間數值比指定時間的數值更小,那麼客戶端就接收緩存的資源。服務器響應中包含max-age指令時,緩存服務器將不對資源的有效性再作確認,max-age數值表明資源保存爲緩存的最長時間。

Cache-Control:min-fresh:要求緩存服務器返回至少還未過指定時間的緩存資源。

Cache-Control:max-stale:指示緩存資源即便過時也照常接收。若是指令爲指定參數值,則緩存始終能夠被接收,若是指定了具體數值,即便過時,只要在max-stale指定的時間內,緩存仍舊會被客戶端接收。

請求首部字段

請求報文使用的首部

響應首部字段

響應報文使用的首部

實體首部字段

請求報文和響應報文的實體部分使用的首部

逐跳首部

逐跳首部(Hop-by-hop Header):分在此類別中的首部只對單次轉發有效,會因經過緩存或代理而再也不轉發。HTTP/1.1和以後版本中,若是要使用hop-by-hop首部,需提供Connection首部字段。逐跳首部字段包括以下字段:

端到端首部

端到端首部(End-to-end Header):此類別中的首部會轉發給請求/響應對應的最終接收目標,且必須保存在由緩存生成的響應中,另外規定它必須被轉發,除了逐跳首部字段,其餘都是端到端首部字段

相關文章
相關標籤/搜索