Хранение URL реферера в cookie - PullRequest
0 голосов
/ 08 марта 2011

Я хочу сохранить несколько пар имя-значение в одном файле cookie на клиенте. Одна из этих пар имя-значение - это реферер документа. Я не уверен, какие символы я могу ожидать найти в реферере, поэтому я не уверен, какой разделитель выбрать.

Допустим, я выбрал символ тильды ~, чтобы отделить имя от значения, и труба | символ для разделения пар имя-значение. Тогда я мог бы получить печенье вроде этого:

my_cookie=a~1|b~2|c~3

Теперь допустим, что мой реферер http://www.google.com/search?q=the~middle,, тогда мой cookie теперь будет:

my_cookie=a~1|b~2|c~3|referrer~http://www.google.com/search?q=the~middle

Я не думаю, что могу положиться на символ тильды, кодируемый как% 7E в URL-адресе реферера (или могу ли я?), И, следовательно, я не смогу проанализировать свой файл cookie, чтобы получить компоненты компонента.

Итак, мои вопросы:
(1) Есть ли безопасный выбор символов для моих двух разделителей?
(2) Могу ли я положиться на ~ и | всегда кодируется в реферере?

Большое спасибо,
Пол

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

ПРИМЕЧАНИЕ. В файлах cookie не должно быть пробелов, поэтому мой ответ неверен.спасибо user649650.

Вы можете использовать символ ~ таким образом, чтобы он никогда не сохранялся в URL.Пробел всегда будет кодироваться как% 20, вы можете использовать «~», так как разделитель

my_cookie=a~ 1|b~ 2|c~ 3|referrer~ http://www.google.com/search?q=the~middle

будет обрабатывать этот случай

my_cookie=a~ 1|b~ 2|c~ 3|referrer~ http://www.google.com/search?q=the~%20middle
0 голосов
/ 08 марта 2011

Возможно, вы не сможете "полагаться на символ тильды, кодируемый как% 7E", но вы, безусловно, можете сохранить его таким образом в файле cookie, заменив все ~ на% 7E

...