詳解HTTP請求行,以及WebDAV協議的演示


request-line = method SP request-target SP HTTP-version CRLF

method 方法 :指明操作目的 ,動詞

request-target = origin-form / absolute-form /authority-form / asterisk-form 

origin-form = absolute-path [ "?" query ]

  • 向 origin server 發起的請求,path 為空時必須傳遞 / 

absolute-form = absolute-URI 

  • 僅用於向正向代理proxy發起請求時

authority-form = authority 

  • 僅用於 CONNECT 方法 ,建立vpn等隧道時才會使用。例如 CONNECT www.example.com:80 HTTP/1.1

asterisk-form = " * "

  • 僅用於OPTIONS方法

HTTP-version 版本號發展歷史

  • HTTP/0.9 :只支持GET方法,過時
  • HTTP/1.0 :RFC1945,1996,常見使用於代理服務器(例如Nginx默認設置)
  • HTTP/1.1 :RFC2616,1999,增加緩存管理和控制;允許持久鏈接;允許響應數據分塊(chunked),利於傳輸大文件;強制要求Host頭,
  • HTTP/2.0 :2015.5 正式發布 ,二進制協議,不再是純文本;可發起多個請求;使用專用算法壓縮頭部,減少數據傳輸量;允許服務器主動向客戶端推送數據;增加了安全性,要求加密通信。

method:

  • GET:主要的獲取信息的方法,大量性能優化都針對改方法,冪等方法(冪等方法:調用一次和多次獲得的結果是完全一致的)
  • HEAD:類似於GET方法,但是服務器不發送BODY,用以獲取HEAD元數據,冪等方法
  • POST:常用於提交HTML FORM表單、新增資源等
  • PUT:更新資源,帶條件時是冪等方法
  • DELETE:刪除資源,冪等方法
  • CONNECT:建立tunnel隧道
  • OPTIONS:顯示服務器對訪問資源支持的方法,冪等方法

 如何使用OPTIONS?

linux電腦上默認支持CURL命令,windows上需要安裝CURL,安裝的方式參考https://jingyan.baidu.com/article/a681b0dec4c67a3b1943467c.html

返回的Allow頭部就是服務器對訪問資源支持的方法

用於文檔管理的WEBDEV方法(RFC2518)

webdav方法也是http方法,只不過為了處理文檔協作,專門制作的規范。也可以用於Restful API設計的。

  • PROPFIND:從Web資源中檢索以XML格式存儲的屬性。它也被重載,以允許一個檢索遠程系統的集合結構(也叫目錄層次結構)
  • PROPPATCH:在單個原子性動作中更改和刪除資源的多個屬性
  • MKCOL:創建集合或者目錄
  • COPY:將資源從一個URI復制到另外一個URI
  • MOVE:將資源從一個URI移動到另外一個URI
  • LOCK:鎖定一個資源。WebDAV支持共享鎖和互斥鎖
  • UNLOCK:解除資源的鎖定

演示:

1.通過WebDAV協議連接服務器

2.使用連接工具做刪、移動、復制文件操作

3.使用WireShark抓到的報文

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM