了解HTTP Headers的方方面面

作者: IIduce  來源: css9  發布時間: 2010-01-21 11:09  閱讀: 16571 次  推薦: 1   原文鏈接   [收藏]  
 

無論是做前端還是做后端,都會不時與HTTP Headers打交道,了解它無疑對Web開發有莫大幫助。這篇文章就讓我一起來學習下http headers的方方面。

什么是HTTP Headers

HTTP是“Hypertext Transfer Protocol”的所寫,整個萬維網都在使用這種協議,幾乎你在瀏覽器里看到的大部分內容都是通過http協議來傳輸的,比如這篇文章。

HTTP Headers是HTTP請求和相應的核心,它承載了關于客戶端瀏覽器,請求頁面,服務器等相關的信息。

示例

當你在瀏覽器地址欄里鍵入一個url,你的瀏覽器將會類似如下的http請求:
GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
Pragma: no-cache
Cache-Control: no-cache


第一行被稱為“Request Line” 它描述的是這個請求的基本信息,剩下的就是HTTP headers了。

請求完成之后,你的瀏覽器可能會收到如下的HTTP響應:

HTTP/1.x 200 OK
Transfer-Encoding: chunked
Date: Sat, 28 Nov 2009 04:36:25 GMT
Server: LiteSpeed
Connection: close
X-Powered-By: W3 Total Cache/0.8
Pragma: public
Expires: Sat, 28 Nov 2009 05:36:25 GMT
Etag: "pub1259380237;gz"
Cache-Control: max-age=3600, public
Content-Type: text/html; charset=UTF-8
Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT
X-Pingback: http://net.tutsplus.com/xmlrpc.php
Content-Encoding: gzip
Vary: Accept-Encoding, Cookie, User-Agent
<!-- ... rest of the html ... -->

第一行呢被稱為“Status Line”,它之后就是http headers,空行完了就開始輸出內容了(在這個案例中是一些html輸出)。

但你查看頁面源代碼卻不能看到HTTP headers,雖然它們同你能看到的東西一起被傳送至瀏覽器了。

這個HTTP請求也發出了一些其它資源的接收請求,例如圖片,css文件,js文件等等。

下面我們來看看細節。

怎樣才能看到HTTP Headers

下面這些FireFox擴展能夠幫助你分析HTTP headers:

1. firebug

2.Live HTTP Headers

3. 在PHP中:

文章下面將會看到一些使用php示范的例子。

1
0
 
標簽:HTTP Headers
 
 

文章列表

全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()