如何判断服务器是否支持部分内容?

时间:2016-07-04 07:43:31

标签: python http-headers python-requests

我正在开发自己的多线程网络下载器。在开始之前,我搜索了同样的问题,但文章告诉我,如果服务器支持部分内容,他们可以接受请求标头Range: bytes=a-b并返回206响应代码。根据这条规则,这是我的代码。

# Occur HEAD request and get more information
def _get_url_header(self):
    interface.info_out('HEAD_REQUEST')
    headers = {
        'Range': 'bytes=0-1'
    }
    response = requests.head(self.url, stream = True, headers = headers)
    print(response.status_code)
    # This if statement need modify!!!
    if response.status_code == 206:
        self.partital_content = True
        interface.info_out('PARTITAL_SUPPORT')
    elif response.status_code // 100 == 4:
        interface.info_out('CONNECTION_ERROR', response.status_code)
    elif response.status_code // 100 == 2:
        self.partital_content = False
        interface.info_out('PARTITAL_NOT_SUPPORT')

但是当我测试我的代码时,我偶然发现虽然我得到了200代码,但服务器仍然接受我的Range标题,换句话说,服务器仍然支持部分内容传输! 那怎么了?我怎么说服务器是否支持部分内容?

0 个答案:

没有答案