2016-09-04 9 views
2

RoundTripでリクエストを変更しないのはなぜですか? http.RequestはRoundTripper(http.Transport例えば)によって変更されてしまった場合はどうなりRoundTripでリクエストを変更しないのはなぜですか?

https://golang.org/src/net/http/client.go#L103

+1

それは実装する方法の仕様ではありませんか? – phoet

+3

Aehm、RoundTripperのユーザーがこの動作に依存している可能性がありますか? – Volker

答えて

1

awnserは、サーバーが要求を取得し、複数のゴルーチンを起動した場合、すべての要求が同じ入力で動作することが保証されなければならないhttps://golang.org/src/net/http/client.go#L89

A RoundTripper must be safe for concurrent use by multiple goroutines. 

インタフェースコメントに記載されています。 RoundTripperがリクエストを変更した場合、すでに収集されたデータを無意味にすることがあります(これは気付かないかもしれません)

関連する問題