תדירות הבקשה

מסמך זה חל על השיטות הבאות:

  • עדכון API (v4): fullHashes.find
  • Update API (v4): threatListUpdates.fetch
  • בקשות עדכון

    כדי למנוע עומס יתר בשרת וליהנות מהגנה אופטימלית, ב-Update API (v4) מוגדרים מרווחי זמן שבהם הלקוחות יכולים לשלוח בקשות לשרת הגלישה הבטוחה כדי לבצע בדיקות של כתובות URL (fullHashes.find) או כדי לעדכן את מסד הנתונים המקומי (threatListUpdates.fetch).

    הבקשה הראשונית לנתונים צריכה להתבצע במרווח אקראי בין 0 ל-1 דקות אחרי שהלקוח מתחיל או מתעורר. הבקשות הבאות יכולות להתרחש רק אחרי שתציינו את מגבלת הזמן של משך ההמתנה המינימלי או של מצב השהיה (back-off).

    משך המתנה מינימלי

    גם התגובה fullHashes.find וגם התגובה threatListUpdates.fetch כוללים שדה minimumWaitDuration שהלקוחות חייבים לציית לה.

    אם השדה minimumWaitDuration לא מוגדר בתגובה, לקוחות יכולים לעדכן כמה שהם רוצים ולשלוח כמה בקשות threatListUpdates או fullHashes שהם רוצים.

    אם השדה minimumWaitDuration מוגדר בתגובה, לקוחות לא יכולים לעדכן בתדירות גבוהה יותר ממשך ההמתנה. לדוגמה, אם התשובה fullHashes כוללת משך המתנה מינימלי של שעה אחת, הלקוח לא יכול לשלוח בקשות fullHashes עד שהשעה תסתיים, גם אם המשתמש מבקר בכתובת URL שקידומת הגיבוב שלה תואמת למסד הנתונים המקומי. (לתשומת ליבך: לקוחות יכולים לבצע עדכונים בתדירות נמוכה יותר ממשך ההמתנה המינימלי, אבל הדבר עלול להשפיע לרעה על ההגנה).

    מצב השהיה

    השהיה אוטומטית של הגיבוי חלה גם על התגובה 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 מוצלחת, הוא צריך לצאת ממצב השהיה לאחור ולפעול בהתאם למשך ההמתנה המינימלי שצוין למעלה.