关闭。这个问题需要debugging details .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
1年前关闭。
Improve this question
我用这段代码在golang中运行了http服务器
// Setup HTTP server.
var server = &http.Server{
Addr: ":" + viper.GetString("SERVER_PORT"),
Handler: routes.Routers(),
MaxHeaderBytes: 1, // 1 byte
}
在这里,我将 MaxHeaderBytes 设置为 1 个字节,它工作正常,如果我传递了太多标题但无法记录此错误,我会收到 413 错误代码,甚至中间件也无法用于记录
最佳答案
我很难理解这个问题。您是否想以某种方式记录客户端的请求由于其 header 大于配置的限制而被拒绝的事实?
如果是,请查看 ErrorLog
和 ConnState
net/http.Server
的回调类型。
我不太明白你的意思
Even middleware is not working for logging
但是,如果您的意思是没有调用您安装的任何 HTTP 请求处理程序(在您的示例中由
routes.Routers()
返回的对象),这可以很容易地解释:只有在从观点net/http
机械。因此,如果您明确告诉服务器拒绝不符合某些条件的请求,则此类请求将永远不会被视为正确并到达用户定义的处理程序,因此您的“中间件”没有机会对其采取行动。
关于go - 如何在 golang 中记录 MaxHeaderBytes header 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62371546/