井中月

          知足常樂(lè)!
          posts - 11, comments - 19, trackbacks - 0, articles - 0

          HTTP請(qǐng)求包括三部分:請(qǐng)求行(Request Line),頭部(Headers)和數(shù)據(jù)體(Body)。其中,請(qǐng)求行由請(qǐng)求方法(method),請(qǐng)求網(wǎng)址Request-URI和協(xié)議 (Protocol)構(gòu)成,而請(qǐng)求頭包括多個(gè)屬性,數(shù)據(jù)體則可以被認(rèn)為是附加在請(qǐng)求之后的文本或二進(jìn)制文件。

          下面這個(gè)例子顯示了一個(gè)HTTP請(qǐng)求的Header內(nèi)容,這些數(shù)據(jù)是真正以網(wǎng)絡(luò)HTTP協(xié)議從IE瀏覽器傳遞到Apache服務(wù)器上的。

          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個(gè)Header,還有一些Header沒(méi)有出現(xiàn)。我們參考這個(gè)例子具體解釋HTTP請(qǐng)求格式。

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

          2.Accept:指瀏覽器或其他客戶可以接愛(ài)的MIME文件格式。Servlet可以根據(jù)它判斷并返回適當(dāng)?shù)奈募袷健?/p>

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

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

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

          6.Authorization:當(dāng)使用密碼機(jī)制時(shí)用來(lái)標(biāo)識(shí)瀏覽器。

          7.Cache-Control:設(shè)置關(guān)于請(qǐng)求被代理服務(wù)器存儲(chǔ)的相關(guān)選項(xiàng)。一般servlet用不到。

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

          9.Content-Type:用來(lái)表名request的內(nèi)容類型??梢杂肏ttpServletRequest的getContentType()方法取得。

          10.Cookie:瀏覽器用這個(gè)屬性向服務(wù)器發(fā)送Cookie。Cookie是在瀏覽器中寄存的小型數(shù)據(jù)體,它可以記載和服務(wù)器相關(guān)的用戶信息,也可以用來(lái)實(shí)現(xiàn)會(huì)話功能。

          11.Expect:表時(shí)客戶預(yù)期的響應(yīng)狀態(tài)。

          12.From:給出客戶端HTTP請(qǐng)求負(fù)責(zé)人的email地址。

          13.Host:對(duì)應(yīng)網(wǎng)址URL中的Web名稱和端口號(hào)。

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

          15.If-Modified-Since:客戶使用這個(gè)屬性表明它只需要在指定日期之后更改過(guò)的網(wǎng)頁(yè)。因?yàn)闉g覽器可以使用其存儲(chǔ)的文件而不必從服務(wù)器請(qǐng)求,這樣節(jié)省了Web資源。由于Servlet是動(dòng)態(tài)生成的網(wǎng)頁(yè),一般不需要使用這個(gè)屬性。

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

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

          18.Pragma:這個(gè)屬性只有一種值,即Pragma:no-cache,表明如果servlet充當(dāng)代理服務(wù)器,即使其有已經(jīng)存儲(chǔ)的網(wǎng)頁(yè),也要將請(qǐng)求傳遞給目的服務(wù)器。

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

          20.Range:如果客戶有部分網(wǎng)頁(yè),這個(gè)屬性可以請(qǐng)求剩余部分。

          21.Referer:表明產(chǎn)生請(qǐng)求的網(wǎng)頁(yè)URL。如比從網(wǎng)頁(yè)/icconcept/index.jsp中點(diǎn)擊一個(gè)鏈接到網(wǎng)頁(yè)/icwork/search,在向服務(wù)器發(fā)送的GET/icwork/search中的請(qǐng)求中,Referer是http://hostname:8080/icconcept/index.php。這個(gè)屬性可以用來(lái)跟蹤Web請(qǐng)求是從什么網(wǎng)站來(lái)的。

          22.Upgrage:客戶通過(guò)這個(gè)屬性設(shè)定可以使用與HTTP/1.1不同的協(xié)議。

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

          24.Via:用來(lái)記錄Web請(qǐng)求經(jīng)過(guò)的代理服務(wù)器或Web通道。

          25.Warning:用來(lái)由客戶聲明傳遞或存儲(chǔ)(cache)錯(cuò)誤。

          主站蜘蛛池模板: 黄山市| 都昌县| 咸丰县| 繁昌县| 古丈县| 尚义县| 西充县| 延吉市| 麻江县| 康保县| 新泰市| 武威市| 岢岚县| 上杭县| 连江县| 新乡市| 桐庐县| 嘉善县| 密云县| 通辽市| 沁水县| 太白县| 钟祥市| 靖江市| 营口市| 兰州市| 莲花县| 湾仔区| 宣城市| 丁青县| 大方县| 铁岭市| 汉源县| 绥化市| 潮安县| 夏河县| 东至县| 江山市| 淮阳县| 溆浦县| 玉山县|