四 HTTP響應報文格式

2021-10-16 18:11:12 字數 1981 閱讀 7942

一、響應報文格式

http的響應報文的通用格式如下

主要包括狀態行、首部行、空行和實體體,和請求報文的結構類似

示例

狀態行

http/1.1 200 ok\r\n
常見的狀態碼的類別如下

常用狀態碼及含義如下

200 ok;http請求成功

404 not found;伺服器上不存在請求的資源

304 not modified;伺服器端資源未改變,可直接使用客戶端未過期的快取

首部行

date: fri, 08 jan 2021 08:52:35 gmt\r\n

date欄位表明建立http報文的日期和時間

server: apache/2.4.6 (centos) openssl/1.0.2k-fips php/7.4.13 mod_perl/2.0.11 perl/v5.16.3\r\n 

server欄位告知客戶端當前伺服器上安裝的http伺服器應用程式的資訊

上述報文的伺服器資訊是centos+apache

last-modified: fri, 08 jan 2021 06:59:01 gmt\r\n

首部欄位last-modified指明資源最終修改的時間

示意圖

etag: "80-5b85e175214a7"\r\n
欄位etag用來告知客戶端實體標識。該標識將資源以字串形式表示。伺服器會為每份資源分配對應的etag值。另外,當資源更新時,etag值也需要更新。

etag通常和if-none-match一起使用,當瀏覽器請求伺服器的資源a時, 伺服器根據a算出etag返回給瀏覽器,瀏覽器把"3f80f-1b6-3e1cb03b" 和 a 同時快取在本地。當下次再次向伺服器請求a時,會通過if-none-match把etag傳送給伺服器,伺服器再次計算a的雜湊值並和瀏覽器返回的值做比較。如果發現a發生了變化,就把a返回給瀏覽器(200)。如果發現a沒有變化,就給瀏覽器返回乙個304未修改。這樣通過控制瀏覽器端的快取,可以節省伺服器的頻寬,因為伺服器不需要每次都把全量資料返回給客戶端。

示意圖

accept-ranges: bytes\r\n
accept-ranges用來告知客戶端伺服器是否能處理範圍請求。可指定的字段值有兩種,可處理範圍請求時指定其為bytes,反之則指定其為none。

示意圖

content-length: 128\r\n    

[content length: 128]

欄位content-length表明了實體體部分的大小,單位是位元組

content-type: text/html; charset=utf-8\r\n 

欄位content-type說明了實體主體內物件的**型別。和字段accept一樣,欄位值用type/subtype形式賦值。

參考《**http》

《計算機網路自頂向下方法》

HTTP請求 響應報文格式

http請求報文格式 http請求報文主要由請求行 請求頭部 請求正文3部分組成 1,請求行 由3部分組成,分別為 請求方法 url 見備註1 以及協議版本,之間由空格分隔 請求方法包括get head put post trace options delete以及擴充套件方法,當然並不是所有的伺服...

HTTP請求報文 響應報文

connection close 伺服器傳送完請求物件後就關閉這條連線 user agent mozilla 5.0 使用者 即向伺服器傳送請求的瀏覽器型別 accept language fr 表示使用者想得到該物件的法語版本http的請求報文第一行叫做請求行,其後繼的為首部行。請求行有三個字段 ...

http響應報文詳解

http響應報文由響應行,響應頭,響應體三部分組成。響應行主要包括 響應協議,這個與請求協議對應,比如http,狀態碼200 狀態碼的描述ok 響應頭就是一些常見的響應名對應的響應值 響應引數就是我們真正需要的從資料庫中取出的資料 下面是摘自www.baidu.com和乙個示例 的請求頭 表明伺服器...