我在编写自己的反向代理时处理this python bug。服务器正在向我的代理发送此Set-Cookie
响应头:
workgroup_session_id=ilDJtR0rE1AG28C9ZxKLHj8TBtcT89sw; Path=/; Expires=Sun, 02-Dec-2012 5:57:25 GMT; HttpOnly
我正在将这个字符串从Cookie
模块加载到SimpleCookie
实例中。不幸的是,由于上面提到的bug,当我稍后从morsel字典中拉出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
我知道我可以将字符串分解为标记,并在它们之间循环寻找空格,然后重新构建字符串,但我很好奇,性能最好的解决方案是什么。正如我提到的,这是一个反向代理,可能每秒处理几百个请求,所以我希望这个替换尽可能快。你知道吗
正则表达式替换(当然是预编译的)是否有效?我听说正则表达式很重。。。。你知道吗
这个正则表达式怎么样:
这将在
=
之后的任何内容周围插入引号,直到下一个;
(或字符串结尾),但前提是中间至少有一个空格。你知道吗你需要在过期日期前后加引号吗,或者在页眉的任意位置加引号吗?如果是前者,试试这个:
相关问题 更多 >
编程相关推荐