如何在Python3中解码HTTP请求头和正文?

如何在Python3中解码HTTP请求头和正文?,python,http,http-headers,python-3.x,Python,Http,Http Headers,Python 3.x,我正在编写一个实验性的异步web服务器。我想知道python中解码HTTP请求的标准/最佳方法是什么 基本上,从套接字读取给我的是传入请求原始数据的字节表示;如何将它们转换为标准数据类型,如字典、值列表等?是否有一个很好的通用教程,介绍如何执行此操作以及需要注意的事项(特别是关于编码和浏览器细节)?请参见 20.10.4。HTTPMessage对象 http.client.HTTPMessage实例保存http响应的头。它是使用email.message.message类实现的 您应该能够将H

我正在编写一个实验性的异步web服务器。我想知道python中解码HTTP请求的标准/最佳方法是什么

基本上,从套接字读取给我的是传入请求原始数据的字节表示;如何将它们转换为标准数据类型,如字典、值列表等?是否有一个很好的通用教程,介绍如何执行此操作以及需要注意的事项(特别是关于编码和浏览器细节)?

请参见

20.10.4。HTTPMessage对象

http.client.HTTPMessage实例保存http响应的头。它是使用email.message.message类实现的

您应该能够将
HTTPMessage
作为一个独立类使用,而无需调用urllib(或任何与python3等效的东西)。

请参见

20.10.4。HTTPMessage对象

http.client.HTTPMessage实例保存http响应的头。它是使用email.message.message类实现的


您应该能够将
HTTPMessage
作为一个独立类使用,而无需调用urllib(或任何与python3等效的东西)。

不要处理套接字;摘要尝试它是Python2和Python3的完整HTTP库,非常直观,尽管您必须下载并安装它。阅读它的快速介绍


包括一个非常好的,为什么它比其他的选择,包括标准库更好;我建议你读一下。

不要处理套接字;摘要尝试它是Python2和Python3的完整HTTP库,非常直观,尽管您必须下载并安装它。阅读它的快速介绍

包括一个非常好的,为什么它比其他的选择,包括标准库更好;我建议你读一下。

这对我很有用:

import StringIO, httplib

ucode_data = unicode( your_raw_data ,"utf-8")
str = StringIO.StringIO( ucode_data )
http_header = httplib.HTTPMessage(str,0)
http_header.readheaders()

print http_header.__dict__
但是它不会对请求进行解码(例如,GET/index.html HTTP/1.2)-它会为您解码其余的请求,尽管这对我来说很有效:

import StringIO, httplib

ucode_data = unicode( your_raw_data ,"utf-8")
str = StringIO.StringIO( ucode_data )
http_header = httplib.HTTPMessage(str,0)
http_header.readheaders()

print http_header.__dict__
但是它不会对请求进行解码(例如,GET/index.htmlhttp/1.2)——但是它会为您解码其余的请求