HTTP 200响应是否有不完整的数据?

时间:2015-12-01 10:14:13

标签: python url http-status-code-200

我从Python Web应用程序服务器请求来自Tomcat Webserice的pdf二进制内容。

我们在Python中实现了2次这样的重试。偶尔我们得到一个HTTP 500响应。 此问题正在调查中,但很可能是与资源不足相关的环境问题,例如最大数量:进程已达到等等。在下一次重试中,我们经常会收到HTTP 200部分blob内容(即PDF格式的EOF标记)。怎么可能?

此重试逻辑中是否存在任何缺陷? HTTP 200响应如何包含不完整的数据超出了我的理解。首先发送HTTP 200,然后发送真实数据(这意味着服务器在发送HTTP 200后可能会死机)?唯一的另一种解释是服务器正在发送整个内容,但生成数据的程序正在发送不完整的数据,因为某些资源问题可能也会导致HTTP 500.

# There is a unique id as well to make it new request. (retries is 2 by default)
while retries:
    try:
        req = urllib2.Request(url, data=input_html)
        req.add_header('Accept', 'application/pdf')
        req.add_header('Content-Type', 'text/html')
        handle = urllib2.urlopen(req)
        pdf_blob = handle.read()
    except:
        log(traceback)
        retries = retries - 1
        if not retries:
           raise

架构如下:

网络应用程序 - >调用Tomcat - >获取PDF - >商店到DB。

0 个答案:

没有答案