После использования браузера для аутентификации в моей службе я обнаружил набор файлов cookie со следующей парой ключ\значение:
JSESSIONID=40d4b01c47ddb858718291d319a1a817d3037fdc6f2c341c195a94dc6ee8e8a1.e38Lb3qTb3aKai0RbxeMahqNbN90; path=/MyService; secure
Обратите внимание на суффикс (например, после '.' : e34Mc3uLa3yPbO0La3aNa3eTc38Ke0)
Когда я использую API Java servetl для получения идентификатора сеанса (javax.servlet.http.HttpSession.getId()
), я получаю следующее значение
40d4b01c47ddb858718291d319a1a817d3037fdc6f2c341c195a94dc6ee8e8a1
Это то же самое, что и первая часть значения переменной cookie, которую я только что упомянул!
Однажды я пытался поддерживать сеанс между несколькими HTTP-запросами в ColdFusion (CF) (это нормально, если вы не знаете, что такое CF, это просто платформа для разработки приложений), и я не мог поддерживать сеанс, если я установил файл cookie переменная JSESSIONID до всего значения, которое я упомянул в начале этого вопроса. Чтобы правильно поддерживать сеанс, мне пришлось отправить первую часть идентификатора сеанса (т.е. до '.')
Итак, мой вопрос: почему API сервлета возвращает часть JSESSIONID, а значение cookie, возвращаемое с сервера, имеет суффикс? Откуда взялся этот суффикс и для чего он нужен?