Погляд на методи управління станом, які пропонує ASP.NET

0

Існує загальне обмеження, яке можна спостерігати у функціонуванні майже всіх веб-додатків, що додає їхньої поведінки без стану. Це переривчасте з'єднання між сервером і клієнтом.

Відбувається те, що під час реалізації HTTP (протоколу передачі гіпертексту) для спілкування через Інтернет дотримується певний шаблон, відомий як запит і відповідь. Цей шаблон фактично не має стану, оскільки він не зберігає стан жодного запиту чи відповідної відповіді. Тому щоразу, коли клієнт ініціює запит до веб-сервера, веб-сервер створює абсолютно новий об’єкт запиту. Це зрештою спричиняє переривання з’єднання та створює вузькі місця у продуктивності.

На щастя, ASP.NET пропонує чудове рішення для подолання цієї проблеми за допомогою кількох ефективних методів керування станом веб-додатків.

Давайте поміркуємо над дивовижними пропозиціями ASP.NET і зрозуміємо, як це допомагає зберегти стан елементів керування.

Було помічено, що коли шаблон запиту та відповіді створює двосторонні передачі, значення керування сервером якимось чином продається в роздріб, тоді як значення керування HTML зникає. Це пояснюється тим, що елементи керування сервером неявно реалізують техніку керування станом (перегляд стану), яка дозволяє зберігати стани.

ASP.NET пропонує ряд чудових методів керування станом, усі вони призначені для різних програм. В основному вони поділяються на дві великі категорії, а саме керування станом на основі клієнта та керування станом на основі сервера. Ось короткий вступ до кількох технік.

Клієнтське управління державою

У цьому підході дані зберігаються на машині клієнта або на сторінці без залучення ресурсів сервера. Ці збережені дані містять усю інформацію, що стосується взаємодії між клієнтом і сервером. Оскільки дані зберігаються на стороні клієнта, вони більш вразливі для злому, що робить методи менш безпечними та більш масштабованими.

За допомогою цього підходу ASP.NET полегшує використання наведених нижче методів:

1) Перегляд стану:

Цей метод на рівні сторінки допомагає зберігати інформацію про певну сторінку, доки вона не стане активною. Тобто, як тільки користувач переспрямує на іншу сторінку, вся збережена інформація зникне. Таким чином, це допомагає підтримувати стан на рівні сторінки. У цій техніці дані зберігаються у формі Dictionary Object (у парі ключа та значення). Уся інформація зберігається в хешованому форматі на самій сторінці, але в прихованому полі. Він може використовувати значення рядка, але лише до певного значення, якщо значення перевищує, споживається інше приховане поле.

У ASP.NET View State є методом за замовчуванням, який використовується для збереження стану для веб-додатків. Це досить просто реалізувати та ідеально підходить для використання, коли користувач перенаправляється на ту саму сторінку, тому нам потрібно зберігати інформацію постійною, доки він сам не перенаправить на іншу сторінку.

Плюси використання View State:

  • Захистіть збережену інформацію від неспеціаліста, зберігаючи її в хешованому форматі. Фактично, щоб захистити її від хакерів, ви можете зберігати інформацію в зашифрованому форматі.
  • Ви можете налаштувати його за бажанням.
  • Це чудовий варіант, коли ви хочете реалізувати кілька зворотних публікацій на одній веб-сторінці.

Мінуси використання стану перегляду:

  • Це небезпечний підхід, тому з ним не можна зберігати конфіденційні дані.
  • Це може спричинити проблеми з накладними витратами або збільшити час завантаження, оскільки сторінка перевантажується великою кількістю інформації.
2) Файли cookie:

Це забезпечує велику легкість налаштування на стороні клієнта, оскільки файли cookie зберігаються або в пам’яті під час сеансу браузера клієнта, або в системі клієнта. Насправді можна навіть зберігати інформацію про користувачів і відстежувати використання. Він містить невеликий текстовий файл із максимальним розміром 4096 байт, і клієнтська машина може демонструвати щонайбільше 300 файлів cookie, тоді як домен або сервер може підтримувати максимум 20 файлів cookie.

Файли cookie також поділяються на дві категорії, а саме:

Постійні файли cookie – цей тип файлів cookie має термін дії та постійно зберігається на жорсткому диску, доступному на комп’ютері клієнта. Якщо для постійного файлу cookie не вказано термін дії, він вважатиметься тимчасовим або непостійним файлом cookie.

Непостійні файли cookie або тимчасові файли cookie – оскільки цей тип файлів cookie зберігається в пам’яті браузера на стороні клієнта протягом певного періоду часу, після закінчення цього певного часу файл cookie буде втрачено.

