【问题标题】:How to detect end of HTTP response body for Content-Length differ body size?如何检测 Content-Length 不同正文大小的 HTTP 响应正文结束?
【发布时间】:2016-02-26 07:15:58
【问题描述】:

如何检测 Content-Length 不同正文大小的 HTTP 响应正文结束? Http 1.1

我想实现一个 http 代理。 正常情况下,http 代理会收到来自服务器的响应;如果 header 有 Content-Length L1,我认为 body 的长度是 L1。 但是,如果 Content-Length 不同的正文大小,如何检测正文的结尾? (在keep-alive模式下,收不到eof。)

如 RFC2616 第 4.4 节中所述 “HTTP/1.1 用户代理必须在收到和检测到无效长度时通知用户。”

【问题讨论】:

    标签: http


    【解决方案1】:

    a) RFC 2616 已经过时了

    b) 答案应该在这里:http://greenbytes.de/tech/webdav/rfc7230.html#message.body.length

    【讨论】:

    • 感谢您的回复!我把上面的部分红了,但是我找不到解决方法。就我而言,作为 http 代理,我需要找到“Content-Length 值不正确”的情况,然后我可以告诉客户端。在http 1.1中,keep-alive,我无法区分缓冲区是当前响应溢出数据还是下一个新响应数据。
    • 在规范方面没有“不正确”之类的东西。如果指定了内容长度,则它是权威的,这就是要读取和转发的字节数。如果要读取的字节数较少,则消息将被截断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多