删除 Yesod/Warp 中的服务器响应 header
Remove the Server response header in Yesod/Warp
如何删除 Yesod 中的 Server
HTTP 响应 header?我找到了 code that's responsible for setting that header,但我不知道下一步该怎么做。我知道我可以使用 addHeader "Server" ""
将 header 值替换为空字符串,但我更愿意将其完全删除。
您必须在链接的函数内部调用方法。该函数将 "The Date and Server header is added if not exist in HTTP response header" 因此如果您不想要该行为,则需要重新实现它。
这就是为什么人们总是说要保持代码模块化和函数小;这个函数对于您的用例来说太大了,并且没有特定的更小的函数可以完全满足您的需求(否则它会被这个函数调用!)
我在 GitHub Warp 存储库上制作了 an issue,他们将其更改为当服务器名称为空时,不会发送 "Server" header。因此,解决方案是使用 setServerName ""
将服务器名称设置为空字符串。在我的例子中,我必须将它添加到 Application.hs
中的 warpSettings
函数中。请注意,您必须使用包含修复程序的 Warp 版本(截至 2017 年 5 月 3 日,它尚未发布,但您可以直接从 GitHub 中提取它)。
如何删除 Yesod 中的 Server
HTTP 响应 header?我找到了 code that's responsible for setting that header,但我不知道下一步该怎么做。我知道我可以使用 addHeader "Server" ""
将 header 值替换为空字符串,但我更愿意将其完全删除。
您必须在链接的函数内部调用方法。该函数将 "The Date and Server header is added if not exist in HTTP response header" 因此如果您不想要该行为,则需要重新实现它。
这就是为什么人们总是说要保持代码模块化和函数小;这个函数对于您的用例来说太大了,并且没有特定的更小的函数可以完全满足您的需求(否则它会被这个函数调用!)
我在 GitHub Warp 存储库上制作了 an issue,他们将其更改为当服务器名称为空时,不会发送 "Server" header。因此,解决方案是使用 setServerName ""
将服务器名称设置为空字符串。在我的例子中,我必须将它添加到 Application.hs
中的 warpSettings
函数中。请注意,您必须使用包含修复程序的 Warp 版本(截至 2017 年 5 月 3 日,它尚未发布,但您可以直接从 GitHub 中提取它)。