日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

HTTP QUERY method,前端傳SQL不再是笑話

來源: 責編: 時間:2024-06-11 17:49:50 170觀看
導讀上周筆者在 github 沖浪的時候發現了這樣一個 issues!說起 HTTP method 大家最熟悉的就是 GET 和 POST,今天我們一起來聊聊這個 HTTP QUERY method。圖片一、介紹HTTP QUERY 請求方法,這是一種安全、冪等的請求方式,它可

上周筆者在 github 沖浪的時候發現了這樣一個 issues!說起 HTTP method 大家最熟悉的就是 GET 和 POST,今天我們一起來聊聊這個 HTTP QUERY method。05S28資訊網——每日最新資訊28at.com

圖片圖片05S28資訊網——每日最新資訊28at.com

一、介紹

HTTP QUERY 請求方法,這是一種安全、冪等的請求方式,它可包含請求內容。 GET 請求中傳達的數據量過大,無法編碼到請求的 URI 中時,通常需要使用 QUERY 方法。例如,雖然下面的查詢是常見且可互操作的:05S28資訊網——每日最新資訊28at.com

GET /feed?q=foo&limit=10&sort=-published HTTP/1.1Host: example.org

但如果查詢參數擴展到幾千字節或更多,可能就不行了,因為許多實現對它們的大小有限制。作為使用GET的替代方案,許多實現使用 HTTP POST 方法執行查詢,如下例所示。在這種情況下,搜索操作的輸入參數在請求有效載荷中傳遞,而不是使用請求URI。05S28資訊網——每日最新資訊28at.com

一個典型的使用HTTP POST進行請求的示例:

POST /feed HTTP/1.1Host: example.orgContent-Type: application/x-www-form-urlencodedq=foo&limit=10&sort=-published

然而,這種變化與GET一樣,存在同樣的基本限制,即在沒有特定知識的情況下,不容易明顯地看出正在執行安全、冪等的查詢。05S28資訊網——每日最新資訊28at.com

QUERY方法提供了一個介于使用GET和POST之間的解決方案。與POST一樣,查詢操作的輸入在請求的有效載荷中傳遞,而不是作為請求URI的一部分。然而,與POST不同,該方法明確是安全的和冪等的,允許緩存和自動重試等功能正常工作。05S28資訊網——每日最新資訊28at.com

二、QUERY method

QUERY方法用于啟動服務器端查詢。與HTTP GET方法不同,GET方法請求服務器返回由目標URI標識的資源的表示,QUERY方法用于請求服務器對有效請求URI范圍內的某些數據集執行查詢操作(由請求有效載荷描述)。對QUERY的響應返回的有效載荷不能假定是有效請求URI標識的資源的表示。05S28資訊網——每日最新資訊28at.com

請求的有效載荷定義了查詢。實現可以使用任何具有適當查詢語義的內容類型與QUERY方法。05S28資訊網——每日最新資訊28at.com

QUERY請求對于請求URI標識的資源是安全和冪等的。也就是說,QUERY請求不會改變目標資源的狀態。然而,在處理QUERY請求時,可以預期服務器將分配計算和內存資源,甚至可能創建額外的HTTP資源,通過這些資源可以檢索響應。05S28資訊網——每日最新資訊28at.com

對QUERY請求的成功響應預計將提供有關操作最終結果的某些指示。例如,一個成功的查詢如果沒有結果,可以用204 No Content響應來表示。如果響應包括內容,預計它將描述操作的結果。在某些情況下,服務器可能選擇通過返回一個帶有Location頭字段的3xx重定向來間接響應QUERY請求,指定一個替代的請求URI,可以使用HTTP GET請求從該URI檢索結果。第4節展示了各種非規范的成功QUERY響應示例。05S28資訊網——每日最新資訊28at.com

如果請求消息包括If-Modified-Since、If-Unmodified-Since、If-Match、If-None-Match或If-Range頭字段,則QUERY方法的語義變為“條件QUERY”。條件QUERY請求僅在條件頭字段(們)描述的情況下執行查詢。然而,需要注意的是,這些條件是針對目標資源本身的狀態進行評估,而不是搜索操作收集的結果。05S28資訊網——每日最新資訊28at.com

2.1. 緩存

QUERY方法的響應是可以緩存的;緩存可以根據 HTTP-CACHING 使用它來滿足隨后的QUERY請求。05S28資訊網——每日最新資訊28at.com

查詢的緩存鍵必須包含請求內容。在這樣做時,緩存應首先規范化請求內容,以去除語義上不重要的差異,從而提高緩存效率:05S28資訊網——每日最新資訊28at.com

  • 移除內容編碼
  • 根據請求的Content-Type字段中的任何媒體類型后綴(例如,“+json”)基于格式約定進行規范化
  • 根據請求的Content-Type字段指示的內容本身的語義進行規范化

請注意,任何此類規范化僅用于生成緩存鍵;它不會更改請求本身。05S28資訊網——每日最新資訊28at.com

