Request Rate Limit
RateLimit Header
RateLimit-Policy: <policy>[, <policy>]<policy>:<limit>;w=<window>[;policy="<description>"]<limit>: 제한량<window>: 윈도우 기간 (초)<description>: 정책 설명- 그 외에 정책을 설명하기위한 정보를
;<key>=<value>형태로 추가할 수 있지만 정확한 정보를 찾지 못했습니다.
RateLimit: limit=<limit>, remaining=<remaining>, reset=<reset><limit>: 제한량<remaining>: 남은 요청량<reset>: 다음 리셋까지 남은 시간 (초), 리셋이 되면limit과remaining모두 바뀔 수 있습니다.
HTTP/1.1 200 OK
Content-Type: application/json
RateLimit-Policy: 100;w=60;policy="sliding window log"
RateLimit: limit=100, remaining=99, reset=1
...
위의 예시는 아래와 같이 해석됩니다.
- 60 초의 윈도우 시간동안 최대 100 회 요청 가능한 Sliding Window 정책
- 99 회 추가 요청 가능
- 1 초 후 리셋
Leaky Bucket
Token Bucket
Fixed Window Counter
Sliding Window Log
Sliding Window Log는 요청이 오면
- 윈도우 시간 이전의 로그 삭제
- 윈도우 시간 내에 로그 수 확인
- 로그 수가 제한량보다
- 많거나 같으 경우 요청 거부
- 적은 경우 타임스탬프를 로그에 추가 후 요청 처리