การลองใหม่ของการยืนยันตัวตนผ่านพร็อกซีและเนื้อหาการอัปโหลดที่ไม่สามารถทำซ้ำได้
ทำความเข้าใจว่าเหตุใดการลองยืนยันตัวตนซ้ำจึงอาจเปิดเผยสตรีมการอัปโหลดแบบครั้งเดียว และเลือกบัฟเฟอร์แบบมีขอบเขตหรือเนื้อหาที่ทำซ้ำได้อย่างตั้งใจ
GET สามารถยืนยันตัวตนผ่านพร็อกซีได้ ในขณะที่ POST หรือ PUT ล้มเหลวด้วยข้อผิดพลาดเนื้อหาที่ทำซ้ำไม่ได้หรือการกรอกลับ บัญชีอาจถูกต้อง: การแลกเปลี่ยนการยืนยันตัวตนอาจต้องมีคำขออื่นหลังจากไคลเอนต์ใช้การอัปโหลดไปแล้ว
| แหล่งที่มาของเนื้อหา | ตัวเลือกการทำซ้ำ |
|---|---|
| เนื้อหาขนาดเล็กจำกัด | บัฟเฟอร์แบบมีขอบเขตสามารถเก็บไบต์ไว้ได้ |
| ไฟล์ที่ค้นหาได้ | อินเทอร์เฟซการกรอกลับที่ไคลเอนต์รองรับสามารถทำให้ทำซ้ำได้ |
| ตัวสร้าง ท่อ หรือผู้ผลิตแบบสด | แหล่งแบบครั้งเดียวอาจต้องใช้การออกแบบอื่น |
libcurl จัดทำเอกสารคอลแบ็กการค้นหาสำหรับการใช้งานรวมถึงการยืนยันตัวตนหลายรอบ Jersey มีโหมดประมวลผลเอนทิตีแบบมีบัฟเฟอร์และแบบแบ่งส่วน ขึ้นอยู่กับพฤติกรรมของคอนเนกเตอร์ ตัวอย่าง คอนเนกเตอร์ Jersey 2 Apache แสดงการตั้งค่าแบบมีบัฟเฟอร์ ทั้งสองแบบไม่ได้ทำให้การอัปโหลดในหน่วยความจำแบบไม่จำกัดเหมาะสม
ทำซ้ำวิธีและแหล่งเนื้อหาที่ล้มเหลว GET เตรียมพร้อมไม่มีการอัปโหลดให้ทำซ้ำ และไม่ได้พิสูจน์ว่าการอัปโหลดภายหลังใช้การเชื่อมต่อหรือสถานะการยืนยันตัวตนร่วมกัน ปลายทาง วัตถุไคลเอนต์ หรือนโยบายการเชื่อมต่อใหม่อาจเปลี่ยนสิ่งนั้นได้ เนื้อหาที่อิงไฟล์และสตรีมสดก็แตกต่างกันเช่นกัน แม้ว่าข้อความตัวอย่างจะเหมือนกัน
หากคุณบัฟเฟอร์ ให้กำหนดขีดจำกัดขนาด ตำแหน่งจัดเก็บ และอายุการใช้งาน การอัปโหลดพร้อมกันจะทวีคูณต้นทุน และข้อมูลที่ละเอียดอ่อนจะยังคงอยู่ทุกที่ที่เก็บบัฟเฟอร์
การยืนยันตัวตนล่วงหน้ากับพร็อกซีที่เข้ากันได้ซึ่งเป็นที่รู้จัก สามารถหลีกเลี่ยงการท้าทายครั้งแรกได้หนึ่งครั้ง แต่ไม่สามารถตัดทุกรอบการยืนยันตัวตน การเปลี่ยนเส้นทาง หรือการเชื่อมต่อที่ปิดในภายหลังซึ่งอาจต้องลองอีกครั้ง
เก็บการตอบกลับของพร็อกซี จุดที่ใช้เนื้อหา และข้อผิดพลาดการทำซ้ำไว้ด้วยกัน จากนั้นแยกการทำซ้ำของโปรโตคอลออกจากผลลัพธ์แอปพลิเคชันที่ไม่แน่นอน: การส่งอาจถูกประมวลผลไปแล้วก่อนที่การตอบกลับจะสูญหาย ปฏิบัติตามกฎ idempotency ของปลายทางก่อนส่งอีกครั้ง