2.2. “Accept-Query”頭字段

“Accept-Query”響應頭字段可以由服務器使用,以直接信號支持QUERY方法,同時識別可以使用的特定查詢格式媒體類型。05S28資訊網——每日最新資訊28at.com

Accept-Query = 1#media-type

Accept-Query頭字段指定了由[RFCHTTP]第8.3.1節定義的媒體類型(及可選參數)的逗號分隔列表。05S28資訊網——每日最新資訊28at.com

Accept-Query頭字段列出的類型順序無關緊要。05S28資訊網——每日最新資訊28at.com

三、 示例

本節中的非規范示例使用基于SQL的簡單、假設的純文本查詢語法,并以逗號分隔值的形式返回結果。這只是為了說明目的。實現可以在請求和響應中自由使用任何格式。05S28資訊網——每日最新資訊28at.com

3.1. 直接響應的簡單QUERY

具有直接響應的簡單查詢:05S28資訊網——每日最新資訊28at.com

QUERY /contacts HTTP/1.1Host: example.orgContent-Type: example/queryAccept: text/csvselect surname, givenname, email limit 10

響應:05S28資訊網——每日最新資訊28at.com

HTTP/1.1 200 OKContent-Type: text/csvsurname, givenname, emailSmith, John, john.smith@example.orgJones, Sally, sally.jones@example.comDubois, Camille, camille.dubois@example.net

3.2. 間接響應的簡單QUERY(303 See Other)

具有間接響應(303 See Other)的簡單查詢:05S28資訊網——每日最新資訊28at.com

QUERY /contacts HTTP/1.1Host: example.orgContent-Type: example/queryAccept: text/csvselect surname, givenname, email limit 10

響應:05S28資訊網——每日最新資訊28at.com

HTTP/1.1 303 See OtherLocation: http://example.org/contacts/query123

獲取查詢響應:05S28資訊網——每日最新資訊28at.com

GET /contacts/query123 HTTP/1.1Host: example.org

響應:05S28資訊網——每日最新資訊28at.com

HTTP/1.1 200 OKContent-Type: text/csvsurname, givenname, emailSmith, John, john.smith@example.orgJones, Sally, sally.jones@example.comDubois, Camille, camille.dubois@example.net

五、總結

HTTP QUERY method 是個非常不錯的提案,期待各個 http 服務端和客戶端能夠早日實現,服務端數據請求接口再也不用去糾結該使用 GET 還是 POST。對于示例中 QUERY 方法的類 sql 傳參,筆者認為可能不會這樣實現。但是還是比較期待能有數據庫廠商能夠提供類 http QUERY 的 sql api。05S28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-93084-0.htmlHTTP QUERY method,前端傳SQL不再是笑話

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用 Spring Boot 結合斷點續傳技術和自動重連機制實現考試系統網絡不穩定性的應對策略

下一篇: React Query 是做什么的?你知道嗎?

標簽:
  • 熱門焦點
  • 6月安卓手機性價比榜:Note 12 Turbo斷層式碾壓

    6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產品也出現了歷史低價,那么各個價位段的產品性價比
  • Raft算法:保障分布式系統共識的穩健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統
  • 量化指標是與非:挽救被量化指標扼殺的技術團隊

    作者 | 劉新翠整理 | 徐杰承本文整理自快狗打車技術總監劉新翠在WOT2023大會上的主題分享,更多精彩內容及現場PPT,請關注51CTO技術棧公眾號,發消息【WOT2023PPT】即可直接領取
  • 自動化在DevOps中的力量:簡化軟件開發和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團隊可以實現以下目標:消除手動和重復性任務。簡化流程。在整個軟件開發生命周期中實現更
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • iQOO Neo8 Pro即將開售:到手價3099元起 安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • 英特爾Xe HPG游戲顯卡:擁有512EU,單風扇版本

    據10 月 30 日外媒 TheVerge 消息報道,英特爾 Xe HPG Arc Alchemist 的正面實被曝光,不僅擁有 512 EU 版顯卡,還擁有 128EU 的單風扇版本。另外,這款顯卡 PCB
  • 利用職權私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據外媒援引知情人士表示,過去一年時間內,Facebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內部系統以不當方式重置用戶帳號,其
Top 主站蜘蛛池模板: 中牟县| 兴仁县| 西畴县| 宜都市| 上饶县| 曲靖市| 安康市| 江山市| 庄河市| 赤水市| 肥西县| 昭觉县| 宁蒗| 萨迦县| 马公市| 永定县| 高碑店市| 宝山区| 龙游县| 文登市| 宿州市| 长葛市| 阜阳市| 大冶市| 盘锦市| 陈巴尔虎旗| 依安县| 嘉兴市| 襄城县| 瑞丽市| 祁东县| 三江| 剑川县| 桑植县| 菏泽市| 察哈| 琼结县| 长乐市| 平和县| 金门县| 阿合奇县|