Обычным способом проверки поддержки файлов cookie является перенаправление.
Рекомендуется делать это только тогда, когда пользователь пытается сделать что-то, что инициирует сеанс, например, войдя в систему или добавив что-то в свою корзину. В противном случае, в зависимости от того, как вы справитесь с этим, вы потенциально блокируете доступ ко всему сайту для пользователей - или ботов - которые не поддерживают куки.
Во-первых, сервер проверяет данные для входа в систему как обычно - если данные для входа являются неправильными, пользователь получает эту обратную связь как обычно. Если это правильно, то сервер немедленно отвечает cookie-файлом и перенаправляет на страницу, которая предназначена для проверки этого cookie-файла - это может быть просто тот же URL-адрес, но с некоторым флагом, добавленным в строку запроса. Если эта вторая страница не получает cookie, то пользователь получает сообщение о том, что он не может войти в систему, потому что cookie отключены в его браузере.
Если вы уже используете шаблон Post-Redirect-Get для своей формы входа, то этот параметр и проверка файла cookie не добавляют никаких дополнительных запросов - файл cookie может быть установлен во время существующего перенаправления и проверен пункт назначения, который загружается после перенаправления.
Теперь, почему я проверяю файлы cookie только после действия, инициированного пользователем, кроме загрузки каждой страницы. Я видел, как сайты внедряют тесты cookie на каждой странице, не понимая, что это повлияет на такие вещи, как поисковые системы, пытающиеся сканировать сайт. То есть, если у пользователя включены cookie-файлы, то тестовый cookie-файл устанавливается один раз, поэтому он должен выдержать перенаправление только на первой странице, которую он запрашивает, и с тех пор перенаправлений не происходит. Однако для любого браузера или другого пользовательского агента, например поисковой системы, который не возвращает файлы cookie, каждая отдельная страница может просто привести к перенаправлению.
Еще один метод проверки поддержки файлов cookie - использование Javascript. Таким образом, перенаправление не требуется - вы можете написать файл cookie и прочитать его практически немедленно, чтобы увидеть, был ли он сохранен, а затем извлечен. Недостатком этого является то, что он запускается в сценарии на клиентской стороне - т.е. если вы все еще хотите, чтобы сообщение о том, поддерживаются ли куки, возвращаются на сервер, то вам все равно придется организовать это - например, с помощью вызов Ajax.
Для моего собственного приложения я реализую некоторую защиту от атак «Login CSRF», вариант атак CSRF, устанавливая cookie-файл со случайным токеном на экране входа в систему до входа пользователя в систему и проверяя этот токен, когда пользователь отправляет свои данные для входа. Узнайте больше о Войти CSRF от Google. Побочным эффектом этого является то, что в тот момент, когда они входят в систему, я могу проверить наличие этого cookie - дополнительная переадресация не требуется.