laughingman
Я так понимаю это все делается за одну сессию, то есть сервер понимает, что тот кто предъявил сертификат и вводит пароль в поле формы это один и тот-же юзер
Сессия - это множество запросов, обединённых в последовательность. Вот эта вещь поддерживается каким-то способом. Например, в печенье сервер говорит “ты послал запрос 1, ты будешь тогда пользователь 1”, твой клиент сохраняет у себя это печенье “я пользователь 1”. При следующем запросе твой клиент посылает серверу сообщение “я пользователь 1, вот моё печенье”. Сервер его получает и говорит “а, раз ты пользователь 1, то вот тебе страница по прошлому запросу, и вот тебе печенье новое, что ты пользователь 1”. Клиент опять сохраняет это печенье. Так эта сессия может хранить ещё и параметры какие-то, которые меняются в процессе запросов, хранить состояние клиента, хранить состояние сервера для более умной работы. Это например.
Вот так цепочка запросов и продолжается, связываясь воедино через печенье, которым обмениваются клиент и сервер.
Так что тебе нужно глубже проанализировать взаимодействие. Для этого ты открываешь в браузере
Инструменты разработчика и там во вкладке
Сеть смотришь, что пересылается во время запросов в заголовках HTTP-протокола. Печенье ставится через эти пересылаемые заголовки.
Обычно через печенье это идёт, но бывают там ещё способы. Чаще всего на печенье всё это построено.