国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Go HTTP GET 請求可以發送 body 嗎

開發 前端
在 GET 類型的請求里使用 body 是一個沒有定義的語義。如果在 GET 請求的 body 里傳遞參數可能會被某些實現方拒絕該請求。

大家好,我是煎魚。

前段時間遇到一個朋友,他跟我說他們在開發一個 Go 項目時,遇到了一個爭議點,說來也好理解。WEB UI 端選擇 GET、POST 類型時,程序是否要區分所傳遞的值(例如:Body),還是不管是什么類型都傳。

圖片圖片

一派認為無所謂,反正都能傳。又沒限制。

一派認為規范如此,不應該傳。應該針對 HTTP POST 類型,使用 POST 請求的 body 來傳遞參數。在 GET 請求里使用 URI 來進行參數傳遞。

看著似乎都有各自的道理,僵持不下。

RFC7231 怎么說

要看互聯網協議的相關標準,必然是 RFC 了。首先看看 RFC7231[1] 中的 4.3.1 小節是怎么說的。

如下摘抄:

A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request.

大概意思:在 GET 類型的請求里使用 body 是一個沒有定義的語義。如果在 GET 請求的 body 里傳遞參數可能會被某些實現方拒絕該請求。

也就是這個混著傳的行為并不符合 RFC 規范,至少官方是不推薦不鼓勵這樣的使用方式。但并沒有禁止這個行為。

記住這個結論。接下來我們進行測試。

程序支持程度

我們起一個 HTTP Sever 用于測試和驗證,看看在具體的編程語言的實現中是否可以支持。

如下 Go 代碼:

func hello(w http.ResponseWriter, req *http.Request) {
 b, _ := io.ReadAll(req.Body)
 w.Write(b)
}

func main() {
 http.HandleFunc("/hello_world", hello)
 http.ListenAndServe(":7001", nil)
}

在命令行執行 CURL 進行測試:

$ curl -X GET localhost:7001/hello_world -d '煎魚'
煎魚

看來在 Go 里面是可以的。

那既然 RFC 沒有禁止,Go 的測試也正常。看來就是只是口頭上的 “不鼓勵” 和 “不推薦” 嗎?

那別的場景也都支持嗎?

實際上也不是,例如:XMLHttpRequest 規范[2] 中有明確提到:

圖片圖片

如果請求方法為 GET 或 HEAD,body 參數會被忽略。

總結

在 GET 類型里傳 body 參數,從 RFC7231 標準來定義。官方是不推薦、不鼓勵這么去使用的。

但是呢,這是一個沒有明確禁止的事。

而從各個 HTTP 實現的客戶端來看,一開始還是有不少不支持的。但掰扯了好多年后,大多數都支持了。(畢竟用戶的訴求也是很重要的)

甚至印象最深的,ES 直接就在 GET 請求里傳了 body:

圖片圖片

對應的 CURL:

curl -X GET "localhost:9200/my-index-000001/_search?from=40&size=20&pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "term": {
      "user.id": "kimchy"
    }
  }
}
'

但也有不支持的,例如在 Chrome 瀏覽器下測試 XMLHttpRequest、Fetch 對此都會忽略或出現報錯。

圖片圖片

Fetch GET body

結論上來講,GET 請求能不能傳 body,這是一個 RFC 規范不鼓勵。但是實現方大部分都支持的一個情況。

企業和團隊內部的話,建議達成研發規范的共識即可。不過我個人而言,都會區分開。

參考資料

[1]RFC7231: https://datatracker.ietf.org/doc/pdf/rfc7231.pdf

[2]XMLHttpRequest 規范: https://xhr.spec.whatwg.org

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2015-08-06 13:33:22

PHPGETPOST

2015-10-27 11:06:51

PHPGETPOST

2010-06-29 13:18:31

HTTP協議

2024-07-05 17:49:29

2022-03-24 14:49:57

HTTP前端

2021-02-09 21:49:51

Python參數Get

2011-08-03 14:33:54

IOS4.2 HTTP 請求

2021-08-26 06:58:14

Http請求url

2021-03-06 09:54:22

PythonHTTP請求頭

2015-01-05 10:07:24

HTTPGETPOST

2018-07-24 13:01:52

前端優化前端性能瀏覽器

2023-03-06 08:37:58

JavaNIO

2021-09-05 18:25:30

Go命令倉庫

2022-01-09 17:38:32

goHttpClient 集群

2022-07-03 17:55:53

HTTP頁面瀏覽器

2020-04-28 11:00:45

Go開源庫HTTP

2022-12-09 08:19:43

HTTP協議MIME

2018-01-04 09:46:48

PHPHTTP

2025-07-21 06:10:00

瀏覽器HTTPJavaScript

2023-12-04 07:07:36

HTTP請求
點贊
收藏

51CTO技術棧公眾號

