http請求,請求頭和響應頭都有什麼資訊?
頁面和伺服器互動最常見的方式就是ajax,ajax簡單來說是瀏覽器傳送請求到服務端,然後服務端返回資料,常見的請求頭和響應頭如下圖所示。
先看通用資訊,通用資訊有三個欄位: 請求url, 請求方法, 狀態碼, 遠端地址。
看下請求頭Request Headers,
Accept : 指定客戶端能夠接收的內容型別,內容型別中的先後次序表示客戶端接收的先後次序。在Ajax程式碼中,可以使用XMLHttpRequest 物件中setRequestHeader函式方法來動態設定這些Header資訊。
Accept-Encoding : 指定客戶端瀏覽器可以支援的web伺服器返回內容壓縮編碼型別。表示允許伺服器在將輸出內容傳送到客戶端以前進行壓縮,以節約頻寬。而這裡設定的就是客戶端瀏覽器所能夠支援的返回壓縮格式。
Accept-Language : 指定HTTP客戶端瀏覽器用來展示返回資訊所優先選擇的語言。
Connection : 表示是否需要持久連線。如果web伺服器端看到這裡的值為“Keep-Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1預設進行持久連線),它就可以利用持久連線的優點,當頁面包含多個元素時(例如Applet,圖片),顯著地減少下載所需要的時間。要實現這一點, web伺服器需要在返回給客戶端HTTP頭資訊中傳送一個Content-Length(返回資訊正文的長度)頭,最簡單的實現方法是:先把內容寫入ByteArrayOutputStream,然 後在正式寫出內容之前計算它的大小。
Connec-Length : 請求頭的長度。
Connect-Type : 顯示此HTTP請求提交的內容型別。一般只有post提交時才需要設定該屬性。
有關Content-Type屬性值可以如下兩種編碼型別:
(1)“application/x-www-form-urlencoded”: 表單資料向伺服器提交時所採用的編碼型別,預設的預設值就是“application/x-www-form-urlencoded”。 然而,在向伺服器傳送大量的文字、包含非ASCII字元的文字或二進位制資料時這種編碼方式效率很低。
(2)“multipart/form-data”: 在檔案上載時,所使用的編碼型別應當是“multipart/form-data”,它既可以傳送文字資料,也支援二進位制資料上載。
當提交為單單資料時,可以使用“application/x-www-form-urlencoded”;當提交的是檔案時,就需要使用“multipart/form-data”編碼型別。
在Content-Type屬性當中還是指定提交內容的charset字元編碼。一般不進行設定,它只是告訴web伺服器post提交的資料採用的何種字元編碼。
cookie : 瀏覽器端cookie。
Hose : 客戶端地址
Origin : 目標地址
Referer : 包含一個URL,使用者從該URL代表的頁面出發訪問當前請求的頁面
User-Agent : 客戶端資訊
x-Requested-With : 是否為同步請求 ,如果為XMLHttpRequest,則為 Ajax 非同步請求。如果為null則為傳統同步請求
響應頭Response Header
由於例項中的返回的欄位並不是很全,就從網路上找了下更全面的資料
Accept-Ranges | 表明伺服器是否支援指定範圍請求及哪種型別的分段請求 | Accept-Ranges: bytes |
Age | 從原始伺服器到代理快取形成的估算時間(以秒計,非負) | Age: 12 |
Allow | 對某網路資源的有效的請求行為,不允許則返回405 | Allow: GET, HEAD |
Cache-Control | 告訴所有的快取機制是否可以快取及哪種型別 | Cache-Control: no-cache |
Content-Encoding | web伺服器支援的返回內容壓縮編碼型別。 | Content-Encoding: gzip |
Content-Language | 響應體的語言 | Content-Language: en,zh |
Content-Length | 響應體的長度 | Content-Length: 348 |
Content-Location | 請求資源可替代的備用的另一地址 | Content-Location: /index.htm |
Content-MD5 | 返回資源的MD5校驗值 | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Content-Range | 在整個返回體中本部分的位元組位置 | Content-Range: bytes 21010-47021/47022 |
Content-Type | 返回內容的MIME型別 | Content-Type: text/html; charset=utf-8 |
Date | 原始伺服器訊息發出的時間 | Date: Tue, 15 Nov 2010 08:12:31 GMT |
ETag | 請求變數的實體標籤的當前值 | ETag: “737060cd8c284d8af7ad3082f209582d” |
Expires | 響應過期的日期和時間 | Expires: Thu, 01 Dec 2010 16:00:00 GMT |
Last-Modified | 請求資源的最後修改時間 | Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT |
Location | 用來重定向接收方到非請求URL的位置來完成請求或標識新的資源 | Location: http://www.zcmhi.com/archives/94.html |
Pragma | 包括實現特定的指令,它可應用到響應鏈上的任何接收方 | Pragma: no-cache |
Proxy-Authenticate | 它指出認證方案和可應用到代理的該URL上的引數 | Proxy-Authenticate: Basic |
refresh | 應用於重定向或一個新的資源被創造,在5秒之後重定向(由網景提出,被大部分瀏覽器支援) |
Refresh: 5; url= http://www.zcmhi.com/archives/94.html |
Retry-After | 如果實體暫時不可取,通知客戶端在指定時間之後再次嘗試 | Retry-After: 120 |
Server | web伺服器軟體名稱 | Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) |
Set-Cookie | 設定Http Cookie | Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 |
Trailer | 指出頭域在分塊傳輸編碼的尾部存在 | Trailer: Max-Forwards |
Transfer-Encoding | 檔案傳輸編碼 | Transfer-Encoding:chunked |
Vary | 告訴下游代理是使用快取響應還是從原始伺服器請求 | Vary: * |
Via | 告知代理客戶端響應是通過哪裡傳送的 | Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1) |
Warning | 警告實體可能存在的問題 | Warning: 199 Miscellaneous warning |
WWW-Authenticate | 表明客戶端請求實體應該使用的授權方案 | WWW-Authenticate: Basic |