# รันไทม์การวินิจฉัย 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/-/` การวินิจฉัยแต่ละครั้งจะตรวจสอบแฮชของส่วนประกอบ สถาปัตยกรรม และความสามารถของไฟล์ปฏิบัติการก่อนใช้งาน ไฟล์กำหนดค่า พร็อกซี การแทนที่ความเชื่อถือ TLS ผ่านตัวแปรสภาพแวดล้อม และตัวแปรสำหรับฉีดไลบรารีจะไม่ถูกนำมาใช้ curl ทำงานด้วยพาธแบบสัมบูรณ์ ปิดการใช้เชลล์ ใช้ความเชื่อถือ CA ที่ตรวจสอบแล้ว ระบุตระกูล IP อย่างชัดแจ้ง ไม่มีคุกกี้ ไม่เปลี่ยนเส้นทางอัตโนมัติ และจำกัดเอาต์พุตและเวลา การเปลี่ยนเส้นทางจะได้รับการตรวจสอบและแปลงชื่อใหม่โดยแอปพลิเคชัน รองรับ HTTPS บนพอร์ตอื่นนอกเหนือจาก 443 HTTP/3 ใช้ `--http3-only` และจะได้รับการยืนยันหลังจากการถ่ายโอนเสร็จสมบูรณ์ซึ่งรายงาน HTTP เวอร์ชัน 3 และการตรวจสอบใบรับรองสำเร็จเท่านั้น การตอบกลับข้อผิดพลาด HTTP เช่น 404 สามารถยืนยันโปรโตคอลได้ Alt-Svc เป็นการประกาศ ไม่ใช่หลักฐาน การหมดเวลาของ QUIC ความล้มเหลวของใบรับรอง ความล้มเหลวของ DNS การปฏิเสธการเชื่อมต่อ โปรโตคอลที่ไม่เข้ากัน และความล้มเหลวของส่วนประกอบยังคงแยกแยะได้ การหมดเวลาของ UDP ทำให้การรองรับของเซิร์ฟเวอร์ยังไม่ได้รับการยืนยัน เวลาการจับมือของ QUIC จะไม่ถูกรายงานเป็นเวลาของ TCP การวัดแต่ละครั้งจะเริ่มกระบวนการ/การเชื่อมต่อแยกกัน ตัวเลือก warm ไม่ได้อ้างว่ามีการใช้การเชื่อมต่อซ้ำสำหรับไคลเอนต์ที่รวมมา วิธีนี้ทำให้การเปรียบเทียบโปรโตคอลสอดคล้องกัน รายงานมีเวอร์ชันของรันไทม์ ความสามารถ การตรวจสอบ TLS และเวลาของ QUIC ส่วนประวัติ/การส่งออกจะลบเนื้อหา คิวรีของ URL และเฮดเดอร์การยืนยันตัวตนออก อัปเดตค่าที่ตรึงไว้เหล่านี้และบิลด์ใหม่สำหรับทุกแพลตฟอร์มที่รองรับเมื่ออัปเดตสแต็กการรับส่งข้อมูลหรือที่เก็บความเชื่อถือ CA อาร์ติแฟกต์ที่เผยแพร่และสแนปช็อตของซอร์สจะไม่เปลี่ยนแปลง