中文字幕欧美日韩精品| 亚洲国产精品高清久久久| 久久天天综合| 欧美成人在线直播| 国产精品久久久久7777| 黄色av一区| 欧美高清视频在线播放| 日本成人片在线| 日韩欧美国产黄色| 曰本三级在线| 亚洲情趣在线观看| 免费一区二区三区在在线视频| 色三级在线观看| 精品一区二区三区免费| 五月天亚洲综合情| 国产精品免费久久| 亚洲天堂手机| 99reav在线| 欧美精品在线观看91| 菠萝菠萝蜜在线观看| 国产精品一区二区久久久久| 精品久久精品| 欧美大片欧美激情性色a∨久久| 夜夜操天天操亚洲| 狠狠色伊人亚洲综合网站l| 亚洲成人性视频| 日本在线成人| 91久热免费在线视频| 免费高清视频日韩| 亚洲一区中文日韩| 91精品专区| 亚洲女人天堂网| 久久伊人久久| 91九色极品视频| 青草av.久久免费一区| 成人免费性视频| 久久精品人人做人人爽97| bdsm精品捆绑chinese| 精品国产乱码久久久久久1区2区| 欧美日韩免费看片| 91欧美日韩一区| 久草热8精品视频在线观看| 最近中文字幕一区二区| 在线免费观看日本一区| 国产精品4hu.www| 国产va免费精品高清在线| 国产精选一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美性猛交7777777| 国产aaa免费视频| 亚洲综合视频在线| 超碰成人av| 日本精品va在线观看| 老司机免费视频一区二区三区| 国产免费福利网站| 国产一区二区三区三区在线观看 | 国产呦系列欧美呦日韩呦| 国产成人综合视频| 在线小视频网址| 国产亚洲激情在线| 99视频精品免费观看| 欧美性大战久久久久xxx | 欧美亚洲国产日韩2020| 六月婷婷一区| а天堂8中文最新版在线官网| 今天的高清视频免费播放成人| 91亚洲午夜在线| 国产精品私人自拍| 91亚洲精品在看在线观看高清| 欧美在线一级视频| 日韩伦理在线一区| 欧美大胆一级视频| 国产一区二区三区不卡av| 亚洲国产精品视频一区| 久久精品国产v日韩v亚洲| 欧美高清视频在线播放| 视频欧美一区| 草草草视频在线观看| 日韩欧美国产一区二区在线播放| 91精品啪在线观看国产18| av黄色免费| 九九热在线精品视频| 日本欧美韩国一区三区| 欧美91在线|欧美| 成品人视频ww入口| 91精品国产色综合久久不卡98| 亚洲视频在线一区| 欧美日韩三级| 久久久国产精品视频| 久久精品噜噜噜成人av农村| 2018av在线| 亚洲爆乳无码专区| 午夜精品久久久久久久久久久久久| 国产亚洲欧美日韩在线一区| 亚洲天堂av资源在线观看| 黄大色黄女片18第一次| 亚洲自拍偷拍色图| 精品久久人人做人人爱| 中文字幕在线不卡视频| 午夜天堂精品久久久久| 在线看欧美视频| 人妻有码中文字幕| 欧美二级三级| 欧美特级www| 香蕉国产精品| 国产香蕉久久| 黄色直播在线| 欧美制服第一页| 在线国产电影不卡| 欧美午夜不卡| 男人的天堂日韩| 在线中文字幕日韩| 欧美视频不卡中文| av网站在线免费观看| 亚州av电影免费在线观看| 一区二区三区视频国产日韩 | 欧美成人三级电影在线| 久久久久久黄| 国产福利91精品| 欧美亚洲国产一区| 亚洲狼人综合| 性xxxxfreexxxxx欧美丶| 97香蕉久久| 黄网站免费入口| 波多野结衣av一区二区全免费观看| 国产精品久久久久久婷婷天堂| 欧美日韩1234| 亚洲猫色日本管| 91社区在线播放| 久久精品青草| 亚洲免费看片| 国产精品蜜臀| av网站无病毒在线| 一个人看的www一区| 一区二区三区 欧美| 三年中文高清在线观看第6集| 91精品国产综合久久香蕉的用户体验| 欧美在线视频观看| 成人国产精品av| 中文字幕日韩免费视频| 日韩亚洲欧美中文三级| 亚洲一区二区三区四区中文字幕| 欧美色欧美亚洲高清在线视频| 亚洲日韩欧美一区二区在线| 99精品国产九九国产精品| 午夜电影福利网| 青青青在线视频免费观看| 亚洲日本一区二区三区在线观看| 色呦呦网站在线观看| 成久久久网站| 国产黄色一级电影| 欧美激情www| 亚洲视频综合| 激情开心成人网| 色网在线视频| 浴室偷拍美女洗澡456在线| 4388成人网| 精品国产污污免费网站入口 | 粉嫩欧美一区二区三区| 欧美不卡在线一区二区三区| 久久久精品国产亚洲| 欧美日韩亚洲91| 国产69精品久久777的优势| 日韩欧美一区二区三区在线视频| 男人av在线播放| 黄页大全在线免费观看| 日本成人在线不卡| 91在线观看免费观看 | 极品国产人妖chinesets亚洲人妖| 福利视频在线导航| 成年人小视频网站| 精品国产91亚洲一区二区三区www 精品国产_亚洲人成在线 | 你懂的免费在线观看视频网站| 宅男av一区二区三区| 国产精品香蕉国产| 最近2019年好看中文字幕视频| 欧美色图一区二区三区| 国产精品久线在线观看| 激情都市一区二区| 欧美日韩mv| 免费观看久久av| 成人看片毛片免费播放器| 日本高清在线观看wwwww色| jizzjizzjizz亚洲女| 麻豆传媒网站在线观看| 超碰在线97av| 欧美一区在线直播| 中文字幕亚洲自拍| 欧美va亚洲va| 在线观看免费一区| 一区二区三区四区高清精品免费观看| 国产精品69毛片高清亚洲| 一区二区日韩免费看| 色综合天天爱| 丝袜美腿一区二区三区动态图| 亚洲四虎影院| 日本不卡免费高清视频在线| 91ph在线| 思思99re6国产在线播放| 天堂在线中文资源|