header/writesubset的惯用用法是什么



go的 http.Header具有这两种方法:

  • Header.Write(io.Writer)
  • Header.WriteSubset(io.Writer, exclude map[string]bool)

我看到标准库在编写请求标题时使用这些方法,但是为什么它们是公开/什么是标准用例?

通常,您需要导出其他一些软件包需要调用的内容。有时这可能会变得相当低。

Header.WriteSubset()在编写HTTP代理时很有用。HTTP规格说某些标头是逐个跳跃的标题,因此接收它们的代理不得将其传递给下一个跳跃。相比之下,始终传递端到端的标题。

可能还有其他用途。httputil.DumpRequest()使用WriteSubset()从其输出中排除一些无关的标头。

导出Header.Write()不太明显。尽管GO标准库将其用于实现其CGI和FastCGI服务器。

最新更新