井中月

          知足常樂!
          posts - 11, comments - 19, trackbacks - 0, articles - 0

          HTTP客戶請求的數據格式說明

          Posted on 2008-12-29 14:13 井中月 閱讀(518) 評論(0)  編輯  收藏 所屬分類: WEB

          HTTP請求包括三部分:請求行(Request Line),頭部(Headers)和數據體(Body)。其中,請求行由請求方法(method),請求網址Request-URI和協議 (Protocol)構成,而請求頭包括多個屬性,數據體則可以被認為是附加在請求之后的文本或二進制文件。

          下面這個例子顯示了一個HTTP請求的Header內容,這些數據是真正以網絡HTTP協議從IE瀏覽器傳遞到Apache服務器上的。

          GET /icwork/? search=product HTTP/1.1

          Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/vnd.ms-powerpoint,application/vnd.ms-excel,application/msword,*.*

          Accept-Language:en-us

          Accept-Encoding:gzip,deflate

          User-Agent:Mozilla/4.0(compatible;MSIE 5.01;Windows NT 5.0;DigExt)

          Host:www.icconcept.com:8080

          Referer:http://www.yoursite.com/header.html

          Connection:Keep-Alive

          這段程序使用了6個Header,還有一些Header沒有出現。我們參考這個例子具體解釋HTTP請求格式。

          1.HTTP請求行:請求行格式為Method Request-URI Protocol。在上面這個例子里,“GET /icwork/? search=pruduct HTTP/1.1”是請求行。

          2.Accept:指瀏覽器或其他客戶可以接愛的MIME文件格式。Servlet可以根據它判斷并返回適當的文件格式。

          3.Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認值是ISO-8859-1.

          4.Accept-Language:指出瀏覽器可以接受的語言種類,如en或en-us,指英語。

          5.Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同于文件格式,它是為了壓縮文件并加速文件傳遞速度。瀏覽器在接收到Web響應之后先解碼,然后再檢查文件格式。

          6.Authorization:當使用密碼機制時用來標識瀏覽器。

          7.Cache-Control:設置關于請求被代理服務器存儲的相關選項。一般servlet用不到。

          8.Connection:用來告訴服務器是否可以維持固定的HTTP連接。HTTP/1.1使用Keep-Alive為默認值,這樣,當瀏覽器需要多個文件時(比如一個HTML文件和相關的圖形文件),不需要每次都建立連接。

          9.Content-Type:用來表名request的內容類型。可以用HttpServletRequest的getContentType()方法取得。

          10.Cookie:瀏覽器用這個屬性向服務器發送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和服務器相關的用戶信息,也可以用來實現會話功能。

          11.Expect:表時客戶預期的響應狀態。

          12.From:給出客戶端HTTP請求負責人的email地址。

          13.Host:對應網址URL中的Web名稱和端口號。

          14.If-Match:供PUT方法使用。

          15.If-Modified-Since:客戶使用這個屬性表明它只需要在指定日期之后更改過的網頁。因為瀏覽器可以使用其存儲的文件而不必從服務器請求,這樣節省了Web資源。由于Servlet是動態生成的網頁,一般不需要使用這個屬性。

          16.If-None-Match:和If-Match相反的操作,供PUT方法使用。

          17.If-Unmodified-Since:和If-Match-Since相反。

          18.Pragma:這個屬性只有一種值,即Pragma:no-cache,表明如果servlet充當代理服務器,即使其有已經存儲的網頁,也要將請求傳遞給目的服務器。

          19.Proxy-Authorization:代理服務器使用這個屬性,Servlet一般用不到。

          20.Range:如果客戶有部分網頁,這個屬性可以請求剩余部分。

          21.Referer:表明產生請求的網頁URL。如比從網頁/icconcept/index.jsp中點擊一個鏈接到網頁/icwork/search,在向服務器發送的GET/icwork/search中的請求中,Referer是http://hostname:8080/icconcept/index.php。這個屬性可以用來跟蹤Web請求是從什么網站來的。

          22.Upgrage:客戶通過這個屬性設定可以使用與HTTP/1.1不同的協議。

          23.User-Agent:是客戶瀏覽器名稱。

          24.Via:用來記錄Web請求經過的代理服務器或Web通道。

          25.Warning:用來由客戶聲明傳遞或存儲(cache)錯誤。

          主站蜘蛛池模板: 塔河县| 澜沧| 年辖:市辖区| 监利县| 历史| 永善县| 永安市| 甘泉县| 象山县| 新乡县| 丹凤县| 英超| 虎林市| 柳江县| 荣成市| 康马县| 镇雄县| 永胜县| 五华县| 鄄城县| 建昌县| 肇东市| 香港| 会同县| 黄山市| 吴堡县| 济南市| 玛纳斯县| 隆德县| 鄢陵县| 阿荣旗| 桂平市| 杭锦后旗| 洱源县| 清水河县| 沂水县| 郁南县| 东方市| 清新县| 蒲江县| 上思县|