특정 시간동안 처리할 수 있는 속도를 초과할 경우 발생하는 오류
처리량에 제한이 있나보다.. 첨보는 에러라서 기록. 크롤링하면서 발생했던 오류이다. 보통 500, 304, 404, 503, 403 은 많이 봤었는데 429 너 뭔데. 이름에서 바로 느껴지긴하지만 숫자코드는 나름 생소하다.

HTTP 429 “Too Many Requests”란?
사용자가 일정 시간 안에 너무 많은 요청을 서버로 보냈을 때 발생하는 상태 코드
원인
- API 또는 웹사이트에서 허용하는 요청 빈도(속도 제한, Rate Limit)를 초과했을 때
- 봇, 스크립트, 반복 새로고침, 프로그램적으로 과도한 요청이 발생할 때
- 서버가 자신을 보호하기 위해 일시적으로 추가 요청을 차단할 때
이 에러가 발생하면 서버는 클라이언트가 일정 시간 지난 뒤 다시 시도할 것을 권장하며, 응답 헤더에 대기해야 할 시간(Retry-After)을 명시하는 경우도 있다.
Retry-After
- 특정 날짜/시간을 HTTP-date 포맷으로 표기 (`Retry-After: Wed, 21 Oct 2015 07:28:00 GMT`)
- 초(seconds) 단위로 대기 시간 표기 (`Retry-After: 120`)
해결 방법
- 요청 빈도를 줄이거나, 일정 시간 기다린 후 다시 시도
- API라면 공식 문서에 명시된 Rate Limit을 확인해 지켜야 함
- 반복적으로 발생한다면 자동화 스크립트, 확장 프로그램, VPN 등을 점검
결론적으로, 429 에러는 서버 자원을 보호하고 정상 이용자 경험을 위해 트래픽 제한이 필요한 경우에 발생하는 정상적인 응답이다. 주어진 제한 내에서 요청을 하도록 조절해야 한다.
delay를 추가하고 빈도를 낮춰야겠다.
'Development' 카테고리의 다른 글
| [PHP] 날짜별 코드 정리 (0) | 2021.12.27 |
|---|---|
| [jquery] page reload (0) | 2021.12.22 |
| Docker vs Virtual Box (0) | 2021.12.21 |
| PowerShell에서 IP 주소 확인하는 법 (0) | 2021.12.21 |
| 오늘의 꿀팁 (0) | 2021.12.21 |