HTTPS อุ่นเครื่องกับ VPN อุ่นเครื่อง: เปรียบเทียบเส้นทางคำขอเดียวกัน
HTTPS ไม่ได้จับมือทุกคำขอ API ดังนั้นการเชื่อมต่อที่อุ่นเครื่องแล้วกับอุโมงค์ที่อุ่นเครื่องแล้วจึงไม่ใช่คู่แข่ง เปรียบเทียบรูปแบบคำขอเดียวกันก่อนเลือก
คุณอาจเคยอ่านว่า HTTPS เปิดการเชื่อมต่อ TCP ใหม่และการจับมือ TLS ใหม่สำหรับทุกคำขอ API ดังนั้นอุโมงค์ที่เปิดค้างไว้หนึ่งชั่วโมงจึงดูถูกกว่า ครึ่งแรกของข้อความนั้นมักไม่จริง ไคลเอนต์ที่รองรับจะใช้การเชื่อมต่อที่สร้างไว้แล้วซ้ำสำหรับการแลกเปลี่ยนหลายครั้ง และการวัดที่สร้างไคลเอนต์ใหม่ทุกครั้งที่เรียกจะวัดวงจรชีวิตไม่ใช่การป้องกัน ส่วนที่เหลือของหน้านี้พูดถึงสิ่งที่ควรวัดแทน
การใช้ซ้ำต้องการอะไรจริง
ความคงอยู่เป็นส่วนหนึ่งของแบบจำลอง HTTP ไม่ใช่กลเม็ด การเชื่อมต่อหนึ่งเส้นพาการแลกเปลี่ยนคำขอและคำตอบได้หลายรอบ การเชื่อมต่อสิ้นสุดเมื่อฝ่ายใดฝ่ายหนึ่งปิด เมื่อเซิร์ฟเวอร์ปลดการเชื่อมต่อที่ไม่ได้ใช้งานหรือรับภาระเกิน หรือเมื่อส่วนหัวหรือกฎของโปรโตคอลบอกว่าการเชื่อมต่อนั้นใช้ซ้ำไม่ได้ HTTPS วางบทสนทนานั้นไว้ใน TLS โดยไม่ต้องจับมือใหม่ทุกครั้งที่แลกเปลี่ยน คำขอที่สองจึงไม่ทำจับมือของคำขอแรกซ้ำ เว้นแต่มีบางอย่างปิดการเชื่อมต่อไปในระหว่างนั้น
การใช้ซ้ำยังมีเงื่อนไขหนึ่งข้อที่แอปพลิเคชันมักทำให้เสีย ไคลเอนต์ที่ตั้งใจใช้การเชื่อมต่อซ้ำต้องอ่านเนื้อความตอบกลับให้ครบ และการตอบกลับที่ถูกทิ้งกลางทางก็เป็นวิธีปกติที่กลุ่มการเชื่อมต่อหายไปโดยไม่มีใครสังเกต
ตรวจสอบไคลเอนต์ที่ไลบรารีรองรับและวงจรชีวิตของกลุ่มการเชื่อมต่อ แทนที่จะถือว่าการรวมกลุ่มเปิดหรือปิดอยู่ บันทึกเวอร์ชัน HTTP ที่เจรจาได้ด้วย เพราะ HTTP/2 และ HTTP/3 จัดการการใช้การเชื่อมต่อซ้ำต่างจาก HTTP/1.1 มองเวอร์ชันที่เจรจาได้เป็นส่วนหนึ่งของการวัด ไม่ใช่เชิงอรรถ
ทำไมการเปรียบเทียบจึงวัดวงจรชีวิต
การสร้างไคลเอนต์ใหม่ทุกการดำเนินการแล้วนำไปเทียบกับอุโมงค์ที่เชื่อมต่อมาหนึ่งชั่วโมงคือการเทียบการตั้งค่าการเชื่อมต่อกับสภาวะคงที่ นั่นเป็นการวัดที่ชอบด้วยเหตุผล และไม่ใช่ HTTPS กับ VPN การรันสองครั้งด้วยการกำหนดค่าไคลเอนต์เดียวกันอธิบายพฤติกรรมได้ดีกว่าหนึ่งครั้ง โดยเฉพาะเมื่อการรันครั้งแรกทำให้ตัวแก้ชื่อหรือแคชการเชื่อมต่ออุ่นขึ้น
ตรึงการดำเนินการ API เซิร์ฟเวอร์ บัญชี และข้อมูลให้คงที่ มิฉะนั้นการเปรียบเทียบจะพาตัวแปรมากกว่าหนึ่งตัว ตัดสินใจล่วงหน้าว่าจะวางตัวจับเวลาที่ใด เพราะการตั้งค่า การเจรจา TLS การทำงานของแอปพลิเคชัน และการส่งมอบคำตอบมีส่วนต่างกันต่อผลรวม ตัวจับเวลาตัวเดียวของคำขอแรกบอกลักษณะการตั้งค่าและไม่บอกอะไรเกี่ยวกับทราฟฟิกคงที่ที่คุณรันจริง เขียนขอบเขตของตัวจับเวลาไว้ข้างตัวเลข
แยกการตั้งค่าเย็นออกจากคำขออุ่น
วัดคำขอแรกแยกจากคำขอที่ตามมา จากนั้นเพิ่มสิ่งที่บริการเห็นจริง ได้แก่ ช่วงที่ไม่ได้ใช้งาน การระเบิด ความพร้อมกัน ขนาดคำตอบ และการเชื่อมต่อใหม่
เปิดการตรวจสอบใบรับรองและ HTTPS ไว้ทั้งสองเส้นทาง เพราะการเอาออกคือการวัดการออกแบบความปลอดภัยอีกแบบไม่ใช่แบบที่เร็วกว่า ถ้าอุโมงค์เปลี่ยนเส้นทางหรือตำแหน่งเกตเวย์ ให้รายงานความต่างนั้นแยกออกมา แทนที่จะโยนความเปลี่ยนแปลงเรื่องเวลาให้การเข้ารหัสทั้งหมด เพราะเส้นทาง การสูญหาย และคิวอาจครอบงำคำขอเล็ก ๆ ได้ รันแต่ละเส้นทางสองครั้งบนเส้นทางเดิมก่อนสรุป บันทึกโปรโตคอลที่เจรจาได้และขอบเขตของตัวจับเวลาพร้อมการรันทั้งสองครั้ง
วางแผนสำหรับการเชื่อมต่อที่ปิด
คงอยู่ไม่ได้หมายถึงถาวร เซิร์ฟเวอร์ พร็อกซี หรือการเปลี่ยนแปลงของเครือข่ายอาจปิดการเชื่อมต่อในช่วงที่ไม่ได้ใช้งาน และไคลเอนต์ต้องฟื้นตัวด้วยพฤติกรรมที่ไลบรารีรองรับ การฟื้นตัวนั้นมีเครื่องสถานะ คำขออาจเสร็จสิ้นที่เซิร์ฟเวอร์แล้ว หรืออาจล้มเหลวก่อนที่เซิร์ฟเวอร์จะอ่าน ปลั๊กที่ปิดแล้วไม่บอกผู้เรียกว่าเกิดกรณีใด การดำเนินการที่ไม่คงทนต่อการทำซ้ำในตำแหน่งนั้นเล่นซ้ำไม่ได้เพียงอย่างเดียว เพราะการเล่นซ้ำเปลี่ยนผลลัพธ์ที่ไม่รู้ให้เป็นการเขียนซ้ำซ้อน ที่นี่เองอุโมงค์ที่อุ่นแล้วและการเชื่อมต่อที่อุ่นแล้วมีพฤติกรรมเหมือนกัน เพราะทั้งคู่อาจล้มเหลวในจังหวะที่งานกำลังดำเนินอยู่
ใช้กลไกการลองใหม่หรือการทำซ้ำได้ที่บริการบันทึกไว้ แทนลูปที่เปิดปลั๊กใหม่ ทดสอบการฟื้นตัวอย่างชัดเจนโดยปิดการเชื่อมต่อที่ไม่ได้ใช้งานและดูว่าไคลเอนต์ทำอะไรต่อไป การเปิดปลั๊กใหม่ไม่ได้ทำให้การทำคำขอที่เปลี่ยนสถานะซ้ำปลอดภัย
เลือกขอบเขตก่อน แล้วจึงปรับแต่ง
เลือกขอบเขตเครือข่ายจากข้อกำหนดด้านการเข้าถึงและความเชื่อถือก่อนปรับแต่งสิ่งใด VPN ปกป้องส่วนระหว่างเพื่อนของตน ขณะที่ปลายทางของแอปพลิเคชันและส่วนข้อความธรรมดาใด ๆ นอกอุโมงค์ยังคงสำคัญ จากนั้นปรับวงจรชีวิตของการเชื่อมต่อภายในขอบเขตนั้น ข้อสรุปเรื่องอุโมงค์ที่ถูกกว่านั้นมาจากความเชื่อที่ว่าทุกคำขอทำจับมือซ้ำเท่านั้น และความเชื่อนั้นคือสิ่งที่ถูกทดสอบที่นี่
ส่วนความคงอยู่ใน RFC 9112 คือแหล่งอ้างอิงว่าการใช้ซ้ำสัญญาอะไรไว้จริง รวมถึงเงื่อนไขที่ทำให้การเชื่อมต่อสิ้นสุด อ่านสักครั้งก่อนเชื่อการวัดที่เพิกเฉยต่อเงื่อนไขเหล่านั้น