Переваги використання файлів cookie:

  • Це лише споживає кілька байтів пам’яті на файл cookie.
  • Легкий і досить простий у використанні.

Мінуси використання файлів cookie:

  • Він не пропонує безпечного підходу, оскільки він зберігає інформацію на машині клієнта, тому зберігання конфіденційних даних не є життєздатним вибором.
  • Будь-який користувач може вимкнути файли cookie, зробивши відповідні налаштування в налаштуваннях браузера.
3) Приховані поля:

По суті, це серверний елемент керування, який допомагає керувати значенням на рівні сторінки, і він трохи схожий на стан перегляду. Його значення надсилається через колекцію форм HTTP, а разом із ним також надсилається значення інших елементів керування.

Плюси використання прихованих полів:

  • Він досить простий у використанні.
  • Оскільки значення зберігається лише на сторінці, ресурси сервера взагалі не використовуються. Таким чином, Hidden Fields економить ресурси сервера.

Мінуси використання прихованих полів:

  • Якщо на сторінці буде реалізовано декілька прихованих полів, це зрештою збільшить вагу сторінки та зробить її об’ємнішою, а отже, збільшить час завантаження сторінки.
  • Цей підхід не ідеальний для зберігання конфіденційних даних. Оскільки він не зберігає дані в зашифрованому чи хешованому форматі, цей метод не є безпечним.
4 Стан програми:

Цей стан ідеально підходить для зберігання даних, які потрібні для доступу в усій програмі. Він займає ресурси сервера, оскільки зберігає дані в пам'яті сервера. Стан додатка не обмежується окремим користувачем або сеансом, він застосовний до всіх сеансів і користувачів. Однак у цьому випадку дані зберігатимуться лише протягом часу, поки програма не буде запущена, щойно програму буде припинено або перезапущено, усі збережені дані буде втрачено. Фактично, вони також будуть витрачені, коли веб-сервер буде перезапущено, оскільки дані зберігаються на кінці сервера.

У стані програми для зберігання даних використовується об’єкт класу HttpApplicationState. Цей клас є набором іменованих об’єктів, що означає, що він включає дані будь-якого типу. Це може бути частиною пари ключ/значення.

Плюси стану застосування:

  • Стан програми має глобальний обсяг. Доступ до даних можна отримати будь-коли, коли програма запущена.
  • Термін дії за замовчуванням відсутній.

Мінуси стану застосування:

  • Стан програми потребує ресурсів сервера для зберігання даних. Це може призвести до проблем масштабованості, якщо не поводитися належним чином.
  • Стан програми не є потоково безпечним, тому нам потрібно реалізувати блокування.
  • У разі збою програми або перезапуску всі збережені дані втрачаються.
5 Стан сеансу:

Цей метод найчастіше використовується кількома розробниками для підтримки стану програми. У цьому підході значення зберігається у формі словникової колекції, тобто воно поєднується як ключ і значення. Тут ресурси сервера повністю використовуються для зберігання стану програми. Оскільки збережені дані не передаються клієнтам, ця техніка пропонує безпечний і високозахищений метод.

У цьому підході для кожного користувача генерується окремий сеанс з унікальним ідентифікатором. Оскільки цей ідентифікатор зберігається в системі клієнта, для його зберігання використовуються файли cookie. Сеанс припиняється, як тільки користувач виходить із програми, і якщо він повертається до програми в майбутньому, створюється новий сеанс.

Його можна використовувати в будь-якому з чотирьох режимів. Ось режими:

  • ВИМКНЕНО – щоб дезактивувати сеанс, тобто якщо ви не зацікавлені у включенні стану сеансу у свою програму, ви можете встановити режим ВИМКНЕНО.
  • InProc – змінна сеансу зберігається в цьому режимі за замовчуванням. Тут значення зберігається в тому самому процесі, де фактично виконується програма ASP.NET. Таким чином, він забезпечує виняткову продуктивність.
  • State Server – у цьому режимі дані зберігаються в окремому процесі в службі Windows. Таким чином, він ізолює два процеси: один, де працює програма, і другий, де зберігаються дані. Отже, його продуктивність не така хороша, як у режимі InProc.
  • SQL Server – тут дані сеансу зберігаються в SQL Server. У режимі InProc важко керувати кількома серверними машинами. Для цього краще зберігати дані лише на сервері SQL, це зробить дані централізовано доступними для всіх машин. Цей режим забезпечує максимальну безпеку, однак він забезпечує погіршену продуктивність.

Ці п’ять найбільш часто використовуваних методів керування станом для програм ASP.NET. Інтегруйте цю техніку у свою програму, яка може забезпечити повну безпеку даних і швидку роботу.

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі