http你不得不知道的那些事(五) 報文頭

2021-08-09 19:55:23 字數 3443 閱讀 3581

現在開始詳細分析下報文頭內容:

我們先對首部進行下分類:

通用首部(請求和響應都可以用)

請求首部(只能用在請求中)

響應首部(只能用在響應中)

實體首部(描述主體的長度和內容,或者資源自身)

擴充套件首部(規範中沒有定義的新首部)

通用首部

connection 允許客戶端和伺服器指定與請求/響應連線有關的事項。

date 提供日期和時間標誌,說明報文是什麼時間建立的。

mime-version 給出了傳送端所使用的mime版本。

trailer 分塊傳輸使用

transfer-encoding 告知接收端為了保證報文的可靠傳輸,對報文採用了什麼編碼方式。

update 給出傳送端可能想要公升級使用的新版本或協議。

via 顯示了報文經過的中間節點(**、閘道器)。

通用快取首部

cache-control 用於隨報文傳送快取指示

pragma 另一種隨報文傳送指示的方式,但並不專用於快取。

請求資訊性首部

client-ip 提供了客戶端機器的ip

from 提供了客戶端使用者的email位址。

host 給出了接收請求的伺服器的主機名和埠號。

referer 提供了包含當前請求uri文件的url

ua-color 提供了客戶端顯示器顯示顏色的相關資訊

ua-cpu 給出了客戶端cpu的型別或製造商

ua-disp 提供了客戶端顯示器能力相關的資訊

ua-os 給出了執行在客戶端機器上作業系統名稱及版本

ua-pixels 提供了客戶端顯示器的畫素

user-agent將發起請求的應用程式名稱告訴伺服器

accept請求首部

accept 告訴伺服器能夠傳送哪些**型別

accept-charset 告訴伺服器能夠傳送哪些字符集

accept-encoding 告訴伺服器能夠傳送哪些編碼

accept-language 告訴伺服器能傳送哪些語言

te 告訴伺服器能使用哪些擴充套件傳輸編碼

條件請求首部

expect 允許客戶端列出某請求所要求的伺服器行為

if-match 如果實體標記與文件當前的實體標記相匹配,就獲取這份文件

if-modified-since 除非在某個指定的日期之後資源被修改過,否則就限制這個請求

if-none-match 如果提供的實體標記和當前的實體標記不匹配,就獲取這份文件

if-range 允許對文件的某個範圍進行條件請求。

if-unmodified-since 除非在某個指定日期之後資源沒有被修改,否則就限制這個請求。

range 如果伺服器支援範圍請求,就請求資源的指定範圍。

安全請求首部

authorization 包含客戶端提供給伺服器,一遍對其自身進行認證的資料

cookie 客戶端用它向伺服器傳送乙個令牌–他並不是乙個安全首部,但確實隱含了安全資訊。

cookie2 用來說明請求端支援的cookie版本。

**請求首部

max-forward 在通往源端伺服器的路徑上,將請求**給其他**或閘道器的最大次數–與trace方法異同使用。

proxy-authorization 與authorization相同,只是用在**進行認證時使用。

proxy-connect 與connect首部相同,但這個首部只在**建立連線時使用。

響應的資訊性首部:

age (從最初建立開始)響應持續時間

public 伺服器為其資源支援的請求方法列表

retry-after 如果資源不可用的話,在此時間或日期重試

server 伺服器應用程勳軟體的名稱和版本

title 對html文件來說,就是html文件源端給出的標題。

warning 比原因短語更詳細的一些警告報文。

協商響應首部:

accept-ranges 對此資源來說伺服器可接受的範圍

vary 首部列表

安全響應首部:

proxy-authenticate 來自**的對客戶端的質詢列表

set-cookie 不是真正的安全首部,但隱含有安全功能

set-cookie2 與set-cookie類似

www-authenticate 來自伺服器對客戶端的質詢列表

實體首部:

allow: 列出對此實體執行的請求方法。

location:告知客戶端實體實際上位於何處,用於將接收端定位到資源的實際位置上去。

內容首部:

content-base 解析主體中相對url是使用的基礎url

content-encoding 對主體執行的任意編碼方式。

content-language 理解主體時最適宜使用的自然語言

content-length 主體的長度或尺寸

content-location 資源實際所處的位置

content-md5 主體的md5校驗

content-range 在整個主體中此實體表示的範圍

content-type 這個主體的物件型別

實體快取首部:

etag 於此實體相關的實體標記

expires 實體不在有效,要從原始的源端獲取此實體的日期和時間

last-modified 這個實體最後一次被修改的日期。

寫了這麼多首部的東西,其實前端最常用的是條件請求首部和快取首部。熟練掌握和運用條件請求首部和快取首部是前端工程師最基本的能力,因為這是前端效能優化所必須的部分。對web安全來說,安全首部和資訊首部是至關重要的。對內容傳輸來來,內容首部可以保證我們傳輸不出問題。**首部是專門為**伺服器準備的,需要注意的是有些古老的**伺服器不理解keep-alive首部會出現問題。

說到**就不得不說說正向**和反向**,很多前端的小夥伴不是很理解這個東西。

正向**:**了客戶端,比如說我們常用的藍燈(現在不能用了~)。

反向**:**伺服器,比如我們說的nginx**伺服器,我們訪問伺服器實際上是我們在訪問**,然後**幫我們訪問伺服器,因此通過一些設定也可以做到負載均衡。

以上就是首部相關的資訊,有需要的童鞋可以收藏下。

關於簡歷,那些你不得不知道的要點!!

突出重點 乙個招聘者希望看到你對自己的事業採取的是認真負責的態度。不要忘記雇主在尋找的是適合某特定職位的人,這個人將是數百應聘者中最合適的一人。推銷自己 最成功的廣告則要有簡短而富有感召力,並且能夠多次重複重要的資訊。簡歷應該限制在一頁紙以內,在頁面上端寫一段總結性的語言,陳述你在求職上最大的優勢,...

關於浮動你不得不知道的知識

首先你得知道浮動屬性出現的 初衷是 為了實現文字環繞的效果 只是後來被用在了 不正當的方面 以下是我總結的16條關於 浮動的規則。1.css允許浮動任何元素,且浮動的元素會從正常的文件流中脫離出來,不過它仍然會影響布局。2.浮動元素周圍的外邊距不會合併,不管周圍的margin是否是浮動元素的都不會合...

不得不知道的補碼知識

無論什麼程式語言,其 最終都會被編譯解釋成計算機可讀取和執行的二進位制資料。其中,數字在二進位制資料中可劃分成原碼 補碼和反碼。原碼 數值前面增了一位符號位 例如 10 和 10 的二進位制表示如下 10 的原碼 0000 1010 10 的原碼 1000 1010其中,最高位表示符號位,0 表示正...