Kaspersky Scan Engine и режим HTTP
14 июля 2026
ID 184921
Протокол HTTP является стандартным протоколом для передачи данных в архитектуре "клиент-сервер". В режиме HTTP решение Kaspersky Scan Engine выступает как REST-подобная служба, которая получает от клиентов HTTP-запросы в формате JSON. Служба сканирует объекты, переданные в этих запросах, и отправляет обратно HTTP-ответы с результатами сканирования в формате JSON или простого текста.
Кроме того, комплект поставки включает в себя пример HTTP-клиента и его исходный код. Этот пример HTTP-клиента демонстрирует, как делать запросы в Kaspersky Scan Engine в режиме HTTP.
Способы передачи данных
Поддерживаются два способа передачи данных между клиентами и Kaspersky Scan Engine:
- TCP-соединение
- UNIX-сокет
Режимы сканирования
Kaspersky Scan Engine поддерживает следующие режимы сканирования:
scanfileВ этом режиме пример HTTP-клиента передает пути к файлам в Kaspersky Scan Engine, который читает файлы и проверяет их.
scanmemoryВ этом режиме пример HTTP-клиента передает содержимое файла в Kaspersky Scan Engine, который проверяет содержимое. Максимальный размер объекта, отправляемого на сканирование в режиме сканирования памяти, ограничен системной памятью компьютера.
В режиме scanmemory перед сканированием объектов в кодировке Base64 Kaspersky Scan Engine декодирует их в оперативной памяти. Для этого может потребоваться больше памяти, поскольку данные в кодировке Base64 занимают примерно на 33–37% больше места, чем их двоичный эквивалент. Если вы собираетесь использовать режим scanmemory, при планировании ресурсов сервера Kaspersky Scan Engine выделите определенный объем памяти для расшифровки объектов в кодировке Base64.
checkurlВ этом режиме пример HTTP-клиента передает URL-адреса в Kaspersky Scan Engine, который проверяет их на наличие вредоносных и фишинговых адресов.
Вы можете сканировать файлы и URL-адреса, отправляя HTTP-запросы по протоколу KAV версии 3 или протоколу KAV версии 1 и 2.
Авторизация по токену API
Kaspersky Scan Engine поддерживает авторизацию по токену API.
Если авторизация по токену API включена, HTTP-клиенты должны указывать токен API в заголовке запроса при отправке запросов в Kaspersky Scan Engine. Это поле заголовка запроса, используемое для отправки токена API, имеет пользовательское имя. Администратор Kaspersky Scan Engine может указать это имя в разделе Авторизация Kaspersky Scan Engine GUI. Имя по умолчанию – Authorization.
Если вы включили авторизацию по токену API и служба kavhttpd не запущена, запуск klScanEngineUI также инициирует запуск службы kavhttpd.
Обычная процедура создания и использования токена API следующая:
- Администратор Kaspersky Scan Engine создает токен в разделе Авторизация Kaspersky Scan Engine GUI.
- Администратор Kaspersky Scan Engine предоставляет токен пользователям, которые могут использовать его для доступа к службе
kavhttpd. - При выполнении HTTP-запросов HTTP-клиент отправляет токен в качестве значения поля авторизации в заголовке запроса. Название поля авторизации в заголовке запроса должно совпадать с именем, указанным в параметрах Kaspersky Scan Engine (см. описание элемента Поле заголовка авторизации в разделе Авторизация).
- В случае успешной авторизации Kaspersky Scan Engine предоставляет доступ к своим функциям.
Чтобы попробовать авторизацию по токену API и понять, как это работает, вы можете использовать HTTP-клиент, поставляемый с Kaspersky Scan Engine: настройте Kaspersky Scan Engine для авторизации запросов, создайте токен API, а затем используйте HTTP-клиент для отправки запроса, содержащего токен. Вы можете найти примеры таких запросов, отправленных по протоколу KAV версии 1 или 2 и версии 3.
По соображениям безопасности для отправки запросов, требующих авторизации, требуется HTTPS-соединение.
Поддержка активного соединения
По умолчанию Kaspersky Scan Engine поддерживает постоянные соединения Keep-Alive, поэтому он может обрабатывать несколько объектов один за другим, используя одно и то же соединение.
Чтобы открыть активное соединение, HTTP-клиент должен добавить к запросу следующий заголовок:
Connection: Keep-Alive
Чтобы закрыть соединение, HTTP-клиент должен добавить к запросу следующий заголовок:
Connection: close