2012-08-24 52 views
1

我正在玩Python中的套接字(以瞭解它們),並且我正在學習HTTP協議如何在我處於工作狀態時工作。直到我知道有一種叫做Transfer-Encoding: chunked的東西,我才做得很好。我做了一個谷歌搜索,發現這個wikipedia article。它表示每個塊的大小在塊本身之前指定。但是它並沒有說我應該從套接字讀取多少字節才能正確地讀取它。此外,它沒有說我是否應該關心排序。任何人都可以提供這方面的細節?如何讀取傳輸編碼塊的大小?

回答

1

請勿過度使用它,因爲HTTP中的大部分內容只是純文本。你只需要讀取套接字,直到遇到CRLF序列,然後提取塊大小(可能以分號結束)並將其解釋爲十六進制數。

一旦你行這應該提取塊大小:

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

並以「一個CRLF序列」他的意思是兩個連續的CRLFs,又名空行:-) – Szocske