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服务器。