繁体   English   中英

未修改WildFly 8.2和304

[英]WildFly 8.2 and 304 Not Modified

RFC 2616-“所有1xx(信息性),204(无内容)和304(未修改)响应均不得包含消息正文。”

从JBoss 5.1升级到WildFly 8.2后,负载均衡器(用Netty 4.0编写)损坏了。

原因-WildFly在304错误上发送带有消息正文的响应:

<html><head><title>Error</title></head><body>Not Modified</body></html>

根据RFC 2616的Netty仅读取304的标头,但不忽略0的Content-Length和套接字中的左主体,因此在从同一通道进行第二次读取时会出错。

我可以通过将response.sendError(304)更改为response.setStatus(304)来解决此问题,但想知道,是否可以将WildFly配置为不在304 Not Modified错误上发送消息正文?

从技术上讲,2xx和3xx 不是错误。 仅在4xx和5xx范围内的响应代码是错误(分别为客户端错误和服务器错误)。 因此,我认为setStatus确实是正确的。

当您告诉服务器您正在发送错误但不包括正文时,服务器本身就包含一个错误。 这是因为错误(4xx和5xx)具有以下要求:

除响应HEAD请求外,服务器应发送一个包含错误情况说明以及它是暂时还是永久情况的表示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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