HTTP協議之應該如何理解請求方法
精簡內容
需要有某種“動作的指示”,告訴操作這些資源的方式。所以,就這麼出現了“請求方法”。它的實際含義就是客戶端發出了一個“動作指令”,要求伺服器端對 URI 定位的資源執行這個動作。
目前 HTTP/1.1 規定了八種方法,單詞都必須是大寫的形式,我先簡單地列把它們列出來,後面再詳細講解。
GET:獲取資源,可以理解為讀取或者下載資料;
HEAD:獲取資源的元資訊;
POST:向資源提交資料,相當於寫入或上傳資料;
PUT:類似 POST;
DELETE:刪除資源;
CONNECT:建立特殊的連線隧道;
OPTIONS:列出可對資源實行的方法;
TRACE:追蹤請求 - 響應的傳輸路徑。
今天我們學習了 HTTP 報文裡請求方法相關的知識,
簡單小結一下。
1.請求方法是客戶端發出的、要求伺服器執行的、對資源的一種操作;
2.請求方法是對伺服器的“指示”,真正應如何處理由伺服器來決定;
3.最常用的請求方法是 GET 和 POST,分別是獲取資料和傳送資料;
4.HEAD 方法是輕量級的 GET,用來獲取資源的元資訊;
5.PUT 基本上是 POST 的同義詞,多用於更新資料;
6.“安全”與“冪等”是描述請求方法的兩個重要屬性,具有理論指導意義,可以幫助我們設計系統。
課後習題
1.你能把 GET/POST 等請求方法對應到資料庫的“增刪改查”操作嗎?請求頭應該如何設計呢?
答:GET:查
POST:增
PUT:改
DELETE:刪
請求行按 請求方法 請求資源 http版本號
GET引數直接放在URI裡,其他的放body
2.你覺得 TRACE/OPTIONS/CONNECT 方法能夠用 GET 或 POST 間接實現嗎?
答:可以
TRACE用於跟蹤請求,可以在GET或POST請求的響應頭加上診斷相關的引數,比如請求耗時等;
OPTIONS用於獲取請求方法,可以用GET請求訪問'/options'之類的uri,服務端響應中返回允許方法;
CONNECT用於建立隧道,需要用POST請求觸發隧道建立;