Как запретить App Engine объединять несколько заголовков с одинаковыми именами? - PullRequest
2 голосов
/ 16 октября 2010

App Engine, кажется, всегда объединяет несколько заголовков с одним и тем же именем в один.Например, если установить это в CGI

print "Set-Cookie: foo=bar"
print "Set-Cookie: spam=egg"

, то, что фактически передается в браузер, это

Set-Cookie: foo=bar, spam=egg

, что, конечно, неправильноПравильное решение: либо

Set-Cookie: foo=bar; spam=egg

, либо не объединяйте их вообще.Как я могу это сделать?Спасибо!

1 Ответ

1 голос
/ 29 января 2011

Я считаю, что GAE делает правильные вещи, на самом деле.Несколько файлов cookie разделяются запятыми, а не точками с запятой.Точка с запятой используется для разделения параметров одного файла cookie.У меня нет времени на поиск ссылки RFC, но вы можете увидеть примеры по всему Интернету:

КОД

import httplib
c = httplib.HTTPConnection("www.facebook.com")

myHeaders = {
    'Content-Type': 'text/html',
    'User-agent': 
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12",
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Keep-Alive': '300',
    'Connection': 'keep-alive',
    'Accept-Language': 'en-us,en;q=0.5',
    'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
}

c.request("GET", "/login.php", body="", headers=myHeaders)
r = c.getresponse()
print r.getheaders()

РЕЗУЛЬТАТЫ

[... пропущены другие заголовки ...

('set-cookie', 'datr = 5j9DTSaOPEd5Rxc9X23IB7KB; expires = Sun, 27-Jan-2013 22:15:02GMT; путь = /; домен = .facebook.com; httponly, lsd = 0l0sd; путь = /; домен = .facebook.com, reg_fb_gate = http% 3A% 2F% 2Fwww.facebook.com% 2Flogin.php; путь =/; domain = .facebook.com, reg_fb_ref ​​= http% 3A% 2F% 2Fwww.facebook.com% 2Flogin.php; путь = /; домен = .facebook.com ')

]

Надеюсь, это полезно, Ян

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...