在Servlet中会发生什么情况如果开发人员弄乱了标题。
让我们说客户端的HTTP版本是1.0并且在
请求不存在连接头,
在我的servlet中,我可以执行以下操作:
resp.setHeader("connection","keep-alive");
我也可以将内容长度设置为特定值
然后发送更少或更多的数据
比指定值
我确信其他可能导致类似问题的情况会出现问题。同样。
如何处理这些问题?
答案 0 :(得分:0)
这一切都在客户端处理,并且取决于浏览器,并且各不相同。
但我认为连接头的描述情况将非常简单: HTTP 1 / .0的浏览器不支持keep-alive连接,因此只需关闭每个请求的连接。
答案 1 :(得分:0)
一般来说,这是不可预测的。在大多数情况下,相关规范并未说明应该发生什么。即使他们这样做,也不能保证相应的服务器端(或客户端)将执行指定的...或者规范建议。
我们说客户端的HTTP版本是1.0,并且在请求中没有连接头,在我的servlet中我可以
resp.setHeader("connection","keep-alive");
客户端可能应该忽略connection
响应。
我也可以将内容长度设置为特定值,然后发送的数据少于或多于指定值。
我记得在Servlet规范中看到,如果webapp写入的字节多于content-length
,则服务器端框架应该自动关闭响应。但是如果webapp写得少,那么服务器端就无法做到。客户只需要处理这个问题。这种情况与服务器崩溃的情况无法区分。
如何处理这些问题?
通常依赖于实现。