我在編寫自己的反向代理時處理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
謝謝 - 沒有假設你是爲了好玩而做的 - 但是,我很難看出你不能使用現有代理的原因 - 代理的想法是所有這些**都不**必須**處理**無論如何 - 只是得到/發送...(對不起 - 也許我只是沒有完全得到問題...) –