繁体   English   中英

Vert.x GET api 对某些流量返回 400 Bad Request

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM