Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 17168|Відповідь: 1

[Джерело] Життєвий цикл сесії

[Копіювати посилання]
Опубліковано 19.04.2015 19:44:59 | | |
Раніше я не приділяв цьому багато уваги, коли готувався, але сьогодні повернувся і уважно вивчив життєвий цикл сесії.
Сесії зберігаються на стороні сервера, і зазвичай, щоб запобігти їх потраплянню в пам'ять сервера (для високошвидкісного доступу), Sessinon створює перший доступ користувача до сервера.Зверніть увагу, що лише доступ до JSP, Servlet та інших програм створює Сесію, а доступ лише до статичних ресурсів, таких як HTML і IMAGE, не створить Сесію.
  Коли закінчується сесія?
1. Сервер очистить сесію з пам'яті сервера, яка довго була неактивною, і сесія стане недійсною. Стандартний час закінчення сесії в Tomcat — 20 хвилин.
2. Викликайте метод анулювання сесії.
  Вимоги до сесій для браузерів:
 Хоча сесія зберігається на сервері і є прозорою для клієнта, її нормальна робота все одно потребує підтримки браузера клієнта. Це пов'язано з тим, що Session має використовувати файли cookie як ідентифікатор. HTTP-протокол не має статусу, і сесію не можна оцінити за HTTP-з'єднанням, щоб визначити, чи це той самий клієнт, тому сервер надсилає cookie під назвою JSESSIONID до браузера клієнта, який має значення id сесії (тобто повернене значення HttpSession.getId()). Session використовує файл cookie, щоб визначити, чи це той самий користувач.

Цей файл cookie автоматично генерується сервером, і його атрибут maxAge зазвичай дорівнює -1, що означає, що він дійсний лише в поточному браузері, не поділяється між вікнами браузера і не буде дійсним після закриття браузера. Отже, коли два вікна браузера на одній машині отримують доступ до сервера, генеруються дві різні сесії. За винятком нових вікон, які відкриваються за допомогою посилань, скриптів тощо у межах вікна браузера (тобто не вікон, відкриваючись подвійним кліком по іконках браузера робочого столу тощо). Ці дочірні вікна мають спільне cookie батьківського вікна і, відповідно, сесію.

Примітка: Нові сесії генеруються у нових вікнах браузера, за винятком підвікон. Дочірнє вікно ділить сесію батьківського вікна. Наприклад, коли ви клацаєте правою кнопкою миші на посиланні та обираєте «Відкрити у новому вікні» у меню ярликів, дочірнє вікно може отримати доступ до сесії батьківського вікна.

Що, якщо браузер клієнта вимикає файли cookie або не підтримує файли cookie? Наприклад, переважна більшість мобільних браузерів не підтримують файли cookie. Java Web пропонує ще одне рішення: переписування URL-адреси.
Переписування URL-адреси — це рішення для клієнтів, які не підтримують файли cookie. Принцип переписування URL-адреси полягає у переписуванні ID-інформації сесії користувача на URL-адресу. Сервер може проаналізувати переписану URL-адресу, щоб отримати ідентифікатор Session. Таким чином, навіть якщо клієнт не підтримує cookie, сесію можна використовувати для запису стану користувача. Клас HttpServletResponse надає encodeURL (String url) для реалізації переписування URL-адрес, що автоматично визначає, чи підтримує клієнт cookie. Якщо клієнт підтримує файли cookie, URL буде виведений як є. Якщо клієнт не підтримує cookie, ідентифікатор користувацької сесії переписується у URL.
Примітка: TOMCAT визначає, чи підтримує браузер клієнта cookie на основі того, чи включено файл cookie у запит. Хоча клієнт може підтримувати файли cookie, оскільки файли cookie не переносяться при першому запиті (оскільки файли cookie не можна), переписана URL-адреса все одно матиме jsessionid у адресі. Сервер уже записав cookie у браузері під час другого візиту, тому переписана URL-адреса не матиме jsessionid у цій адресі.





Попередній:HTML-трюк, щоб змінити межу таблиці на тонку лінію
Наступний:Створіть власний кеш файлів ASP.NET оптимізації продуктивності
Опубліковано 18.03.2017 16:52:21 |
Вона дуже добре написана, вивчайте!
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com