Python HTTP 200响应是否可以包含不完整的数据?

Python HTTP 200响应是否可以包含不完整的数据?,python,url,http-status-code-200,Python,Url,Http Status Code 200,我正在从一个Python Web应用程序服务器请求来自Tomcat Web服务器的pdf二进制内容 我们在Python中实现了这样的2次重试。偶尔我们会收到HTTP 500响应此问题正在调查中,但很可能是与资源不足相关的环境问题如达到的最大进程数等。在下一次重试中,我们通常会得到包含部分blob内容的HTTP 200(即PDF中的EOF标记)。这怎么可能 这种重试逻辑是否存在任何缺陷我无法理解HTTP 200响应如何包含不完整的数据。是否先发送HTTP 200,然后再发送真实数据(这意味着服务器

我正在从一个Python Web应用程序服务器请求来自Tomcat Web服务器的pdf二进制内容

我们在Python中实现了这样的2次重试。偶尔我们会收到HTTP 500响应此问题正在调查中,但很可能是与资源不足相关的环境问题如达到的最大进程数等。在下一次重试中,我们通常会得到包含部分blob内容的HTTP 200(即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
架构如下:


Web应用程序->调用Tomcat->获取PDF->存储到DB。

此处缺少一些信息。。。你到底是如何使用urllib的?你是一次读还是一小块一小块地读?你可以发布一个你的代码的例子吗?我已经更新了这个信息。我们只使用handle.read()。问题是我们是否有可能获得部分数据?除200以外的任何内容都是例外或…?内容类型应为applicationWe发送文本/html作为输入。我们收到申请表/pdf。有什么问题吗?