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