Request Method請求方法

2021-10-12 05:21:33 字數 1583 閱讀 8170

八種方法

get向指定的資源發出「顯示」請求。使用get方法應該只用在讀取資料,而不應當被用於產生「***」的操作中,例如在網路應用程式中。其中乙個原因是get可能會被網路蜘蛛等隨意訪問。參見安全方法

head

與get方法一樣,都是向伺服器發出指定資源的請求。只不過伺服器將不傳回資源的本文部分。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中「關於該資源的資訊」(元資訊或稱元資料)。

post

向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。資料被包含在請求本文中。這個請求可能會建立新的資源或修改現有資源,或二者皆有。

delete

請求伺服器刪除request-uri所標識的資源。

trace

回顯伺服器收到的請求,主要用於測試或診斷。

options

這個方法可使伺服器傳回該資源所支援的所有http請求方法。用』*』來代替資源名稱,向web伺服器傳送options請求,可以測試伺服器功能是否正常運作。

connect

http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。通常用於ssl加密伺服器的鏈結(經由非加密的http**伺服器)。

方法名稱是區分大小寫的。當某個請求所針對的資源不支援對應的請求方法的時候,伺服器應當返回狀態碼405(method not allowed),當伺服器不認識或者不支援對應的請求方法的時候,應當返回狀態碼501(not implemented)。

http伺服器至少應該實現get和head方法,其他方法都是可選的。當然,所有的方法支援的實現都應當符合下述的方法各自的語義定義。此外,除了上述方法,特定的http伺服器還能夠擴充套件自定義的方法。例如:

patch(由 rfc 5789 指定的方法)

用於將區域性修改應用到資源。

安全方法

對於get和head方法而言,除了進行獲取資源資訊外,這些請求不應當再有其他意義。也就是說,這些方法應當被認為是「安全的」。 客戶端可能會使用其他「非安全」方法,例如post,put及delete,應該以特殊的方式(通常是按鈕而不是超連結)告知客戶可能的後果(例如乙個按鈕控制的資金交易),或請求的操作可能是不安全的(例如某個檔案將被上傳或刪除)。

但是,不能想當然地認為伺服器在處理某個get請求時不會產生任何***。事實上,很多動態資源會把這作為其特性。這裡重要的區別在於使用者並沒有請求這一***,因此不應由使用者為這些***承擔責任。

***

假如在不考慮諸如錯誤或者過期等問題的情況下,若干次請求的***與單次請求相同或者根本沒有***,那麼這些請求方法就能夠被視作「冪等(idempotence)」的。get,head,put和delete方法都有這樣的冪等屬性,同樣由於根據協議,options,trace都不應有***,因此也理所當然也是冪等的。

假如乙個由若干請求組成的請求序列產生的結果,在重複執行這個請求序列或者其中任何乙個或多個請求後仍沒有發生變化,則這個請求序列便是「冪等」的。但是,可能出現乙個由若干請求組成的請求序列是「非冪等」的,即使這個請求序列中所有執行的請求方法都是冪等的。例如,這個請求序列的結果依賴於某個會在下次執行這個序列的過程中被修改的變數。

RequestMethod用法小結和注意事項

target retention retentionpolicy.runtime documented public inte ce 請求路徑 string value default 請求型別 requestmethod method default 請求引數,當請求帶有配置的引數,才匹配處理器 ...

RequestMethod的引數的含義是?

requestmethod為請求的型別,比如是http的get請求還是post請求等,http請求列舉取值範圍為 get,head,post,put,patch,delete,options,trace,常用的是get和post請求。get select 從伺服器查詢,可以在伺服器通過請求的引數區分...

請求行,請求頭,請求體

1.請求報文 請求行 請求頭 請求資料 空行 請求行求方法字段 url欄位和http協議版本 例如 get index.html http 1.1 get方法將資料拼接在url後面,傳遞引數受限 請求方法 get post head put delete options trace connect ...