Что такое URL Rewriting
URL Rewriting — это механизм управления сессией, при котором идентификатор сессии добавляется к каждому URL как параметр (;jsessionid=ABC123). Используется как fallback, когда cookies отключены в браузере клиента.
Контейнер автоматически определяет, поддерживает ли клиент cookies. Если нет — идентификатор сессии добавляется ко всем ссылкам в ответе. Для корректной работы URL rewriting разработчик должен пропускать все URL через методы response.encodeURL() и response.encodeRedirectURL().
Недостатки URL rewriting:
- ID сессии виден в URL, что создаёт риск перехвата (session hijacking)
- URL с
jsessionidсохраняются в истории браузера и логах - Необходимо кодировать каждый URL в приложении — легко пропустить
- Поисковые системы могут индексировать URL с разными
jsessionidкак разные страницы
В современных приложениях URL rewriting практически не используется. Cookies — стандартный механизм, а для API — JWT-токены в заголовке Authorization.
На собеседовании: достаточно сказать, что это fallback для cookies. На практике URL rewriting — legacy-подход с проблемами безопасности.