HTTP三點注意事項:
- HTTP是無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
- HTTP是媒體獨立的:這意味着,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據都可以通過HTTP發送。客戶端以及服務器指定使用適合的MIME-type內容類型。
- HTTP是無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
瀏覽器顯示的內容都有 HTML、XML、GIF、Flash 等,瀏覽器是通過 MIME Type 區分它們,決定用什麼內容什麼形式來顯示。
註釋:MIME Type 是該資源的媒體類型,MIME Type 不是個人指定的,是經過互聯網(IETF)組織協商,以 RFC(是一系列以編號排定的文件,幾乎所有的互聯網標準都有收錄在其中) 的形式作爲建議的標準發佈在網上的,大多數的 Web 服務器和用戶代理都會支持這個規範 (順便說一句,Email 附件的類型也是通過 MIME Type 指定的)。
媒體類型通常通過 HTTP 協議,由 Web 服務器告知瀏覽器的,更準確地說,是通過 Content-Type 來表示的。例如:Content-Type:text/HTML。
通常只有一些卓哉互聯網上獲得廣泛應用的格式纔會獲得一個 MIME Type,如果是某個客戶端自己定義的格式,一般只能以 application/x- 開頭。
客戶端請求消息
客戶端發送一個HTTP請求到服務器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成,下圖給出了請求報文的一般格式。
HTTP 教程
HTTP 教程HTTP 簡介HTTP 消息結構HTTP 請求方法HTTP 響應頭信息HTTP狀態碼HTTP content-type
HTTP 消息結構
HTTP是基於客戶端/服務端(C/S)的架構模型,通過一個可靠的鏈接來交換信息,是一個無狀態的請求/響應協議。
一個HTTP"客戶端"是一個應用程序(Web瀏覽器或其他任何客戶端),通過連接到服務器達到向服務器發送一個或多個HTTP的請求的目的。
一個HTTP"服務器"同樣也是一個應用程序(通常是一個Web服務,如Apache Web服務器或IIS服務器等),通過接收客戶端的請求並向客戶端發送HTTP響應數據。
HTTP使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和建立連接。
一旦建立連接後,數據消息就通過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴展(MIME)[RFC2045]來傳送。
客戶端請求消息
客戶端發送一個HTTP請求到服務器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成,下圖給出了請求報文的一般格式。
服務器響應消息
HTTP響應也由四個部分組成,分別是:狀態行、消息報頭、空行和響應正文。
HTTP 請求方法
根據 HTTP 標準,HTTP 請求可以使用多種請求方法。
HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1 新增了六種請求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。