TL; DR Сценарий правильный, и один сеанс перекрывает другой, и обе страницы совместно используют сеанс;но это не имеет значения.
В приведенном выше примере у вас есть два почти одновременных анонимных запроса без сохранения состояния.
Другими словами, в запросе нет абсолютно ничего уникального;две общие страницы будут возвращены.На обеих этих страницах будут новые JSESSIONID не из-за гонки, а из-за того, что сами запросы анонимны, и поэтому по сути просят Tomcat создать новые сеансы.
Предположим, что page2 выиграла конкурс скорости JSESSIONID, и браузер теперь имеетcookie page2.Затем пользователь нажимает на действие на странице 1.Я думаю, что вы правы, что запрос будет отмечен файлом cookie page2.
Ну и что?
Страница1 не может содержать никакой информации, относящейся к сеансу, и, следовательно, никакой информации, специфичной для пользователя.Поэтому его действия не могут иметь состояния, связанного с сеансом (состояние было только что создано).Если нет определенного состояния, относящегося к сеансу, то нет проблемы с ним, связанного с «неправильным» JSESSIONID.
Если посмотреть по-другому: если запрос на страницу2 был полностью обработан до запросадля page1, чем будет отличаться page1?Я не вижу различий.Если нет никаких различий в возвращаемом HTML в двух сценариях, тогда не имеет значения, что его JSESSIONID поменялся местами.
OTOH, если пользователь уже посетил bar.com, то запросы как page1, так и page2 будут связаны с одним и тем же JSESSIONID, возвращаемые страницы верны и все хорошо в мире foo.com.
Одна проблема: Если у вас включена защита CSRF .Библиотеки CSRF изменяют все URL на возвращаемой странице, чтобы включить дополнительный параметр.Библиотека защиты CSRF проверяет все входящие запросы, чтобы их токен безопасности совпадал с JSESSIONID.Если page1 использует файл cookie для page2, защита CSRF отклонит запрос как поддельный.
Если вам нужно иметь один сеанс на каждый фрейм : используйте перезапись URL.Первоначально он был разработан для управления сеансами, когда браузер не принимает файлы cookie.Это работает хорошо, но URL выглядят противно.