HTTP有哪些保證冪等性和安全性的方法? - mscharhag
冪等性和安全性是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是冪等的,但並不安全。
請注意,冪等性並不意味著伺服器必須對每個請求以相同的方式進行響應。
例如,假設我們要透過ID使用DELETE請求刪除專案:
DELETE /projects/123 HTTP/1.1 |
作為響應,我們可能會收到HTTP 200狀態程式碼,指示該專案已成功刪除。如果我們再次傳送此DELETE請求,則可能會收到HTTP 404作為響應,因為該專案已被刪除。第二個請求沒有更改伺服器狀態,因此即使我們得到不同的響應,DELETE操作也是冪等的。
冪等性是API的一項積極功能,因為它可以使API更具容錯性。假設客戶端出現問題,並且請求被多次傳送。只要使用冪等操作,就不會在伺服器端造成任何問題。
相關文章
- 如何保證介面的冪等性?常見的實現方案有哪些?
- 如何保證介面的冪等性?
- 介面服務中的冪等性設計和防重保證,詳細分析冪等性的幾種實現方法
- 02 RESTFul介面和HTTP的冪等性分析RESTHTTP
- 騰訊二面:如何保證介面冪等性?高併發下的介面冪等性如何實現?
- 高併發下如何保證介面的冪等性?
- 如何使POST請求具有冪等性防止重複提交 - mscharhag
- MQ系列10:如何保證訊息冪等性消費MQ
- 如何保證MongoDB的安全性?MongoDB
- 提高應用程式安全性的測試和方法有哪些?
- Rabbit MQ 怎麼保證可靠性、冪等性、消費順序?MQ
- 關於如何在專案介面保證冪等性的一點思考
- GitHub - fencyio:為RabbitMQ消費者提供冪等性保證的庫包GithubMQ
- 專案中對外暴露的http介面的安全性如何保證HTTP
- 什麼是等保三級?等保三級的認證流程有哪些?
- IT安全性如何提高?有哪些實用方法?
- HTTP 和 HTTPS 之間除了安全性區別外,還有哪些區別HTTP
- 透過資料和技術增強住宅的安全性方法有哪些?
- 訊息佇列-如何保證訊息的不被重複消費(如何保證訊息消費的冪等性)佇列
- 為什麼 HTTP PATCH 方法不是冪等的及其延伸HTTP
- SpringBoot如何保證介面的冪等性?六種方案一次講清楚~Spring Boot
- 冪等性問題
- 冪等方法的應用
- 等保、分保是什麼?等保與分保的區別有哪些?
- 什麼是冪等性?四種介面冪等性方案詳解!
- 執行緒安全性保證---JMM特性詳解執行緒
- [java]如何裂解RESTful的冪等性JavaREST
- 【網路安全小知識】二級等保和三級等保之間的區別有哪些?
- 什麼是等保測評?等保測評資質有哪些?
- 介面冪等性如何實現?
- 分散式之介面冪等性分散式
- 介面冪等性解決方案
- 冪等設計:確保操作的安全與可靠
- HTTP和HTTPS的區別有哪些?HTTP
- 計算機網路——如何保證網路傳輸的安全性計算機網路
- 前後端API互動如何保證資料安全性?後端API
- 【Java面試】什麼是冪等?如何解決冪等性問題?Java面試
- 一文看懂https如何保證資料傳輸的安全性的HTTP