標籤:

HTTP協議簡介

HTTP協議簡介

來自專欄編碼前線2 人贊了文章

1.HTTP協議簡介

  • HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )伺服器傳輸超文本到本地瀏覽器的傳送協議。
  • HTTP是一個基於TCP/IP通信協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。
  • HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分散式超媒體信息系統。
  • HTTP協議工作於客戶端-服務端架構為上。如下圖:

2.HTTP主要特點

  • 支持客戶/伺服器模式。
  • 簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。
  • 靈活:HTTP允許傳輸任意類型的數據對象,正在傳輸的類型由Content-Type加以標記。
  • 無連接:無連接的含義是限制每次連接只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連接。
  • 無狀態:HTTP協議是是無狀態協議,無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時它的應答就較快。

3.URL介紹

3.1URL格式

大多數URL協的語法都建立在下面9個部分構成的通用格式上:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

其中比較重要的是:方案(scheme)、主機(host)和路徑(path)

3.2URL組成部分介紹

4.HTTP請求Request協議

客戶端發送一個HTTP請求到伺服器的請求消息包括以下格式:

請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成。

Get請求例子:

GET /123.png HTTP/1.1Host: img.test.comcontent-length: 1500content-type: image/pngdate: Sat, 22 Sep 2018 08:36:13 GMTAccept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN,zh;q=0.8

POST請求例子

POST / HTTP1.1Host: img.test.comcontent-length: 1500content-type: image/pngdate: Sat, 22 Sep 2018 08:36:13 GMTAccept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN,zh;q=0.8?name=aa&score=90

響應例子

HTTP/1.1 200 OKDate: Sat, 22 Sep 2018 08:36:16 GMTContent-Type: text/html; charset=UTF-8?<html> <head></head> <body> <!--body goes here--> </body></html>

5.HTTP 請求方法

  • HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
  • HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

6.HTTP請求整個過程(常用於面試)

7.GET和POST請求的區別

推薦閱讀:

TAG:簡介 | 科技 |