我有一个http 2处理程序,它接收http 2请求。现在我需要访问请求中的:authority pseudoheader字段。如何去做?我知道以下几个选项:
1.劫持http连接->但我不想失去http层的功能,这真的是一个矫枉过正。所有我需要的只是伪头字段的值。
1.获取底层的tcp conn而不劫持它并从中读取帧。->现在,如何做到这一点?一种方法可能是在http.Server.ConnState中获取tcp conn(但我认为这并不能保证。我经常发现连接关闭,并且在任何情况下我都觉得这非常麻烦)。
有没有办法,只提取伪域?
2条答案
按热度按时间hpcdzsge1#
在http.Request中的Host在某种意义上是这样做的,它将:authority读入r.Host字段。2但是其他字段很难掌握。
zlhcx6iw2#
下面是从
http.Request
字段到http2伪头的Map:字符串
您可以在以下位置的源代码中找到相关代码:
https://ref.gotd.dev/src/net/http/h2_bundle.go.html#line-5738https://ref.gotd.dev/src/net/http/h2_bundle.go.html#line-5803