客戶端發送的請求消息為字符流,由請求行(包括方法、統一資源標識符URI和HTTP協議版本)和頭信息組成。
下面是一個合法的HTTP請求消息的例子。我們通過這個例子來大概了解一下HTTP請求消息。
GET /jytest/page/jsp02/easy.jsp
HTTP/1.1
Host:
localhost:8080
User-Agent:
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:.11)
Accept:
text/html,application/xhtml+xml,application/xml,*/*
Accept-Language:
zh-cnAccept-Charset:
gb2312,utf-8
|
這里,請求行指定了用GET方法,訪問一個名為/jytest/page/jsp02/easy.jsp的資源,并指定請求使用HTTP/1.1協議版本。
注意:請求的方法不光光只有GET,還有POST、HEAD、OPTIONS、DELETE、PUT、TRACE。其中,我們常用的是GET和POST方法,后邊會詳細講解,其余的各個方法大家簡單了解即可。
Host首部可以像服務器通知URL中所用的主機名。
User-Agent首部包含了發出請求的瀏覽器的類型相關信息。服務器可以使用此信息向不同類型的瀏覽器發送不同類型的響應。
Accept首部提供了瀏覽器所接受語言和文件格式的有關信息。這些首部可以用于針對瀏覽器的功能和用戶的首選項(如使用某種所支持的圖像格式和首選語言)對響應加以調整。
請求信息由服務器進一步處理,并生成相應的響應,響應消息由狀態行和頭信息組成。
下面是響應消息的事例。
HTTP/1.x
200 OK
Server:
Apache-Coyote/1.1
Content-Type:
text/html
Content-Length: 186
Date:
Wed, 17 Jun 2009 00:57:35 GMT
|
第一行為狀態行,狀態行中的狀態碼200只是已經成功處理請求,因此描述為“OK”。
注意:這里介紹下常見的狀態碼:404是找不到被請求的網頁時常遇到的狀態碼;500是服務器內部錯誤;503是服務器超時等,如果想具體了解,http://www.w3c.org上有很詳細的內容。
Server頭部指定服務器軟件。
Content-Type頭部指定了文檔的MIME類型,如果是“text/html”指示格式化的Web文檔,如果是“text/plain”只是未格式化的文本文檔。
Content-length頭部指定文件的大小,以字節來表示。
以上,我們只是介紹了請求和響應消息中可能包括的少數首部。更加詳細的介紹可以在http://www.w3c.org查看。