- Инструмент «Контроль HTTP-запросов» обеспечивает:
- логирование всех входящих HTTP-запросов;
- выявление ошибок в работе сервисов;
- оперативный мониторинг параметров работы сервисов;
- статистический анализ HTTP-запросов;
- предотвращения «гонки запросов»;
- обеспечения идемпотентности небезопасных HTTP-методов.
При логировании механизм разбирает входящие HTTP-запросы на составляющие и записывает в журнал. Например, к таким составляющим относятся: URL, HTTP-метод, заголовки запроса, параметры из шаблона, из URL, из тела запроса. Ответ на HTTP-запрос логируется аналогичным образом. Кроме того, фиксируются различные метрики запроса: дата-время поступления запроса, размер тела и ответа, длительность обработки запроса алгоритмом бизнес-логики, код ответа, факт успешного окончания обработки запроса и прочие.
Таким образом, лог предоставляет информацию о параметрах запроса, времени поступления, длительности обработки и содержании ответа вызывающей стороне.
Инструмент обеспечивает построение отчетов, помогающих пользователю в удобной форме анализировать работу веб-сервисов.
Реализован функционал для обеспечения идемпотентности HTTP-методов веб-сервиса. Позволяет автоматически обнаруживать возникновение гонки запросов, блокировать конфликтные запросы и предотвращать негативные последствия их обработки. Предусмотрено автоматическое разблокирование конфликтных HTTP-запросов по различным параметрам, настраиваемым в пользовательском режиме.
Идемпотентность – способность выдавать тот же результат при повторном выполнении операции с ресурсом.
Гонка запросов (race condition) – общее название группы серьезных проблем, с которыми сталкиваются IT-специалисты при росте нагрузки на веб-сервис. Например, когда клиент вызывает сложный, нагружающий систему HTTP-метод и, не дождавшись за отведенное время ответа от сервера, повторяет его.
Инструмент распространяется в виде cf-файла поставки конфигурации для платформы «1С:Предприятие 8.3». Рабочая конфигурация может быть поставлена на поддержку от данной библиотеки. Рекомендуется использовать с версией платформы 8.3.15 и выше. Поддерживает работу в режиме тонкого, толстого и веб-клиента.
- Комплект поставки:
- демоконфигурация с примером интеграции в простой HTTP-сервис;
- инструкция с описанием порядка внедрения библиотеки.
- Инструмент предоставляет пользователям следующие возможности:
- Управление работой HTTP-сервисов из пользовательского режима: можно включать и отключать любой сервис, настраивать параметры логирования, параметры обеспечения идемпотентности и параметры разблокирования конфликтных запросов.
- Ведение журнала входящих HTTP-запросов в разрезе сервисов и ресурсов с замером длительности обработки каждого запроса.
- Просмотр подробной информации о каждом входящем запросе и предоставленном ответе.
- Автоматическое обнаружение и блокирование конфликтов при поступлении повторных HTTP-запросов.
- Ведение журнала заблокированных запросов.
- Автоматическое разблокирование конфликтных запросов по правилам, заданным в настройках сервиса.
- Переход из заблокированного запроса к виновнику блокировки и наоборот. Возможность выполнить разблокирование конфликта вручную.
- Автоматическое сокращение журналов входящих и заблокированных запросов в соответствии с настройкой, заданной отдельно для каждого сервиса;
- Формирование аналитических отчетов.
Подробное описание настроек и возможностей инструмента приведено в справке к объектам подсистемы конфигурации.
Предполагается работа на всех видах клиента 1С:Предприятие и любых операционных системах.
Для разработки и тестирования использовались:
- Платформа 1С:Предприятие: 8.3.15 и выше
- 1C:Enterprise Development Tools: 2024.1.3
Эта программа и сопроводительные материалы предоставляются в соответствии с условиями лицензии Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by-sa/4.0/