是否可以使用Java Servlet API(HttpServletResponse)处理整个请求后发送“100 Continue”HTTP状态代码,然后再发送一些其他状态代码?
虽然API似乎不支持它,但我找不到任何明确的“否”答案。
我假设你的意思是“100继续”。
答案是:不,你不能(至少不是它的意图,如provisional response)。通常,servlet引擎会在请求需要时自动执行。当然,这使得servlet无法阻止发送100状态 - 这个问题是Servlet API中的一个已知问题,并且已经知道现在感觉像是eons。
我知道Jetty will wait until getReader() or getInputStream() is called在它发送100之前。我认为这是你正在寻找的行为。我不知道Tomcat做了什么。
您是否要求在收到完整请求之前如何发送状态代码,以便因缺少标题字段而中断正在进行的请求?似乎用标准servlet是不可能的。
你用的是什么服务器?
某些服务器的servlet扩展可能允许这样做,例如一旦标头可供处理,Tomcat's Comet servlet可能会发送EventType.BEGIN,这可能允许您中断没有正确身份验证的PUT。
或者,您的服务器可能有一个插件来拒绝基于标头的请求。
你的意思是状态码100吗?
API确实支持发送SC_CONTINUE。