如何在传输编码中读取块的大小:块?

2024-04-28 14:07:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中玩sockets(学习它们),同时我也在学习HTTP协议是如何工作的。我一直做得很好,直到我知道有一种叫做Transfer-Encoding: chunked的东西。我在谷歌上搜索了一下,找到了这个wikipedia article。它表示每个块的大小在块本身之前指定。但它并没有说明我应该从套接字读取多少字节才能正确获取它。而且,它并没有说我是否应该关心终结性。有谁能提供详细情况吗?在


Tags: http协议字节articlewikipediasocketsencodingtransfer
1条回答
网友
1楼 · 发布于 2024-04-28 14:07:22

不要想得太多,因为HTTP中的大多数东西都是纯文本。您只需要从套接字读取数据,直到遇到CRLF序列,然后提取块大小(可能以分号结尾)并将其解释为十六进制数。在

一旦有了行,就可以提取块大小:

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

相关问题 更多 >