요청 빈도

이 문서는 다음 메서드에 적용됩니다.

  • Update API (v4): fullHashes.find
  • Update API (v4): threatListUpdates.fetch
  • 업데이트 요청

    서버 과부하를 방지하고 최적의 보호 기능의 이점을 누리기 위해 Update API (v4)는 클라이언트가 세이프 브라우징 서버에 URL 확인(fullHashes.find)을 수행하거나 로컬 데이터베이스를 업데이트(threatListUpdates.fetch)할 수 있는 빈도에 시간 간격을 적용합니다.

    데이터의 초기 요청은 클라이언트가 시작되거나 절전 모드에서 해제된 후 0~1분 사이의 무작위 간격으로 발생해야 합니다. 후속 요청은 최소 대기 기간 또는 백오프 모드 시간 제한이 관찰된 후에만 발생할 수 있습니다.

    최소 대기 시간

    fullHashes.find 응답threatListUpdates.fetch 응답 모두 클라이언트가 준수해야 하는 minimumWaitDuration 필드가 있습니다.

    응답에 minimumWaitDuration 필드가 설정되지 않은 경우 클라이언트는 원하는 만큼 자주 업데이트하고 threatListUpdates 또는 fullHashes 요청을 원하는 만큼 전송할 수 있습니다.

    응답에 minimumWaitDuration 필드가 설정된 경우 클라이언트는 대기 시간보다 더 자주 업데이트할 수 없습니다. 예를 들어 fullHashes 응답에 최소 대기 시간이 1시간인 경우 사용자가 해시 프리픽스가 로컬 데이터베이스와 일치하는 URL을 방문 중이더라도 이 시간이 지날 때까지 클라이언트는 fullHashes 요청을 보내면 안 됩니다. 클라이언트는 최소 대기 기간보다 더 적게 업데이트될 수 있지만, 이는 보호에 부정적인 영향을 미칠 수 있습니다.

    백오프 모드

    자동 백오프는 fullHashes.find 응답threatListUpdates.fetch 응답에 모두 적용됩니다.

    실패한 HTTP 응답을 수신하는 클라이언트 (즉, 200 OK 이외의 HTTP 상태 코드)는 백오프 모드로 전환되어야 합니다. 백오프 모드에 진입하면 클라이언트는 계산된 시간 기간을 기다려야 서버에 다른 요청을 실행할 수 있습니다.

    클라이언트는 다음 수식을 사용하여 백오프 시간을 계산해야 합니다.

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

    N은 클라이언트에서 경험하는 실패한 연속 요청 수에 해당합니다. 첫 번째 실패한 요청 이후 N=1로 시작합니다. RAND는 0과 1 사이의 랜덤 숫자이며 업데이트가 실패할 때마다 선택해야 합니다.

    클라이언트가 성공적인 HTTP 응답을 수신하면 클라이언트는 백오프 모드를 종료하고 위에 지정된 최소 대기 시간을 따라야 합니다.