2024-04-28 14:07:22 发布
网友
我在Python中玩sockets(学习它们),同时我也在学习HTTP协议是如何工作的。我一直做得很好,直到我知道有一种叫做Transfer-Encoding: chunked的东西。我在谷歌上搜索了一下,找到了这个wikipedia article。它表示每个块的大小在块本身之前指定。但它并没有说明我应该从套接字读取多少字节才能正确获取它。而且,它并没有说我是否应该关心终结性。有谁能提供详细情况吗?在
Transfer-Encoding: chunked
不要想得太多,因为HTTP中的大多数东西都是纯文本。您只需要从套接字读取数据,直到遇到CRLF序列,然后提取块大小(可能以分号结尾)并将其解释为十六进制数。在
一旦有了行,就可以提取块大小:
chunk_size = int(line.strip().split(';')[0], 16)
不要想得太多,因为HTTP中的大多数东西都是纯文本。您只需要从套接字读取数据,直到遇到CRLF序列,然后提取块大小(可能以分号结尾)并将其解释为十六进制数。在
一旦有了行,就可以提取块大小:
相关问题 更多 >
编程相关推荐