Request和Response的格式

web-011(Request和Response的格式)

一個HTTP Request(HTTP請求)的格式通常如下:
GET/path/Servlet1  HTTP/1.1
Host:localhost
user-agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1; .NET CLR 1.1.4322);
Connection:keep-Alive
其他頭部信息...
(空行)
Request的Body

第一行是請求的類型(方法)、請求的資源(不含域名的路徑)和HTTP版本。Host是請求的主機地址,是第一條頭部信息,它和第一行請求的資源一起,組成完整的請求路徑,即請求的完整網址。頭部信息結束後跟着一個空行,空行後面是請求的Body部分。
如果是GET請求,Body爲空,發送的數據在GET部分,作爲Query String,成爲請求的資源的一部分,例如:Get/path/Servlet1/ ? name=John%20Smith&age=30 HTTP/1.1
這時如果是POST請求,數據在Body部分,例如Body部分的內容是:name=John%20Smith&age=30
對於POST請求來說,它多了Content-Type和Content-Length兩個頭部信息。
Content-Type指Body中數據的編碼類型,Content-Length是Body的長度。
/******************************************************************/
一個HTTP Response(HTTP響應)的格式通常如下:
HTTP/1.1 200 OK
Date: Sat,31 Dec 2005 23:59:59 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 122
其他頭部信息...
(空行)
Response的Body

第一行是狀態行,分別是HTTP版本、表示狀態的數字和信息(200和OK).下面就是一些頭部信息,例如Date是產生Response的時間、Content-Type和Content-Length表示Body內容的編碼類型和長度,含義和Request的相同。頭部信息結束後是一個空行,空行後面跟着Body,存放向用戶返回的數據,在前面的例子中,這些數據可能是文本類型、HTML類型或者XML類型的數據。
/********HTTP Request和HTTP Response的頭部信息**********************/
GET的頭部信息基本上就包含在了POST的頭部信息中,所以下面僅針對Post的頭部信息講解。
頭部信息也是Name/Value對,下面是POST的所以頭部信息,等號是編程時添加的,不是頭部信息格式的一部分:
1. accept=*/* : accept設置瀏覽器能處理的MIME類型,常見的類型有text/html(HTML文檔)和text/xml(XML文檔)等。
2. accept-language = en-ca:設置語言。
3. who = Me:用戶自定義。
4.referer = http://localhost:8080/HelloServlet/postRequestInfo.html:調用Servlet的網址,即單擊一個網頁來到第二個網頁,那麼第一個網頁的就叫做第二個網頁的referer.
5.cache-control=no-cache:是否使用緩衝,默認是使用緩衝。
6.content-type=application/x-www-form-urlencoded:內容類型。
7.if-modified-since=Thu,06 Apr 2006 01:00:00 GMT:在該日期後,如果網頁變了,就刷新它,這也是防止網頁緩衝的方法。
8.accept-encoding=gzip,deflate:用戶能處理的壓縮Encoding(編碼)的類型,這樣服務器端就可以用任何一種類型編碼,並在ResponseHeader(響應頭部)的Content-Encoding中反映出來。
9.user-agent=Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 1.1.4322):發送Request請求的瀏覽器。這個結果由IE瀏覽器產生,但仍然顯示爲NetScape的Mozilla,只有看括號裏面的MSIE,纔是真正的瀏覽器類型。
10.host=localhost:8080:很簡單,就是主機地址。
11.content-length=1:請求Request的內容長度。
12.connection=Keep-Alive:瀏覽器是否可處理持續的HTTP連接。所謂持續連接指瀏覽器能訪問多個文件,例如一個HTML文件和該文件上的圖像文件。Keep-Alive的含義就是持續連接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章