Повышение производительности веб-сервисов. Переиспользование сеансов
Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.
- Описание
- Подробнее
Описание
Создано на основе практической реализации из публикации
Повышение производительности веб-сервисов
Задача: Повысить производительность вызовов http-сервисов
Платформа: 8.3.18.1289
При использовании http-сервисов от 1С значительную часть времени занимает установка параметров сеанса.
И если время сам метод выполняется менее чем за секунду. то установка параметров сеанса может занимать от полусекунды и выше.
Столкнувшись с необходимостью сократить время вызовов — решил применить переиспользование сеансов из вышеупомянутой статьи. В статье описана работа с Web-сервисами, а у меня Http-сервисы. И хотя по логике — там всё должно быть аналогично — тем не менее столкнулся с некоторыми трудностями. И поскольку аналогичного решения не нашел — делюсь своим опытом.
Запуск и использование сеанса — прошли без проблем.
Проблемы были с завершением сеанса. Но как выяснилось там тоже было всё просто.
Описания всех параметров и способов их установки приводить не буду. Приведу только свои настройки которые заработали.
1. Настройка повторного использования сеансов
1.1 Файл default.vrd

1.2 Настройка http-сервиса

2. Первый запуск — начало сессии
2.1 Вызов метода:
POST https://ПутьКПубликации/hs/client-api/v2/ИмяМетода HTTP/1.1
2.2 Заголовки:
User-Agent: Fiddler
Host: ПутьКПубликации
Authorization: Basic …
Content-Type= application/json:
Content-Length: 0
IBSession: start
2.3 Из заголовка ответа — берем ibsession
Set-Cookie: ibsession=92d60db6-777c-4e3f-89b0-ff3ae8a61aa8
3. Повторное использование сессии
3.1 Вызов метода:
POST https://ПутьКПубликации/hs/client-api/v2/ИмяМетода HTTP/1.1
3.2 Заголовки — добавляем куки — из п 2.2:
User-Agent: Fiddler
Host: ПутьКПубликации
Authorization: Basic …
Content-Type= application/json:
Content-Length: 0
Cookie: ibsession=92d60db6-777c-4e3f-89b0-ff3ae8a61aa8
3. Завершение сессии
3.1 Вызов метода:
POST https://ПутьКПубликации/hs/client-api/v2/ИмяМетода HTTP/1.1
3.2 Заголовки — добавляем куки и флаг завершения сессии:
User-Agent: Fiddler
Host: ПутьКПубликации
Authorization: Basic …
Content-Type= application/json:
Content-Length: 0
Cookie: ibsession=92d60db6-777c-4e3f-89b0-ff3ae8a61aa8
IBSession: finish
"IBSession" — регистр в наименовании важен, если написать всё в нижнем регистре — работать не будет, сессия не завершиться.
Итоги по времени исполнения
Первый запуск (старт сессии)
Overall Elapsed: 0:00:01.239
Повторный запуск
Overall Elapsed: 0:00:00.306
Завершение сессии
Overall Elapsed: 0:00:00.336
Время выполнения метода по замерам 1С: 0.022 сек
Судя по замерам — скорость выросла значительно.
