http 安全性和幂等性_HTTP方法:幂等性和安全性
http 安全性和冪等性
冪等性和安全性是HTTP方法的屬性。 HTTP RFC定義了這些屬性,并告訴我們哪些HTTP方法是安全且冪等的。 服務器應用程序應確保正確執行安全和冪等的語義,如客戶端期望的那樣。
安全的HTTP方法
如果HTTP方法不更改服務器狀態,則認為它們是安全的。 因此,安全方法只能用于只讀操作。 HTTP RFC定義了以下安全方法:GET,HEAD,OPTIONS和TRACE。
實際上,通常不可能以不更改任何服務器狀態的方式來實現安全方法。
例如,GET請求可能會創建日志或審核消息,更新統計值或觸發服務器上的緩存刷新。
RFC在這里告訴我們:
當然,不可能確保服務器不會由于執行GET請求而產生副作用; 實際上,一些動態資源認為該功能。 這里的重要區別是用戶沒有要求副作用,因此不能對它們負責。
冪等HTTP方法
冪等意味著多個相同的請求將具有相同的結果。 因此,發送請求一次還是多次都沒有關系。 以下HTTP方法是冪等的:GET,HEAD,OPTIONS,TRACE,PUT和DELETE。 所有安全的HTTP方法都是冪等的,但PUT和DELETE是冪等的,但并不安全。
請注意,冪等性并不意味著服務器必須對每個請求以相同的方式進行響應。
例如,假設我們要使用DELETE請求通過ID刪除項目:
DELETE /projects/ 123 HTTP/ 1.1作為響應,我們可能會收到HTTP 200狀態代碼,指示該項目已成功刪除。 如果我們再次發送此DELETE請求,則可能會收到HTTP 404作為響應,因為該項目已被刪除。 第二個請求沒有更改服務器狀態,因此即使我們得到不同的響應,DELETE操作也是冪等的。
冪等性是API的一個積極特性,因為它可以使API更具容錯性。 假設客戶端存在問題,并且請求被多次發送。 只要使用冪等操作,就不會在服務器端造成任何問題。
HTTP方法概述
下表總結了哪些HTTP方法是安全且冪等的:
| HTTP方法 | 安全 | 冪等 |
| 得到 | 是 | 是 |
| 頭 | 是 | 是 |
| 選件 | 是 | 是 |
| 跟蹤 | 是 | 是 |
| 放 | 沒有 | 是 |
| 刪除 | 沒有 | 是 |
| 開機自檢 | 沒有 | 沒有 |
| 補丁 | 沒有 | 沒有 |
翻譯自: https://www.javacodegeeks.com/2020/02/http-methods-idempotency-and-safety.html
http 安全性和冪等性
總結
以上是生活随笔為你收集整理的http 安全性和幂等性_HTTP方法:幂等性和安全性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 余承东:华为穿戴设备登陆迪拜地标6000
- 下一篇: 京东商城近期或将上线特斯拉汽车订购服务