除了GET方法,新的HTTP QUERY方法規範釋出
近日IETF提交新規範討論:定義了一種新的 HTTP 方法QUERY,QUERY方法作為一種安全、冪等的請求方法,可以攜帶請求內容。
大多數情況下,當請求中傳送的資料量太大而無法編碼到請求的 URI 中時,推薦採取QUERY方式。
例如,雖然這是一個常見且可互操作的查詢:
GET /feed?q=foo&limit=10&sort=-published HTTP/1.1 |
如果查詢引數擴充套件到幾千位元組或更多的資料,它可能不會正常執行,因為許多實現都限制了它們的大小。通常,這些限制是無法提前知道或發現的,因為請求可能會透過許多不協調的系統。此外,在目標 URI 中表達一些資料是低效的,因為它需要被編碼為一個有效的 URI。
因此,很多使用HTTP POST 方法作為使用 GET 的替代方法來執行查詢,這種變體與 GET 具有相同的基本限制。
POST /feed HTTP/1.1 Host: example.org Content-Type: application/x-www-form-urlencoded q=foo&limit=10&sort=-published |
QUERY 方法提供了一種解決方案,它跨越了使用 GET 和 POST 之間的差距。與 POST 一樣,查詢操作的輸入在請求的有效負載內傳遞,而不是作為請求 URI 的一部分。然而,與 POST 不同的是,該方法是明確安全和冪等的,允許快取和自動重試等功能執行。
“Accept-Query”響應頭域可以被伺服器用來直接表示對 QUERY 方法的支援,同時標識可以使用的特定查詢格式媒體型別。
注:Query = 帶有一堆body內容的GET
冪等性= QUERY 請求不會改變目標資源的狀態
詳細點選標題
相關文章
- http請求中get和post方法的區別HTTP
- 映象規範檢測工具釋出
- SAP官方釋出的ABAP程式設計規範程式設計
- WeakMap get() 方法
- Map get() 方法
- URLSearchParams get() 方法
- HTTP 規範中的那些暗坑HTTP
- web前端介面切圖命名規範方法Web前端
- springdatajpa 中get××方法與find××方法的區別Spring
- Reflect.get() 方法
- iOS開發規範篇:清晰的初始化方法iOS
- CSS 註釋規範CSS
- JavaScript 註釋規範JavaScript
- golang 註釋規範Golang
- 介面自動化測試框架--http請求的get、post方法的實現框架HTTP
- 使用request庫的get方法發起GET請求
- JavaScript中發出HTTP請求最常用的方法JavaScriptHTTP
- Proxy handler.get() 方法
- Sanic get() 方法/函式函式
- 快速生成get、set方法
- get方式傳參的以post方法傳的解決方法
- http params規範中,允許一個引數多次出現嗎?HTTP
- 歐洲AI規範先行,值得肯定與借鑑 — 我看歐盟釋出AI道德規範AI
- 從使用到原理,實現符合Promise A+規範的Promise方法Promise
- 例2.9 字典的get()方法使用示例
- Spring Data JPA 在 @Query 中使用投影的方法Spring
- Python探析get和post方法Python
- jQuery – AJAX get() 和 post() 方法jQuery
- HTML 程式碼註釋規範HTML
- 【IDL】IDL程式釋出方法總結
- Java RPC 框架 Solon 1.3.1 釋出,推出Cloud介面與配置規範JavaRPC框架Cloud
- Android SQL資料庫查詢方法 query( )AndroidSQL資料庫
- 關於 Google 釋出的 JS 程式碼規範,你需要了解什麼?GoJS
- Neuron 2.1.0 釋出:支援 Sparkplug B 規範,更完善的工業協議支援Spark協議
- java反射呼叫set和get方法的通用類Java反射
- 果粉必看!新的iMac 2020釋出日期,價格和規格Mac
- CSS新規範:樣式查詢CSS
- 解析HTTP協議六種請求方法,get,head,put,delete,post有什麼區別HTTP協議delete