在将HTTP响应写入文件之前对其进行排序

时间:2016-05-18 09:32:58

标签: python sockets network-programming http-headers network-protocols

我目前正在尝试使用python和套接字实现HTTP客户端。它非常简单,它唯一要做的就是从网络服务器下载文件并将其放入用户提供的文件中。

我的代码工作正常,但我遇到了如何从文件中排除HTTP响应标头的问题。

HTTP响应标头只在文件的开头,所以我想我可以将所有数据转储到文件中,然后取出标头。这是一个问题,因为I / O非常慢。

我的下一个想法是,我可以在从服务器获得的第一个响应上运行一些正则表达式,排序标题然后将其余部分转储到文件中。尽管如此,这似乎是一种非常笨重的方式。

有没有人对如何以聪明的方式做到这一点有任何建议?

1 个答案:

答案 0 :(得分:1)

在http响应中,标题与'\r\n\r\n'的正文分隔开来。要获得身体,你可以试试这个:

bodyBegin = httpResponse.find('\r\n\r\n') + 4
body = httpResponse[bodyBegin:]
saveToFile(body)