ออกแบบกรณีความล้มเหลวด้วยพร็อกซีดีบัก
เลือกการแก้ไข HTTP ความล่าช้า และการแลกเปลี่ยนที่ถูกตัดกลาง ตามพฤติกรรมไคลเอนต์ที่การทดสอบผ่านพร็อกซีต้องตรวจสอบ
พร็อกซีดีบักมีประโยชน์เมื่อไคลเอนต์ต้องพบกับการตอบสนองที่เซิร์ฟเวอร์ปกติแทบไม่สร้างขึ้น กำหนดพฤติกรรมของไคลเอนต์ก่อน แล้วจึงเลือกการแทรกแซงที่สร้างสภาวะนั้น
«คำขอล้มเหลว» เป็นกรณีทดสอบที่กว้างเกินไป การตอบสนองข้อผิดพลาด HTTP ที่ถูกต้อง การตอบสนองที่ไม่เคยมาถึง และการเชื่อมต่อที่ถูกตัดกลางการดาวน์โหลด เรียกร้องสิ่งที่แตกต่างจากแอปพลิเคชัน
| กรณี | พฤติกรรมที่ต้องตรวจสอบ |
|---|---|
| การตอบสนองข้อผิดพลาด HTTP ที่สมบูรณ์ | ไคลเอนต์อ่านสถานะและใช้นโยบายข้อผิดพลาดที่ตั้งใจไว้หรือไม่ |
| การตอบสนองที่ล่าช้า | ผู้ใช้ยกเลิกได้หรือไม่ และการหมดเวลาทำงานในขั้นตอนที่ตั้งใจไว้หรือไม่ |
| ฟิลด์เฮดเดอร์หรือบอดีที่ไม่ได้คาดหมาย | การแยกวิเคราะห์และการตรวจสอบล้มเหลวอย่างชัดเจนหรือไม่ |
| การแลกเปลี่ยนที่ถูกตัดกลาง | ข้อมูลที่ไม่สมบูรณ์ยังแยกออกจากผลลัพธ์ที่เสร็จสิ้นได้หรือไม่ |
ใช้การแทรกแซงในชั้นที่ถูกต้อง
Charles มีเบรกพอยต์ที่หยุดคำขอหรือการตอบสนองก่อนส่งต่อ ข้อความที่ดักได้สามารถตรวจสอบและแก้ไข ปล่อยผ่าน หรือยกเลิกได้ เครื่องมือ Rewrite ใช้การเปลี่ยนแปลงที่ทำซ้ำได้กับเฮดเดอร์ URL หรือบอดีที่ตรงกัน การจำกัดความเร็วควบคุมแบนด์วิดท์และความหน่วงที่เพิ่มขึ้น
การควบคุมเหล่านี้ทดสอบพฤติกรรมของไคลเอนต์ HTTP ได้ แต่ขีดจำกัดแบนด์วิดท์ไม่ใช่แบบจำลองที่แม่นยำของการสูญหายของแพ็กเก็ต IP แบบสุ่ม พร็อกซีอาจบัฟเฟอร์ข้อมูล ใช้การเชื่อมต่อซ้ำ และเปิดการเชื่อมต่อต้นทางแยกต่างหาก เลือกเครื่องมือทำให้เครือข่ายเสื่อมสภาพเมื่อสภาวะที่ต้องการอยู่ต่ำกว่า HTTP โดยเฉพาะ
ทำให้แต่ละกรณีตีความได้
จับคู่โฮสต์และเส้นทางที่ตั้งใจไว้อย่างแคบ เริ่มด้วยการแลกเปลี่ยนปกติ เปิดใช้การเปลี่ยนแปลงหนึ่งอย่าง และบันทึกว่าอะไรถูกเปลี่ยน หากการลองใหม่ไปถึงปลายทางที่สอง ตัดสินใจว่ากฎเดียวกันควรมีผลกับการลองนั้นหรือไม่ มิฉะนั้นการเขียนใหม่แบบไม่มีเงื่อนไขอาจเปลี่ยนทุกเส้นทางการกู้คืนให้เป็นความล้มเหลวเดิม
ในการอัปโหลดหรือการดำเนินการคล้ายการชำระเงิน การตอบสนองที่สูญหายไม่ได้พิสูจน์ว่าเซิร์ฟเวอร์ปฏิเสธคำขอ รวมความกำกวมนั้นไว้ในกรณีลองใหม่ แทนที่จะยืนยันว่าความล้มเหลวในการขนส่งทุกครั้งปลอดภัยที่จะทำซ้ำ
การตรวจสอบหรือแก้ไขเนื้อหา HTTPS ต้องให้ไคลเอนต์เข้าร่วมในการตั้งค่าการตรวจสอบ TLS ของพร็อกซีดีบัก พร็อกซีที่ขนส่งเฉพาะ CONNECT เห็นไบต์แอปพลิเคชันที่เข้ารหัส ใช้การกำหนดค่าทดสอบที่แยกออก แล้วคืนค่าการกำหนดเส้นทางและการตั้งค่าความเชื่อถือในภายหลัง เพื่อให้การสังเกตครั้งต่อไปอธิบายไคลเอนต์ปกติ