Tần suất yêu cầu

Tài liệu này áp dụng cho các phương thức sau:

  • Cập nhật API (v4): fullHashes.find
  • Cập nhật API (v4): threatListUpdates.fetch
  • Yêu cầu cập nhật

    Để ngăn tình trạng máy chủ quá tải và hưởng lợi nhờ biện pháp bảo vệ tối ưu, API Cập nhật (v4) áp dụng khoảng thời gian mà ứng dụng có thể gửi yêu cầu đến máy chủ Duyệt web an toàn để thực hiện kiểm tra URL (fullHashes.find) hoặc cập nhật cơ sở dữ liệu cục bộ (threatListUpdates.fetch).

    Yêu cầu ban đầu cho dữ liệu phải xảy ra tại một khoảng thời gian ngẫu nhiên từ 0 đến 1 phút sau khi ứng dụng khởi động hoặc đánh thức. Các yêu cầu tiếp theo chỉ có thể xảy ra sau khi đã quan sát được thời gian chờ tối thiểu hoặc giới hạn thời gian của chế độ đợi.

    Thời gian chờ tối thiểu

    Cả phản hồi fullHashes.find phản hồithreatListUpdates.fetch phản hồi đều có một trường minimumWaitDuration mà ứng dụng phải tuân theo.

    Nếu trường minimumWaitDuration không được đặt trong phản hồi, thì ứng dụng có thể cập nhật thường xuyên tuỳ ý và gửi bao nhiêu yêu cầu threatListUpdates hoặc fullHashes tuỳ ý.

    Nếu trường minimumWaitDuration được đặt trong phản hồi, thì ứng dụng không thể cập nhật thường xuyên hơn khoảng thời gian chờ. Ví dụ: nếu phản hồi fullHashes có thời gian chờ tối thiểu là 1 giờ, thì ứng dụng không được gửi bất kỳ yêu cầu fullHashes nào cho đến khi hết giờ đó, ngay cả khi người dùng đang truy cập vào một URL có tiền tố băm khớp với cơ sở dữ liệu cục bộ. (Xin lưu ý rằng ứng dụng có thể cập nhật với tần suất ít hơn thời gian chờ tối thiểu, nhưng điều này có thể ảnh hưởng tiêu cực đến việc bảo vệ.)

    Chế độ thời gian đợi

    Tính năng tự động sao lưu áp dụng cho cả phản hồi fullHashes.findthreatListUpdated.fetch.

    Các ứng dụng nhận được phản hồi HTTP không thành công (tức là bất kỳ mã trạng thái HTTP nào khác ngoài 200 OK) phải chuyển sang chế độ thời gian đợi. Khi ở chế độ thời gian đợi, ứng dụng phải đợi khoảng thời gian tính toán rồi mới có thể gửi một yêu cầu khác đến máy chủ.

    Ứng dụng phải sử dụng công thức sau đây để tính toán khoảng thời gian đợi:

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

    N tương ứng với số yêu cầu liên tiếp không thành công mà ứng dụng gặp phải (bắt đầu bằng N=1 sau yêu cầu không thành công đầu tiên). RAND là một số ngẫu nhiên nằm trong khoảng từ 0 đến 1. Số này cần được chọn sau mỗi lần cập nhật không thành công.

    Sau khi nhận được phản hồi HTTP thành công, ứng dụng phải thoát khỏi chế độ đợi và tuân theo thời gian chờ tối thiểu nêu trên.