查找使用 re Python 的 GET 请求的路径



好吧,我想使用python创建一个HTTP服务器所以我处理客户和所有这些东西我想使用正则表达式获取请求的路径如果请求很简单,例如

GET / HTTP/1.1
OR
GET /TEST.PNG HTTP/1.1

所以获得正则表达式没有问题

"GET(.+)HTTP/1.1"

问题是当 get 请求中有参数时喜欢

GET /index?test=test HTTP/1.1

我很难使用 re 或其他方法仅获取路径和参数列表参数可以是 ?直到 HTTP/1.1 并且比使用带有"&"的拆分函数,因此请求中有多个参数,这就是我获取它们列表的方式,但我很难细化路径和参数并将它们分开提前感谢所有帮助者和任何可以帮助我使用正则表达式的人

您可以使用标准 Python 库中的urlparse

import urlparse
http_request = 'GET /index?test=foo&bar=qux HTTP/1.1'
url_parts = urlparse.urlparse(http_request.split(' ')[1])
query_params = urlparse.parse_qs(url_parts.query)
# url_parts.path == '/index'
# query_params == {'test': ['foo'], 'bar': ['qux']}

最新更新