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請求的區別
推薦閱讀: