python - 允许逐跳 header Django

标签 python django wsgi chunked

我正在使用 Django 1.6 和 Python 3.4 编写一个演示代理服务器。当响应具有此 header 时我收到错误消息:

Transfer-Encoding=chunked

错误是:

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

我发现了这个问题:Allow hop-by-hop headers in Django proxy middleware但似乎 Django 1.6 没有 basehttp._hop_headers

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

请帮忙

最佳答案

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

  - Connection
  - Keep-Alive
  - Proxy-Authenticate
  - Proxy-Authorization
  - TE
  - Trailers
  - Transfer-Encoding
  - Upgrade

参见:

  1. Hypertext Transfer Protocol -- HTTP/1.1
  2. wsgiref 的代码:util.py , handlers.py

关于python - 允许逐跳 header Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26044167/

相关文章:

python - 我怎样才能让 2 个类引用同一个类的实例

python - 在列表中查找唯一的元组(忽略顺序),同时在 python 中保留其他元组的原始顺序?

python - 分水岭算法检测的物体面积

django - 升级到 Django 1.7 - AppRegistryNotReady 异常

python - 在 Django 的 Case When 表达式中使用多个条件

Python Django 获取用户输入

django - drf-yasg 自定义 SwaggerUIRenderer

django - 用于 wsgi over unix domain socket 的类 curl 工具

python - 发送不改变用户当前页面的 HTTP 响应

python - celery、celerybeat 和 django-celery-beat 可以在运行时动态添加/删除任务而无需重新启动 celerybeat 吗?