Обзор методов управления состоянием, предлагаемых ASP.NET

12

Существует общее ограничение, которое можно наблюдать в функционировании почти всех веб-приложений, что усугубляет их поведение без сохранения состояния. Это прерывистое соединение между сервером и клиентом.

Что происходит, так это то, что при реализации HTTP (протокола передачи гипертекста) для связи через Интернет следует определенный шаблон, известный как запрос и ответ. Этот шаблон фактически не имеет состояния по своей природе, поскольку он не сохраняет состояние любого запроса или соответствующего ответа. Поэтому всякий раз, когда клиент инициирует запрос к веб-серверу, веб-сервер создает совершенно новый объект запроса. В конечном итоге это вызывает прерывание соединения и создает узкие места в производительности.

К счастью, ASP.NET предлагает отличное решение этой проблемы с помощью нескольких эффективных методов управления состоянием для веб-приложений.

Давайте задумаемся об удивительных предложениях ASP.NET и поймем, как это помогает сохранять состояние элементов управления.

Было замечено, что когда шаблон запроса и ответа создает круговые поездки, значение элемента управления сервера каким-то образом продается, а значение элемента управления HTML исчезает. Это связано с тем, что элементы управления сервером неявно реализуют метод управления состоянием (состояние просмотра), который позволяет ему сохранять состояния.

ASP.NET предлагает ряд блестящих методов управления состоянием, и все они предназначены для разных приложений. В основном они разделены на две широкие категории, а именно клиентское управление состоянием и серверное управление состоянием. Вот краткое введение в несколько техник.

Клиентское управление состоянием

При таком подходе данные хранятся на клиентской машине или на странице без привлечения ресурсов сервера. Эти сохраненные данные включают в себя всю информацию, связанную с взаимодействием между клиентом и сервером. Поскольку данные хранятся на стороне клиента, они более уязвимы для взлома, что делает методы менее безопасными, но более масштабируемыми.

При таком подходе ASP.NET упрощает следующие методы:

1) Состояние просмотра:

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

В ASP.NET состояние представления является методом по умолчанию, который используется для хранения состояния веб-приложений. Он довольно прост в реализации и идеально подходит для использования, когда пользователь перенаправляется на ту же страницу, и поэтому нам нужно сохранять информацию постоянной, пока он сам не перенаправит на какую-то другую страницу.

Плюсы использования 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, а вместе с ним также отправляется значение других элементов управления.

Плюсы использования скрытых полей:

  • Он довольно прост в использовании.
  • Поскольку значение хранится только на странице, ресурсы сервера вообще не используются. Таким образом, Скрытые поля экономят ресурсы сервера.

Минусы использования скрытых полей:

  • Если на странице будет реализовано несколько скрытых полей, это в конечном итоге добавит веса странице и сделает ее более объемной, что увеличит время загрузки страницы.
  • Этот подход не идеален для хранения конфиденциальных данных. Поскольку он не хранит данные в зашифрованном или хешированном формате, этот метод не полностью безопасен.
4 Состояние приложения:

Это состояние идеально подходит для хранения данных, к которым требуется доступ во всем приложении. Он занимает ресурсы сервера, так как хранит данные в памяти сервера. Состояние приложения не ограничивается каким-либо конкретным пользователем или сеансом, а скорее применимо ко всем сеансам и пользователям. Однако в этом случае данные будут храниться только до тех пор, пока приложение работает, как только приложение будет завершено или перезапущено, все сохраненные данные будут потеряны. Фактически, он также будет потрачен впустую при перезапуске веб-сервера, поскольку данные хранятся на конце сервера.

В состоянии приложения для хранения данных используется объект класса HttpApplicationState. Этот класс является коллекцией именованных объектов, что означает, что он включает данные любого типа. Это может быть часть пары ключ/значение.

Плюсы состояния приложения:

  • Состояние приложения имеет глобальную область действия. Данные могут быть доступны в любое время, когда приложение работает.
  • По умолчанию срок годности отсутствует.

Минусы состояния приложения:

  • Состояние приложения требует ресурсов сервера для хранения данных. Это может привести к проблемам с масштабируемостью, если не будет обработано должным образом.
  • Состояние приложения не является потокобезопасным, поэтому нам необходимо реализовать блокировки.
  • В случае сбоя или перезапуска приложения все сохраненные данные теряются.
5 Состояние сеанса:

Этот метод чаще всего используется несколькими разработчиками для поддержания состояния приложения. В этом подходе значение хранится в виде коллекции словарей, то есть оно представляет собой пару как ключ и значение. Здесь ресурсы сервера полностью используются для хранения состояния приложения. Поскольку сохраненные данные не передаются клиентам, этот метод предлагает безопасный и высоконадежный метод.

При таком подходе для каждого пользователя создается отдельный сеанс с уникальным идентификатором. Поскольку этот идентификатор сохраняется в системе клиента, для его хранения используются файлы cookie. Сессия уничтожается, как только пользователь выходит из приложения, и если он вернется в приложение в будущем, будет создана новая сессия.

Его можно использовать в любом из четырех режимов. Вот режимы:

  • OFF — чтобы деактивировать сеанс, то есть, если вы не заинтересованы во включении состояния сеанса в свое приложение, вы можете установить режим OFF.
  • InProc — переменная сеанса сохраняется в этом режиме по умолчанию. Здесь значение сохраняется в том же процессе, где фактически выполняется приложение ASP.NET. Таким образом, он обеспечивает выдающуюся производительность.
  • State Server — в этом режиме данные хранятся в отдельном процессе внутри службы Windows. Таким образом, он изолирует два процесса: в одном запущено приложение, а во втором хранятся данные. Следовательно, его производительность не так хороша, как в режиме InProc.
  • SQL Server — здесь данные сеанса хранятся в SQL Server. Трудно управлять в режиме InProc несколькими серверными машинами. Для этого лучше хранить данные только на сервере SQL, это сделает данные централизованно доступными для всех машин. Этот режим обеспечивает максимальную безопасность, однако снижает производительность.

Эти пять наиболее часто используемых методов управления состоянием для приложений ASP.NET. Интегрируйте этот метод в свое приложение, чтобы обеспечить полную безопасность данных и высокую производительность.

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее