我在编写自己的反向代理时处理this python bug。服务器发送我代理这个Set-Cookie
响应头:将引号插入字符串的最佳pythonic方法
workgroup_session_id=ilDJtR0rE1AG28C9ZxKLHj8TBtcT89sw; Path=/; Expires=Sun, 02-Dec-2012 5:57:25 GMT; HttpOnly
我加载这个字符串转换成SimpleCookie
实例从Cookie
模块。不幸的是,由于我上面引用的错误,当我稍后将expires
拉出小字典时,它会返回Sun,
。我发现我可以通过在Set-Cookie
标头的Expires
组件上添加引号(或者在包含值中的空格的任何键/值对周围添加引号)来克服此错误。
所以这个:
workgroup_session_id=ilDJtR0rE1AG28C9ZxKLHj8TBtcT89sw; Path=/; Expires=Sun, 02-Dec-2012 5:57:25 GMT; HttpOnly
将成为:
workgroup_session_id=ilDJtR0rE1AG28C9ZxKLHj8TBtcT89sw; Path=/; Expires="Sun, 02-Dec-2012 5:57:25 GMT"; HttpOnly
这:
test=a b c; Path=/; Expires=a b c; HttpOnly
将成为:
test="a b c"; Path=/; Expires="a b c"; HttpOnly
我知道我可以将字符串分解为令牌,并通过它们循环寻找空格,然后重建字符串,但我很好奇最好的解决方案是。正如我所提到的,这是一个反向代理,可能每秒处理几百个请求,所以我希望这个替换尽可能快。
正则表达式替换(当然是预编译)会有效吗?我听说正则表达式很沉重....
对不起,但我**有**问 - 为什么你写你自己的? –
这是一个公平的问题...我想要在Windows PC上生成可视化服务的独特django项目。相信与否,它确实很棒。那么,除了这个小bug(只影响IE)。 – dgel
谢谢 - 没有假设你是为了好玩而做的 - 但是,我很难看出你不能使用现有代理的原因 - 代理的想法是所有这些**都不**必须**处理**无论如何 - 只是得到/发送...(对不起 - 也许我只是没有完全得到问题...) –