__http原理__01__通訊流程_消息格式

本文轉自  菜鳥教程瀏覽器

 


 1、HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)服務器

是因特網上應用最爲普遍的一種網絡傳輸協議,網絡

是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。架構

全部的WWW文件都必須遵照這個標準。curl

HTTP 是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件圖片文件查詢結果等)。ide

2、HTTP工做原理網絡傳輸協議

1. HTTP 協議工做於 客戶端-服務端 架構上。瀏覽器做爲 HTTP 客戶端經過 URL 向 HTTP 服務端即 WEB 服務器發送全部請求。 url

2. Web 服務器根據接收到的請求後,向客戶端發送響應信息。spa

HTTP 注意事項:3d

  • HTTP 是無鏈接:無鏈接的含義是 限制每次鏈接只處理一個請求

服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。

採用這種方式能夠節省傳輸時間

  • HTTP 是媒體獨立的:這意味着,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據均可以經過 HTTP 發送。

客戶端以及服務器指定使用適合的 MIME-type 內容類型

  • HTTP 是無狀態:HTTP 協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力

缺乏狀態 意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。

另外一方面,在服務器不須要先前信息時它的應答就較快。

  • Web 服務器有:Apache 服務器,IIS 服務器(Internet Information Services)等。
  • HTTP 默認端口號爲 80,可是你也能夠改成 8080 或者其餘端口。

3、HTTP協議通訊流程

4、HTTP消息結構

  HTTP 是基於客戶端/服務端(C/S)的架構模型,經過一個可靠的連接來交換信息,是一個無狀態的請求/響應協議。

  一個 HTTP "客戶端" 是一個應用程序(Web 瀏覽器或其餘任何客戶端)

經過鏈接到服務器達到向服務器發送一個或多個 HTTP 的請求的目的。

  一個 HTTP "服務器" 一樣也是一個應用程序(一般是一個 Web 服務,如 Apache Web 服務器或 IIS 服務器等)

經過接收客戶端的請求並向客戶端發送 HTTP 響應數據。

  HTTP 使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和創建鏈接。

  一旦創建鏈接後,數據消息就經過相似 Internet 郵件所使用的格式 [RFC5322] 和 多用途 Internet 郵件擴展(MIME)[RFC2045] 來傳送。

 

  1. 客戶端請求消息

    客戶端發送一個 HTTP 請求到服務器的請求消息包括如下格式:請求行(request line)請求頭部(header)空行請求數據四個部分組成,

    下圖給出了請求報文的通常格式。

    請求報文通常格式

  2. 服務器響應消息

   HTTP響應也由四個部分組成,分別是:狀態行消息報頭空行響應正文

    下圖給出了響應報文的通常格式。

    響應報文

  3. 實例

    典型的使用GET來傳遞數據的實例:

      客戶端請求:

GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi

 

       服務端響應:

HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain

      

        輸出結果:

Hello World! My payload includes a trailing CRLF.
相關文章
相關標籤/搜索