CH-J Toolsуправление серверами через SSH
Меню

Встроенная среда выполнения для диагностики HTTP

Загрузить файл

Языковая редактура этого перевода продолжается. Если фрагмент неясен, сверьтесь с английским оригиналом.

HTTP/1.1, HTTP/2 и HTTP/3 используют один и тот же встроенный клиент curl. На macOS arm64 и Linux x64 используются curl 8.22.0, OpenSSL 3.5.9, nghttp2 1.70.0, ngtcp2 1.25.0 и nghttp3 1.18.0. Windows x64 использует официальную статическую сборку curl-for-win 8.22.0_3 с curl.se с LibreSSL 4.3.3 и теми же библиотеками HTTP. Не требуются ни резервный системный curl, ни загрузка во время работы, ни права администратора. Воспроизводимый рецепт сборки для Windows от разработчиков: https://github.com/curl/curl-for-win/tree/9d77e31e .

Перед упаковкой выполните сборку командой python3 scripts/native/build.py (Windows: python scripts/native/build.py). Для macOS/Linux нужны инструменты C/C++, CMake, Ninja, Perl, make и pkg-config. Исходники закреплены по версии и исходному SHA-256 в scripts/native/dependencies.lock.json. Скрипт проверяет каждую загрузку, статически компонует сторонние транспортные библиотеки и завершается с ошибкой без функций HTTP2/HTTP3/SSL. Динамическими остаются только библиотеки операционной системы. Windows использует закрепленный официальный двоичный архив, а не локально скомпилированный транспортный стек Windows. Встроенный файл CA имеет собственный закрепленный хеш; лицензии компонентов и сведения о происхождении сборки прилагаются к среде выполнения.

Клиент и хранилище доверенных сертификатов устанавливаются вне app.asar в resources/native-runtime/<platform>-<arch>/. Каждая диагностика перед использованием проверяет хеши компонентов, архитектуру и возможности исполняемого файла. Файлы конфигурации, прокси, переопределения доверия TLS из окружения и переменные для внедрения библиотек исключены. curl запускается по абсолютному пути, без оболочки, с проверенным доверием CA, явно заданным семейством разрешенного IP-адреса, без cookie, без автоматических перенаправлений и с ограничением вывода и времени. Перенаправления проверяет и заново разрешает приложение. Поддерживается HTTPS на портах, отличных от 443.

HTTP/3 использует --http3-only и считается подтвержденным только после завершенной передачи, сообщающей HTTP версии 3, и успешной проверки сертификата. Протокол могут подтвердить и ответы HTTP с ошибкой, например 404. Alt-Svc — это объявление, а не доказательство. Тайм-аут QUIC, ошибка сертификата, ошибка DNS, отказ в соединении, несовместимый протокол и сбой компонента различаются. Тайм-аут UDP оставляет поддержку на сервере неподтвержденной. Время рукопожатия QUIC не выдается за время TCP.

Каждое измерение запускает отдельный процесс/соединение. Опция «warm» для встроенного клиента не заявляет о повторном использовании соединения. Это сохраняет сопоставимость протоколов. Отчеты содержат версии среды выполнения, возможности, проверку TLS и время QUIC, а история и экспорт удаляют тела ответов, параметры запроса URL и заголовки аутентификации.

При обновлении транспортного стека или хранилища доверенных сертификатов CA обновите эти закрепления и пересоберите все поддерживаемые платформы. Опубликованные артефакты и снимки исходников неизменяемы.