關於 HTTP 常用 Method

2021-08-22 02:32:09 字數 2567 閱讀 7910

對於 http 請求方法,seaconch 一直是有很多疑惑,按照計畫今天就來了解一下各個請求有何區別

根據http標準,http請求可以使用多種請求方法。

http1.0定義了三種請求方法: get、post 和 head方法。

http1.1新增了五種請求方法:options、put、patch、delete、trace 和 connect 方法。

seaconch 今天只總結其中常見的幾種方法

http 1.0 三個方法:head、get、post 預設都屬於簡單請求****** request

預檢請求priflight request即在請求之前需要首先由瀏覽器自發傳送 options 請求的請求

預檢請求的範圍

一般 http1.1 中的方法請求預設都會觸發預檢請求

但是簡單請求滿足一下條件也可以觸發 options 請求

get 方法的首要目的是獲取資源

當然您也可以走野路子,不過在這裡 seaconch 並不提倡哦

a) 引數可見

get 方法的引數是明文可見的包含在 url 當中,所以說敏感資訊不建議使用 get 方法

不過也正是因此,所以 get 方法允許被儲存書籤

b) 資料型別只允許 ascii

get 方法的資料型別只允許是 ascii 字元,所以說傳遞 二進位制 檔案就不可以用 get 方法了哦

c) 可以儲存書籤

當我們訪問某乙個**的頻率特別高的時候,肯定新增到書籤,那其實書籤就是依靠 get 方法來儲存的

d) 可以被快取

get 方法支援快取,當本次請求允許被快取時,會將資源存值本地 cache ,在未過期的情況下直接取本地 cache;快取過期後視情況而定

e) 引數會保留在瀏覽器歷史記錄

比較直觀的感受就是,我們可以在瀏覽器的歷史記錄中檢視到曾經搜尋過的關鍵字資訊

f) 請求長度會受限於所使用的瀏覽器與伺服器

不同的瀏覽器對於 get 請求長度的限制也是不同的,注意這是瀏覽器 / 伺服器(ie、chrome、apache、iis等)對於長度的限制,而不是 http 協議

post 方法的首要目的是提交,post 方法一般用於新增資源

a) 引數不可見,也不會被儲存

所以說 post 方法是不可以被儲存書籤的

b) 不能收藏為書籤

理由如上

c) 不可以被快取

我要提交的資料被快取在本地 cache 中想想其實也是沒道理的

d) 不會被儲存在瀏覽器歷史中

同樣是因為引數不可見

e) 不限制請求長度

對於 post 方法這種以提交為首要目的的方法,肯定是不可以限制請求長度的

f) 資料型別

不限,所以說 post 是可以提交檔案到伺服器的

g) 請求方式

post 請求與 get 請求不同,他會首先提交 head 資訊,待得到 100 響應後,才會再次將 data 提交

head 方法用於獲取報頭資訊,例如檢查 cache 是否被修改,是否過期?

head 方法與 get 方法類似,但並不會返回響應主體

options 方法的首要目的是priflight request

假如我現在有如下配置:

access-control

-allow

-methods:options, put

那麼當瀏覽器發起了priflight request後,只在包含在 被允許的 http 方法中的請求會被通過(****** request除外),而沒有被包含在內的請求,例如deleteoptions之後將不會被請求

put 與 patch 方法都是用於更新資源

put 對後台來說 put 方法的引數是乙個完整的資源物件,它包含了物件的所有字段

patch 對後台來說 patch 方法的引數只包含我們需要修改的資源物件的字段

delete 方法一般用於刪除資源

其實雖然我們都說 post(增) delete(刪)put(改)get(查),但其實真正我們是如何實現方法的是隨意的,也就是你完全可以用 get 刪除資源,delete 增加資源,所以說還有些沒想明白的同學到這裡就可以釋然了,畢竟規定是死的,人是活的,但是按照規定是好的,不按規定也是可以的。

晚安

常用快捷方法 method

1 求陣列最大 小值 const arr 0,1,2,3,4 const prim math.min max arr min 0 max 4 2 陣列快速去重 let arr 3,5,2,2,5,5 let unique new set arr 3,5,2 3 陣列內容判斷 some 陣列中有值與條...

Method類的常用方法

method getmethod string name,class parametertypes.根據方法名和引數獲得公共方法 method getmethod 獲得所有的公共方法 method getdeclaredmethod string name,class parametertypes ...

HTTP協議的幾種請求方式method

http是超文字傳輸協議,其定義了客戶端與伺服器端之間文字傳輸的規範。http預設使用80埠,這個埠指的是服務端的埠。需要注意的是,現在大多數訪問都使用了https協議,而https的預設埠為443,如果使用80埠訪問https協議的伺服器可能會被拒絕。http協議中的請求方法 有時也叫 動作 用來...