如何在Transfer-encoding中读取块的大小:块?

时间:2012-08-24 10:28:01

标签: python http sockets http-headers

我正在使用Python中的套接字(学习它们),而我正在学习HTTP协议的工作方式。我一直很好,直到我知道有一些叫做Transfer-Encoding: chunked的东西。我对它进行了谷歌搜索,发现了wikipedia article。它表示每个块的大小在块本身之前指定。但它没有说我应该从套接字读取多少字节才能正确获取它。此外,它没有说我是否应该关心字节序。任何人都可以提供详细信息吗?

1 个答案:

答案 0 :(得分:1)

不要过度思考它,因为HTTP中的大部分内容都只是纯文本。您只需要从套接字读取,直到遇到CRLF序列,然后提取块大小(可以用分号终止)并将其解释为十六进制数。

一旦你有了这条线,这应该可以提取块大小:

chunk_size = int(line.strip().split(';')[0], 16)