HTTP協議---HTTP請求中的常用請求欄位和HTTP的響應狀態碼及響應頭

我是喬同學發表於2012-10-17

用於HTTP請求中的常用請求頭欄位
Accept:用於高速伺服器,客戶機支援的資料型別
Accept-Charset:用於告訴伺服器,客戶機採用的編碼格式
Accept-Encoding:用於告訴伺服器,客戶機支援的資料壓縮格式
Accept-Language:客戶機的語言環境
Host:客戶機通過這個頭高速伺服器,想訪問的主機名
If-Modified-Since:客戶機通過這個頭告訴伺服器,資源的快取時間
Referer:客戶機通過這個頭告訴伺服器,它是從哪個資源來訪問伺服器的(防盜鏈)
User-Agent:客戶機通過這個頭告訴伺服器,客戶機的軟體環境
Cookie:客戶機通過這個頭可以向伺服器帶資料
Connection:處理完這次請求後是否斷開連線還是繼續保持連線
Date:當前時間值


HTTP響應
狀態行:用於描述伺服器對請求的處理結果。

狀態碼:100~199:表示成功接收請求,要求客戶端繼續提交下一次請求才能完成整個處理過程。
 200~299:表示成功接收請求並已完成整個處理過程。常用200
 300~399:為完成請求,客戶需進一步細化請求。例如:請求的資源已經移動一個新地址、常用302(意味著你請求我,我讓你去找別人),307和304(我不給你這個資源,自己拿快取)
 400~499:客戶端的請求有錯誤,常用404(意味著你請求的資源在web伺服器中沒有)403(伺服器拒絕訪問,許可權不夠)
 500~599:伺服器端出現錯誤,常用500
多個響應頭:響應頭用於描述伺服器的基本資訊,以及資料的描述,伺服器通過這些資料的描述資訊,可以通知客戶端如何處理等一會兒它回送的資料。
Location:這個頭配合302狀態碼使用,用於告訴客戶找誰。
Server:伺服器通過這個頭告訴瀏覽器伺服器的型別。
Content-Encoding:伺服器通過這個頭告訴瀏覽器資料的壓縮格式。
Content-Length:伺服器通過這個頭告訴瀏覽器回送資料的長度
Content-Type:伺服器通過這個頭告訴瀏覽器回送資料的型別
Last-Modified:告訴瀏覽器當前資源的最後快取時間
Refresh:告訴瀏覽器隔多久重新整理一次
Content-Disposition:告訴瀏覽器以下載方式開啟資料
Transfer-Encoding:告訴瀏覽器資料的傳送格式
ETag:快取相關的頭
········三種禁止瀏覽器快取的頭欄位:
 Expires:告訴瀏覽器把回送的資源快取多長時間 -1或0則是不快取
 Cache-Control:no-cache
 Pragma:no-cache
伺服器通過以上兩個頭,也就是控制瀏覽器不要快取資料

實體內容:代表伺服器向客戶端回送的資料

 

l200(正常)
表示一切正常,返回的是正常請求結果。
l302/307(臨時重定向)
指出被請求的文件已被臨時移動到別處,此文件的新的URL在Location響應頭中給出。
l304(未修改)
表示客戶機快取的版本是最新的,客戶機應該繼續使用它。
l403(禁止)
伺服器理解客戶端請求,但拒絕處理它。通常由於伺服器上檔案或目錄的許可權設定所致。
l404(找不到)
伺服器上不存在客戶機所請求的資源。
l500(內部伺服器錯誤)
伺服器端的CGI、ASP、JSP等程式發生錯誤。

 

 

1.請按自己的理解簡述HTTP 1.1與HTTP 1.0的區別。
2.請描述HTTP請求訊息和HTTP響應訊息的組成結構,並各舉一例進行說明。
3.瀏覽器分別在哪些情況下使用GET方式和POST方式訪問WEB伺服器?如果瀏覽器傳遞給WEB伺服器的引數內容超過1K,應該使用那種方式傳送請求訊息?
4.請描述200、302、304、404和500等響應狀態碼所表示的意義。

5.請列舉三種禁止瀏覽器快取的頭欄位,並寫出相應的設定值。

 

解答:

1.HTTP1.0對於每個連線都的建立一次連線一次只能傳送一個請求和響應,請求就會關閉,HTTP1.0沒有Host欄位;
而HTTP1.1在同一個連線中可以傳送多個請求和響應,多個請求可以重疊和同時進行,HTTP1.1必須有Host欄位。

2.請求訊息結構:一個請求行、若干訊息頭、以及屍體內容,當中的一些訊息頭和實體內容都是可選的,訊息頭和實體內容之間要用空行隔開。
響應訊息結構:一個狀態行、若干訊息頭、以及屍體內容,當中的一些訊息頭和實體內容都是可選的,訊息頭和實體內容之間要用空行隔開。
兩者的區別:就是請求訊息有請求行,響應訊息有狀態行。
GET /mail/aa.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: localhost:8080
If-Modified-Since: Wed, 17 Oct 2012 09:35:13 GMT
If-None-Match: W/"62-1350466513174"
Connection: Keep-Alive

 

HTTP/1.1 304 Not Modified
Server: Apache-Coyote/1.1
ETag: W/"62-1350466513174"
Date: Wed, 17 Oct 2012 09:45:38 GMT

 

3.資料量不大,因為GET方式資料量限制1K,不帶有保護資料的情況下使用GET方式訪問WEB伺服器;資料量大,而且帶有需要保護的資料時使用POST方式訪問WEB伺服器。
如果瀏覽器傳送伺服器的資料量超過1K,應使用POST方式訪問伺服器,因為POST方式向伺服器傳送是資料時,會先把傳送的資料打包傳送到WEB伺服器。

4.響應狀態嗎表示的意義:
200:表示成功,正常結果;
302:表示重定向,轉到別的站點;
304:表示未修改;
404:表示找不到資源;
500:表示內部伺服器錯誤;

5.Expires:告訴瀏覽器把回送的資源快取多長時間 -1或0則是不快取
 Cache-Control:no-cache
 Pragma:no-cache

 

 

相關文章