Каков наилучший способ отправки и обнаружения файлов cookie в Java-приложении? - PullRequest
1 голос
/ 13 января 2011

Когда пользователь посещает сайт www.example.com в первый раз, как я могу определить, включены ли в браузере клиента файлы cookie и, если да, отправить файл cookie клиенту, не прибегая к отправке запроса (ов) перенаправления (запрос HTTP 302) )? Если необходимо выполнить переадресацию, то каков наилучший способ отправки cookie без многократных перенаправлений или недружественных переадресаций с поисковых систем? Моему java-приложению нужно очень быстро создать учетную запись на основе файлов cookie при первом посещении сайта example.com. После этого последующие посещения будут распознавать пользователя на основе этого файла cookie.

Это решение не должно основываться на Javascript, так как оно все еще должно работать, если JavaScript отключен.

1 Ответ

2 голосов
/ 13 января 2011

Сначала - невозможно сказать (окончательно), поддерживает ли клиент куки или нет, пока вы не установите их.И если вы делаете это на стороне сервера, так как куки отправляются как часть HTTP-запроса, у вас будет иметь , чтобы выполнить какое-то перенаправление для этой проверки:

   client                  server
1a. GET index.html ---->
1b.            <------------ sets a cookie, redirect to index.html?foo=bar
2. GET index.html?foo=bar -->

Использование Javascript позволяет обойти это, так как вы можете, по крайней мере, запросить, был ли установлен cookie на стороне клиента, не требуя от клиента повторного запроса - но это, как вы говорите, Javascript.

Обратите внимание, чтоэтот вид проверки не совсем надежен;в действительности это не подтверждает, что файлы cookie будут сохраняться каким-либо полезным способом (например, антишпионская программа может очищать файлы cookie каждые 30 минут).Он даже не подтверждает, что вы сможете установить следующий файл cookie (особенно, если он находится на другом поддомене; или пользователь, возможно, попросил UA запрашивать каждый файл cookie, просто потому, что это печенье принято не означает, что следующий будет).И в следующий раз, когда пользователь войдет в него, возможно, из другого браузера (с другими настройками), или они изменили свои настройки безопасности на этом и т. Д.

Действительно, я бы подумал об этом в том жекак проверка формы на стороне клиента - приятно иметь возможность предупреждать ваших посетителей, когда они пытаются что-то, что просто не сработает, но вы не можете полагаться на то, что это правильно.И в этом контексте ваше последнее предложение немного беспокоит - поскольку вы говорите, что нужно для работы.Каковы последствия, если этот тест не соответствует действительности (то есть вы думаете, что можете устанавливать файлы cookie, но на самом деле не можете)?Я не говорю, что ваш сайт должен работать без файлов cookie, просто вы должны понимать, что ваши чеки могут давать ложные срабатывания, и вы должны знать об этом.

Так что в этом контексте я быскажем, что, вероятно, лучше сделать проверку в Javascript;если у кого-то отключены файлы cookie JS и , они не смогут взаимодействовать с большинством сайтов, которые имеют какой-либо логин.Когда вы получаете запрос без файлов cookie, вы должны отправить обратно «Похоже, у вас есть страница с отключенными файлами cookie» в любом случае , поэтому вряд ли удастся сломать игру, если начальная проверка была пропущена.

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