首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在剥离Content-Length

正在剥离Content-Length
EN

Stack Overflow用户
提问于 2011-04-05 22:04:47
回答 1查看 1.9K关注 0票数 2

我使用的是webpy 0.34,python 2.6.6。我也在使用mimerender。我试图在我的http响应中包含content-length,但是由于某些原因,头部被删除了。我之所以说删除,是因为我可以很好地创建自定义标头,并且我可以在客户端上看到这些标头。但是,当我尝试设置content-length时,报头永远不会到达客户端。我已经尝试在web.created对象中包含头文件(如下所示),并且还尝试使用

代码语言:javascript
复制
web.header('Content-Length', len(data))

我做错了什么和/或不理解这段代码是如何工作的?

代码语言:javascript
复制
render_json = lambda **args: json.JSONEncoder().encode(args)

class MyHandler:
    @mimerender(
            default = 'json',
            json = render_json,
            )
    def POST(self):
        data = "abcd"
        raise web.created(data, headers={'Content-Length': len(data)})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-05 22:08:41

如果数据以分块(Transfer-Encoding: chunked)的形式发送,则必须省略Content-Length标头as per RFC 2616

  1. snip

  1. 如果存在传输编码报头字段(第14.41节),并且具有除"identity“之外的任何值,则使用”分块“传输编码(第3.6节)来定义传输长度,除非通过关闭连接来终止消息。

  1. 如果存在Content-Length报头字段(第14.13节),则其以八位字节表示的十进制值表示实体长度和传输长度。如果这两个长度不同(即,如果存在传输编码报头字段),则不得发送内容长度报头字段。如果收到的邮件同时包含Transfer-Encoding标头字段和Content-Length标头字段,则必须忽略后者。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5553151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档