參考:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
一、HTTP協議詳解之URL篇:
概要:URL是一種特殊類型的URI,包含了用於查找某個資源的足夠的信息,HTTP URL的格式如下:
http://host[":"port][abs_path] 1. http表示要通過HTTP協議來定位網絡資源 2. host表示合法的Internet主機域名或者IP地址 3. ort指定一個端口號,爲空則使用缺省端口80 4. abs_path指定請求資源的URI
eg: 1、輸入:www.guet.edu.cn 瀏覽器自動轉換成:http://www.guet.edu.cn/ 2、http:192.168.0.116:8080/index.jsp
二、HTTP協議詳解之請求篇
概要:http請求由三部分組成,分別是:請求行、消息報頭、請求正文
1、請求行以一個方法符號開頭,以空格分開,後面跟着請求的URI和協議的版本,格式如下:
Method Request-URI HTTP-Version CRLF 1. Method: 表示請求方法 2. Request-URI: 是一個統一資源標識符 3. HTTP-Version: 表示請求的HTTP協議版本 4. CRLF: 表示回車和換行(除了作爲結尾的CRLF外,不允許出現單獨的CR或LF字符)。
1.1 Method(請求方法)有多種,以下給出類型及解釋說明:
GET 請求獲取Request-URI所標識的資源 POST 在Request-URI所標識的資源後附加新的數據 HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭 PUT 請求服務器存儲一個資源,並用Request-URI作爲其標識 DELETE 請求服務器刪除Request-URI所標識的資源 TRACE 請求服務器回送收到的請求信息,主要用於測試或診斷 CONNECT 保留將來使用 OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求 應用舉例: GET方法:在瀏覽器的地址欄中輸入網址的方式訪問網頁時,瀏覽器採用GET方法向服務器獲取資源, eg: GET /form.html HTTP/1.1 (CRLF) POST方法要求被請求服務器接受附在請求後面的數據,常用於提交表單。 eg:POST /reg.jsp HTTP/ (CRLF)(請求行) Accept:image/gif,image/x-xbit,... (CRLF) ... HOST:www.guet.edu.cn (CRLF) Content-Length:22 (CRLF) Connection:Keep-Alive (CRLF) Cache-Control:no-cache (CRLF) (CRLF) //該CRLF表示消息報頭已經結束,在此之前爲消息報頭 user=jeffrey&pwd=1234 //此行以下爲提交的數據
2、請求報頭後述
3、請求正文(略)
三、HTTP協議詳解之響應篇
概要:在接收和解釋請求消息後,服務器返回一個HTTP響應消息。
HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文
1. 狀態行:
格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
1. HTTP-Version表示服務器HTTP協議的版本 2. Status-Code表示服務器發回的響應狀態代碼 3. Reason-Phrase表示狀態代碼的文本描述
2. 狀態代碼:
由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值: 1xx:指示信息--表示請求已接收,繼續處理 2xx:成功--表示請求已被成功接收、理解、接受 3xx:重定向--要完成請求必須進行更進一步的操作 4xx:客戶端錯誤--請求有語法錯誤或請求無法實現 5xx:服務器端錯誤--服務器未能實現合法的請求 常見狀態代碼、狀態描述、說明: 200 OK //客戶端請求成功 400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解 401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用 403 Forbidden //服務器收到請求,但是拒絕提供服務 404 Not Found //請求資源不存在,eg:輸入了錯誤的URL 500 Internal Server Error //服務器發生不可預期的錯誤 503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後可能恢復正常 eg:HTTP/1.1 200 OK (CRLF)
2、響應報頭後述
3、響應正文就是服務器返回的資源的內容
四、HTTP協議詳解之消息報頭篇
概要:HTTP消息由客戶端到服務器的請求和服務器到客戶端的響應組成。
請求消息和響應消息都是由:1、開始行(對於請求消息,開始行就是請求行,對於響應消息,開始行就是狀態行),2、消息報頭(可選),3、空行(只有CRLF的行),4、消息正文(可選)組成。
HTTP消息報頭:包括普通報頭、請求報頭、響應報頭、實體報頭。 1. 普通報頭: 在普通報頭中,有少數報頭域用於所有的請求和響應消息,但並不用於被傳輸的實體,只用於傳輸的消息。 2. 請求報頭 請求報頭允許客戶端向服務器端傳遞請求的附加信息以及客戶端自身的信息。 3. 響應報頭 響應報頭允許服務器傳遞不能放在狀態行中的附加響應信息,以及關於服務器的信息和對Request-URI所標識的資源進行下一步訪問的信息。 4. 實體報頭 請求和響應消息都可以傳送一個實體。一個實體由實體報頭域和實體正文組成,但並不是說實體報頭域和實體正文要在一起發送,可以只發送實體報頭域。實體報頭定義了關於實體正文(eg:有無實體正文)和請求所標識的資源的元信息。