[英]Why do POST request in the Go http.Client not follow 301 redirects?
我正在使用Go構建測試工具。 該工具可以通過對端點執行POST請求來獲取特定的URL,該端點將返回帶有測試Location
的303。 有時,此位置本身也以301重定向,我也想遵循。
Test tool -> POST /get-url-to-test -> 303 Location: /other -> GET /other -> 301 Location: /new-other (stops here because initial request is POST)
正如我們在Go的源代碼(第241至257行)中所看到的那樣,似乎GET請求遵循301重定向,而不是POST請求: http : //golang.org/src/net/http/client.go
這是為什么? 這是HTTP規范的一部分嗎? 這是Go社區做出的決定嗎?
我問的原因是因為就我而言,我必須手動執行一個新的GET請求才能到達/other
重定向到的URL。
編輯1:之前我犯了一個錯誤:Go通過GET請求獲取了/other
資源。 但是由於返回了301並且初始請求是POST,所以Go停止了在301上的重定向。這似乎很奇怪。 我想念什么嗎?
編輯2:這可能是一個錯誤,我在Github上打開了一個問題: https : //github.com/golang/go/issues/9348
HTTP RFC 2616說:
10.3重定向3xx
此類狀態碼表示用戶代理需要采取進一步的措施才能滿足請求。 當且僅當第二個請求中使用的方法是GET或HEAD時,才可以由用戶代理執行所需的操作,而無需與用戶進行交互。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.