2012-05-21 26 views
2

我正在实现一个特殊用途的HTTP服务器,并且偶然发现了一个场景,我无法弄清楚RFC要求我做什么。客户不得发送带有正文的TRACE请求(参见第9.8节)。但是,如果客户端发送一个体相关的头在跟踪请求(即一个Content-Length或Transfer-Encoding头),我似乎对如何使服务器像两个选项:如果HTTP TRACE请求具有正文,该怎么办?

  1. 阅读违法正文并忽略它
  2. 将头文件与客户端一样处理对HEAD方法的响应,即作为关于尚未包含的主体的信息,并假设没有主体。

我没有看到任何有利于这两种解决方案的RFC。那么,我应该选哪个?我还没有看到另一种选择吗?

回答

1

您读取正文,然后忽略它或返回4xx状态码。见http://trac.tools.ietf.org/wg/httpbis/trac/ticket/19

+0

TRACE上的消息正文与GET上的消息正文不同 - RFC仅仅没有说明GET请求应该如何处理正文,但是明确指出TRACE请求不能有一个。 – Jules

+1

是的。这是一个客户端错误。但是如果你想保持连接打开,你需要消耗有效载荷。然后您可以忽略它,或发出客户端错误信号。 –

相关问题