弄乱Servlet中的响应头

时间:2014-08-03 13:04:40

标签: java http servlets header

在Servlet中会发生什么情况如果开发人员弄乱了标题。

让我们说客户端的HTTP版本是1.0并且在 请求不存在连接头,
在我的servlet中,我可以执行以下操作:

resp.setHeader("connection","keep-alive");

我也可以将内容长度设置为特定值
然后发送更少或更多的数据 比指定值

我确信其他可能导致类似问题的情况会出现问题。同样。

如何处理这些问题?

2 个答案:

答案 0 :(得分:0)

这一切都在客户端处理,并且取决于浏览器,并且各不相同。

但我认为连接头的描述情况将非常简单: HTTP 1 / .0的浏览器不支持keep-alive连接,因此只需关闭每个请求的连接。

答案 1 :(得分:0)

一般来说,这是不可预测的。在大多数情况下,相关规范并未说明应该发生什么。即使他们这样做,也不能保证相应的服务器端(或客户端)将执行指定的...或者规范建议。

  

我们说客户端的HTTP版本是1.0,并且在请求中没有连接头,在我的servlet中我可以resp.setHeader("connection","keep-alive");

客户端可能应该忽略connection响应。

  

我也可以将内容长度设置为特定值,然后发送的数据少于或多于指定值。

我记得在Servlet规范中看到,如果webapp写入的字节多于content-length,则服务器端框架应该自动关闭响应。但是如果webapp写得少,那么服务器端就无法做到。客户只需要处理这个问题。这种情况与服务器崩溃的情况无法区分。

  

如何处理这些问题?

通常依赖于实现。