標籤:
HTTP 協議的主要特點可概括如下:
1.支援客戶/伺服器模式。
2.簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。要求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯絡的類型不同。由於HTTP 協議簡單,使得HTTP 伺服器的程式規模小,因而通訊速度很快。
3.靈活:HTTP 允許傳輸任意類型的資料對象。正在傳輸的類型由Content-Type 加以標記。
4.無串連:不需連線的含義是限制每次串連只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即中斷連線。採用這種方式可以節省傳輸時間。
5.無狀態:HTTP 協議是無狀態協議。無狀態是指協議對於交易處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次串連傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。
URL 結構
http(超文字傳輸通訊協定 (HTTP))是一個基於請求與響應模式的、無狀態的、應用程式層的協議,常基於TCP 的串連方式,HTTP1.1 版本中給出一種持續串連的機制,絕大多數的Web 開發,都是構建在HTTP 協議之上的Web 應用程式。
HTTP URL (URL 是一種特殊類型的URI,包含了用於尋找某個資源的足夠的資訊)的格式如下:
http://host[":"port][abs_path]. http 表示要通過HTTP 協議來定位網路資源;host 表示合法的Internet 主機網域名稱或者IP 位址;port 指定一個連接埠號碼,為空白則使用預設連接埠80;abs_path 指定請求資源的URI;如果URL 中沒有給出abs_path,那麼當它作為請求URI 時,必須以“/”的形式給出,通常這個工作瀏覽器自動幫我們完成。
eg:
1、輸入:www.guet.edu.cn
瀏覽器自動轉換成:http://www.guet.edu.cn/
HTTP 要求類型:
請求行以一個方法符號開頭,以空格分開,後面跟著請求的URI 和協議的版本,格式如下:MethodRequest-URI HTTP-Version CRLF其中Method 表示要求方法;Request-URI 是一個統一資源識別項;HTTP-Version 表示請求的HTTP協議版本;CRLF 表示斷行符號和換行(除了作為結尾的CRLF 外,不允許出現單獨的CR 或LF 字元)。
要求方法(所有方法全為大寫)有多種,各個方法的解釋如下:
響應狀態代碼:
狀態碼有三位元字組成,第一個數字定義了響應的類別,且有五種可能取值:
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 協議基礎