允许逐跳标头Django

Tua*_*hau 3 python django wsgi chunked

我正在用Django 1.6和Python 3.4编写一个演示代理服务器.当响应具有此标头时,我收到错误:

Transfer-Encoding=chunked
Run Code Online (Sandbox Code Playgroud)

错误是:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/wsgiref/handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
    return self.application(environ, start_response)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/handlers/wsgi.py", line 214, in __call__
    start_response(force_str(status), response_headers)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/wsgiref/handlers.py", line 236, in start_response
    assert not is_hop_by_hop(name),"Hop-by-hop headers not allowed"
AssertionError: Hop-by-hop headers not allowed
Run Code Online (Sandbox Code Playgroud)

我发现了这个问题:在Django代理中间件中允许逐跳头,但看起来像Django 1.6没有basehttp._hop_headers.

我运行服务器python3.4 manage.py runserver.

请帮忙

小智 7

以下HTTP/1.1标头是wsgiref不允许的逐跳标头:

  - Connection
  - Keep-Alive
  - Proxy-Authenticate
  - Proxy-Authorization
  - TE
  - Trailers
  - Transfer-Encoding
  - Upgrade
Run Code Online (Sandbox Code Playgroud)

看到:

  1. 超文本传输​​协议 - HTTP/1.1
  2. wsgiref:util.py,handlers.py的代码