HTTP API 속도 제한 HTTP 응답 헤더의 예


답변:


127

다음은 HTTP API 속도 제한 HTTP 응답 헤더의 몇 가지 예입니다. 네 가지 일반적인 REST API : Github, Vimeo, Twitter 및 Imgur에서 가져옴 :

Github 속도 제한 http://developer.github.com/v3/#rate-limiting

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-RateLimit-Limit           | Request limit per hour                      |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Remaining       | The number of requests left for the time    |
|                             | window                                      |
+-----------------------------+---------------------------------------------+

Vimeo 속도 제한 http://developer.vimeo.com/guidelines/rate-limiting

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-RateLimit-Limit           | Request limit per day / per 5 minutes       |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Remaining       | The number of requests left for the time    |
|                             | window                                      |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Reset           | The remaining window before the rate limit  |
|                             | resets in UTC epoch seconds                 |
+-----------------------------+---------------------------------------------+

Twitter REST API 속도 제한 https://dev.twitter.com/docs/rate-limiting/1.1

참고 : Twitter는 Vimeo와 같은 유사한 이름의 헤더를 사용하지만 각 이름에 대시가 있습니다.

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-Rate-Limit-Limit          | The rate limit ceiling for that given       |
|                             | request                                     |
+-----------------------------+---------------------------------------------+
| X-Rate-Limit-Remaining      | The number of requests left for the         |
|                             | 15 minute window                            |
+-----------------------------+---------------------------------------------+
| X-Rate-Limit-Reset          | The remaining window before the rate limit  |
|                             | resets in UTC epoch seconds                 |
+-----------------------------+---------------------------------------------+

Imgur API 속도 제한 http://api.imgur.com/

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-RateLimit-UserLimit       | Total credits that can be allocated         |
+-----------------------------+---------------------------------------------+
| X-RateLimit-UserRemaining   | Total credits available                     |
+-----------------------------+---------------------------------------------+
| X-RateLimit-UserReset       | Timestamp (unix epoch) for when the credits |
|                             | will be reset                               |
+-----------------------------+---------------------------------------------+
| X-RateLimit-ClientLimit     | Total credits that can be allocated for the |
|                             | application in a day                        |
+-----------------------------+---------------------------------------------+
| X-RateLimit-ClientRemaining | Total credits remaining for the application |
|                             | in a day                                    |
+-----------------------------+---------------------------------------------+

12
자체 속도 제한 헤더를 디자인하는 경우 Best Current Practice BCP178은 관련 리소스이며 X- 접두사가 더 이상 사용되지 않도록 권장합니다. 자세한 내용은 원본 RFC / BCP를 확인하세요. tools.ietf.org/html/bcp178
10gistic

좋은 예, 패키지와 함께 사용할 수있는 Node.js 패키지를 만들었습니다 request. github.com/webjay/x-rate
webjay

32

API 특정 헤더 외에도 겸손한 표준 헤더를 잊지 마십시오.Retry-After

서버는 "Retry-After"헤더 필드를 전송하여 사용자 에이전트가 후속 요청을하기 전에 기다려야하는 시간을 나타냅니다 ....이 필드의 값은 HTTP 날짜 또는 지연 시간 (초)이 될 수 있습니다. 응답을받은 후.

표준은 503 또는 3xx 상태 코드와 함께 사용할 때 특정 추가 권장 사항을 만듭니다 .

503 (서비스를 사용할 수 없음) 응답과 함께 전송 된 경우 Retry-After는 클라이언트가 서비스를 사용할 수 없을 것으로 예상되는 시간을 나타냅니다. 3xx (리디렉션) 응답과 함께 전송되는 경우 Retry-After는 리디렉션 된 요청을 실행하기 전에 사용자 에이전트가 대기하도록 요청되는 최소 시간을 나타냅니다.



2
Retry-After와 함께 사용하기위한 것입니다 503또는 30x응답 tools.ietf.org/html/rfc7231#section-7.1.3
Russbear

3
@Russbear이지만 해당 섹션에는 다른 응답 코드와 함께 사용할 수 없음을 나타냅니다.
Raedwald

20
429 Too Many Requests : "응답 표현에는 조건을 설명하는 세부 정보가 포함되어야하며 새 요청을 만들기 전에 대기 할 시간을 나타내는 Retry-After 헤더를 포함 할 수 있습니다." tools.ietf.org/html/rfc6585#section-4
MRA
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.