当请求包含完整URL而不是路径时,Tornado Server返回404

时间:2015-07-28 21:08:50

标签: python tornado

标准HTTP请求的请求行的结构如下:

GET /some/path HTTP/1.1

在" / some / path"初始化RequestHandler;它处理这些请求。

但是我的服务器正在接收URI路径包含主机域的一些请求:

GET http://example.com/some/path HTTP/1.1

虽然URI(也就是路径," / some / path")是相同的,但Tornado无法识别匹配路径并返回404.在搜索高低之后我仍然无法找到解决方法。

如何配置Tornado来处理这些请求?

1 个答案:

答案 0 :(得分:2)

Tornado目前不支持这种请求(#1036),并且没有简单的解决方法。

此样式的请求根据RFC 2616有效,但通常仅在连接到HTTP代理时使用。使用负载均衡器(如nginx 可以将这样的请求转换为更普遍支持的GET /some/path HTTP/1.1\r\nHost: example.com\r\n(我很少见到代理风格的请求;我'我不确定是不是因为我通常使用nginx或者其他因素在起作用。)