ความถี่ของคําขอ

เอกสารนี้ใช้กับวิธีการต่อไปนี้

  • API การอัปเดต (v4): fullHashes.find
  • API อัปเดต (v4): threatListUpdates.fetch
  • อัปเดตคำขอ

    เพื่อป้องกันไม่ให้เซิร์ฟเวอร์ทำงานหนักเกินไปและใช้ประโยชน์จากการปกป้องที่ดีที่สุด อัปเดต API (v4) จะกำหนดช่วงเวลาสำหรับความถี่ที่ไคลเอ็นต์จะส่งคำขอไปยังเซิร์ฟเวอร์ Google Safe Browsing เพื่อทำการตรวจสอบ URL (fullHashes.find) หรืออัปเดตฐานข้อมูลในเครื่อง (threatListUpdates.fetch)

    คำขอข้อมูลเริ่มต้นจะต้องเกิดขึ้นในช่วงเวลาแบบสุ่มระหว่าง 0 ถึง 1 นาทีหลังจากที่ไคลเอ็นต์เริ่มต้นหรือเริ่มทำงาน คำขอที่ตามมาจะเกิดขึ้นก็ต่อเมื่อมีการทำตามระยะเวลารอขั้นต่ำหรือโหมดย้อนกลับเท่านั้น

    ระยะเวลารอต่ำสุด

    ทั้งการตอบกลับ FullHashes.find และการตอบกลับ threatListUpdates.fetch มีช่อง minimumWaitDuration ที่ไคลเอ็นต์ต้องปฏิบัติตาม

    หากไม่ได้ตั้งค่าช่อง minimumWaitDuration ในการตอบกลับ ไคลเอ็นต์จะอัปเดตได้บ่อยเท่าที่ต้องการและส่งคำขอ threatListUpdates หรือ fullHashes ได้มากเท่าที่ต้องการ

    หากตั้งค่าช่อง minimumWaitDuration ในการตอบกลับ ไคลเอ็นต์จะอัปเดตบ่อยกว่าระยะเวลารอไม่ได้ เช่น หากการตอบกลับด้วย fullHashes มีระยะเวลารอขั้นต่ำ 1 ชั่วโมง ไคลเอ็นต์ต้องไม่ส่งคำขอ fullHashes ใดๆ จนกว่าจะผ่านชั่วโมงนั้นไปแล้ว แม้ว่าผู้ใช้จะไปที่ URL ที่มีคำนำหน้าแฮชตรงกับฐานข้อมูลในเครื่องก็ตาม (โปรดทราบว่าไคลเอ็นต์จะอัปเดตได้น้อยกว่าระยะเวลารอขั้นต่ำ แต่อาจส่งผลเสียต่อการปกป้อง)

    โหมด Back-off

    การย้อนกลับอัตโนมัติจะมีผลกับทั้งการตอบสนอง FullHashes.find และการตอบสนอง threatListUpdates.fetch

    ไคลเอ็นต์ที่ได้รับการตอบกลับ HTTP ที่ไม่สำเร็จ (กล่าวคือ รหัสสถานะ HTTP อื่นที่ไม่ใช่ 200 OK) ต้องเข้าสู่โหมดย้อนกลับ เมื่ออยู่ในโหมดย้อนกลับ ไคลเอ็นต์ต้องรอระยะเวลาที่คำนวณก่อน จึงจะส่งคำขออื่นไปยังเซิร์ฟเวอร์ได้

    ไคลเอ็นต์ต้องใช้สูตรต่อไปนี้ในการคำนวณระยะเวลา Back-off

    MIN((2N-1 * 15 minutes) * (RAND + 1), 24 hours)

    N คือจำนวนคำขอที่ไม่สำเร็จต่อเนื่องกันซึ่งไคลเอ็นต์ได้รับประสบการณ์ (เริ่มต้นด้วย N=1 หลังจากคำขอที่ไม่สำเร็จครั้งแรก) RAND เป็นตัวเลขสุ่มระหว่าง 0 ถึง 1 ซึ่งต้องเลือกหลังจากการอัปเดตที่ไม่สำเร็จทุกครั้ง

    เมื่อไคลเอ็นต์ได้รับการตอบกลับ HTTP ที่สำเร็จ ไคลเอ็นต์จะต้องออกจากโหมด Back-off และทำตามระยะเวลารอขั้นต่ำที่ระบุไว้ด้านบน