更新時間:2022-12-21 來源:黑馬程序員 瀏覽量:
Web服務(wù)器返回給瀏覽器的響應(yīng)信息由4個部分組成,分別是狀態(tài)行、響應(yīng)頭、空行以及響應(yīng)正文。HTTP響應(yīng)的格式如圖1所示。
下面是通過瀏覽器訪問百度百科中詞條python時,Web服務(wù)器返回的響應(yīng)信息,具體內(nèi)容如下。
HTTP/1.1 200 OK Connection: keep-alive Content-Encoding: deflate Content-Security-Policy-Report-Only: default-src https:. Content-Type: text/html; charset=UTF-8 Date: Thu, 15 Jul 2021 06:25:42 GMT Server: Apache Vary: Accept-Encoding Transfer-Encoding: chunked <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge" />.
上述響應(yīng)信息中,第1行代碼是狀態(tài)行,第2~9行代碼是響應(yīng)頭,第10行是空行,第11~14行代碼是響應(yīng)正文。需要注意的是,即使響應(yīng)信息中沒有響應(yīng)正文,也必須在末尾加上空行。
下面分別對狀態(tài)行、響應(yīng)頭和響應(yīng)正文進行介紹。
1.狀態(tài)行
上述響應(yīng)信息的狀態(tài)行的具體內(nèi)容如下。
HTTP/1.1 200 OK
在狀態(tài)行中,HTTP/1.1表示HTTP的版本號,200表示響應(yīng)狀態(tài)碼,OK表示響應(yīng)狀態(tài)碼的簡短描述。
響應(yīng)狀態(tài)碼代表服務(wù)器的響應(yīng)狀態(tài),它的作用是告知瀏覽器請求Web資源的結(jié)果,如請求成功、請求異常、服務(wù)器處理錯誤等。響應(yīng)狀態(tài)碼及說明如下表所示。
響應(yīng)狀態(tài)碼及說明
2.響應(yīng)頭
上述響應(yīng)信息中,狀態(tài)行下面的部分便是若干個響應(yīng)頭信息。響應(yīng)頭的格式與請求頭的格式相同。關(guān)于響應(yīng)頭中的常用字段及常用值的介紹如下。
( 1) Cache-Control: must-revalidate、 no-cache, private。
Cache-Control表示服務(wù)器告知瀏覽器當(dāng)前的HTTP 響應(yīng)是否可以緩存,取值為must-revalidate表示在一個緩存過期之后,不能直接使用這個過期的緩存,必須檢驗之后才能使用;取值為no-cache表示瀏覽器可以緩存資源,每次使用緩存資源前都必須重新驗證其有效性;取值為private表示響應(yīng)只能被單個用戶緩存,不能作為共享緩存。
(2) Connection: keep-alive、 closed。
Connection表示瀏覽器是否使用持久HTTP連接,取值為keep-alive表示使用持久連接;取值為closed 表示不使用持久連接。
(3) Content-Encoding: gzip、 compress, identity。
Content-Encoding表示服務(wù)器對特定媒體類型的數(shù)據(jù)進行壓縮,取值為gzip表示采用Lempel-Ziv 壓縮算法;取值為compress表示采用Lempel-Ziv-Welch 算法;取值為identity 表示數(shù)據(jù)未經(jīng)壓縮或修改。
(4) Content-Type: text/html;charset=UTF-8。
Content-Type表示服務(wù)器告知瀏覽器實際返回的內(nèi)容的類型,取值為text/html;charset=UTF-8表示服務(wù)器返回資源文件的類型為text/html,字符編碼格式為UTF-8。
3.響應(yīng)正文
響應(yīng)正文是服務(wù)器返回的具體數(shù)據(jù),常見的數(shù)據(jù)是HTML源代碼。瀏覽器在接收到HTTP響應(yīng)后,會根據(jù)響應(yīng)正文的不同類型進行不同的處理。如果響應(yīng)正文是DOC文檔,那么瀏覽器會借助安裝在本機的Word程序打開這份文檔;如果響應(yīng)正文是RAR壓縮文件,那么瀏覽器會彈出一個下載窗口讓用戶下載解壓軟件;如果響應(yīng)正文是HTML文檔,那么瀏覽器會在自身的窗口中展示該文檔。