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.se 官方的 curl-for-win 8.22.0_3 靜態組建,搭配 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>/ 中。每次診斷前都會驗證元件雜湊、架構與執行檔的功能。設定檔、Proxy、TLS 信任環境覆寫以及程式庫注入變數都會被排除。curl 以絕對路徑執行、停用 shell、使用經過驗證的 CA 信任、明確解析的 IP 位址家族、不使用 Cookie、不自動跟隨重新導向,並限制輸出與時間。重新導向由應用程式驗證並重新解析。支援 443 以外連接埠上的 HTTPS。

HTTP/3 使用 --http3-only,只有在完成一次回報 HTTP 版本 3 且憑證驗證成功的傳輸後才會確認。404 之類的 HTTP 錯誤回應也可以確認該通訊協定。Alt-Svc 只是一種通告,而非證明。QUIC 逾時、憑證失敗、DNS 失敗、連線遭拒、通訊協定不相容以及元件故障會分別區分。UDP 逾時代表伺服器是否支援仍未經驗證。QUIC 交握時間不會被回報為 TCP 時間。

每次量測都會啟動個別的程序/連線。warm 選項不會宣稱內建用戶端重複使用了連線。如此可確保通訊協定比較的一致性。報告包含執行環境版本、功能、TLS 驗證與 QUIC 計時,而歷史紀錄/匯出會移除內容、URL 查詢參數與驗證標頭。

更新傳輸堆疊或 CA 信任存放區時,請更新這些固定值,並為每個支援的平台重新建置。已發布的成品與原始碼快照不可變更。