[英]Vert.x GET api returns 400 Bad Request for some traffic
我们有一个 Vert.x 应用程序,我们在其中托管了几个 HTTP GET 和 POST api。 在生产测试时,我们面临一个问题,即对客户端的一个 GET api 响应是 400 - 错误请求。
这个 api 在大多数情况下都可以工作,但对于少数客户来说,它会给出 400 - 错误请求。
我们已经验证客户端正确发送请求但得到 400 作为响应。
但是在运行应用程序的服务器上,我们找不到任何日志。
在 Handler 的第一行有一条日志语句,它没有为 400 - Bad Request case 打印,并且正在为所有成功的请求打印它。
经过大量调试后,我们发现请求正在到达 vertx 应用程序,并且路由器正在拒绝请求,并显示 400 - Bad Request。
默认情况下,vertx 接受总 Header 大小为 8kb 的请求。 在某些情况下,标题中的 Cookies 的大小超过 8KB,因此出现错误。
我们可以覆盖 HttpServerOptions 中的 Header 大小限制。 在那个问题解决之后。
vertx.createHttpServer
(new HttpServerOptions().setSsl(true)
.setMaxHeaderSize(32 * 1024)
.setTcpKeepAlive(true))
.requestHandler(router::accept)
.listen(config().getJsonObject("http").getInteger("port"), handler -> {
futureHttpServer.complete();
Logger.debug("httpservice deployed");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.