1

Request类型为请求方法和请求版本提供访问器,但不为两者之间的位提供访问器。

因此,如果我有以下要求:

GET http://www.example.org/index.html HTTP/1.1

我想要http://www.example.org/index.html介于两者之间

向代理发出请求时,RFC7230 第 5.3.2 节允许这样做。第 5.4 节说,Host如果请求在absolute-form. 这对我来说似乎已经足够好了,我不知道如果客户端行为不正确并发送与absolute-formURI 不同的 Host 标头,WAI 是否会正确处理此问题。

或者,如果这是不可能的:我想问一下 Haskell 中是否有比 WAI 更底层的 HTTP 库?

4

1 回答 1

0

访问器rawPathInfo方法将提供此功能。有关详细信息,请参阅https://hackage.haskell.org/package/wai-3.2.2.1/docs/Network-Wai.html#v:rawPathInfo

如果你也想要查询字符串,它可以通过rawQueryString访问器获得。

至于主机,HTTP 请求通常看起来不像您的示例(HTTP/1.1 客户端只有在连接到代理而不是连接到目标 Web 服务器时才会看起来像这样)。相反,它们通常看起来像这样:

GET /index.html HTTP/1.1
Host: www.example.org

如果您也想要http://www.example.org,那么您必须自己根据主机和协议信息重建它。

于 2019-09-15T17:21:57.743 回答