我试图测试一个服务器,看看它是否按照下面的定义运行,为此,我需要从上游服务器构造并向网关服务器发送无效的响应。HTTP规范说明了有关状态代码502 -坏网关的如下内容。
502 (坏网关)状态代码指示服务器在充当网关或代理时,在试图满足请求时从它访问的入站服务器接收无效响应。
但是,什么才是无效的反应呢?非标准响应代码(例如,一些随机数,如6789)是否算为无效响应?还是带有无效HTTP版本的响应?
502 HTTP Status Code说,不完整的头和响应体可能导致502个错误。服务器如何确定标头或主体是否不完整?更重要的是,是否有可能以编程方式创建这样的响应(我正在使用Java)?
发布于 2016-03-10 11:15:00
我在HTTP中找到了以下内容(RFC7230 3.3.3节)。
如果一条消息是在没有传输编码的情况下接收的,并且多个内容长度标题字段具有不同的字段值,或者单个内容长度标头字段的值无效,那么消息帧是无效的,收件人必须将其视为不可恢复的错误。如果这是请求消息,服务器必须使用400 (坏请求)状态代码进行响应,然后关闭连接。如果这是代理接收到的响应消息,则代理必须关闭到服务器的连接,丢弃接收的响应,并向客户端发送502 (坏网关)响应。如果这是用户代理接收到的响应消息,则用户代理必须关闭到服务器的连接并丢弃接收到的响应。
除此之外,我还注意到,当上游服务器停机时,Nginx作为反向代理/负载均衡器返回502。
https://stackoverflow.com/questions/35660464
复制相似问题