3. HTTP 상태 코드 종류
• 1xx - 정보 응답
• 2xx - 성공 응답
• 3xx - 리다이렉션 메시지
• 4xx - 클라이언트 에러 응답
• 5xx - 서버 에러 응답
4. 요청을 계속 받았으며 프로세스를 계속 진
행한다
1xx - 정보 응답
100 - Continue
101 - Switching Protocol
102 - Processing
103 - Early Hints
* 거의 사용되지 않는다.
5. 클라이언트 요청이 성공적으로 수
행됨
2xx - 성공 응답
200 - OK
- 요청 성공!
- 주로 GET 요청에 대한 응답
201 - Created
- 요청이 성공적으로 처리 되어, 서버가 새로운 리소스
를 생성
- 주로 POST/PUT 요청에 대한 응답
204 - No Content
- 서버에 대한 요청이 성공적으로 처리되었지만, 제공
해줄 응답 데이터 없음
- PUT으로 수정 요청을 받았는데 수정사항이 없을 때
- DELETE 요청에 대한 응답
6. 요청이 완수되기 위해서는 추가적인 행동이
필요함
3xx - 리다이렉션 메시
지
301 - Moved Permanently
- 요청한 리소스의 URI가 변경되었음을 의미
- ex) google.com 요청 -> www.google.com
- 알아서 캐싱됨
304 - Not Modified
- 캐시를 목적으로 사용됨
- 계속해서 응답의 캐시된 버전을 사용할 수 있음
- 200 -> (새로고침) -> 304
7. 클라이언트의 잘못된 요청으로 서버가 이해
를 못함
4xx - 클라이언트 에러 응
답
400 - Bad Request
- 잘못된 문법으로 서버가 이해할 수 없음
- API에 정의되지 않은 방식으로 요청을 했을 때
- 로그인시 id만 보내고 pw는 보내지 않을 때
401 - Unauthorized(미승인)
- 인증이 되지 않아 수행할 수 없음
- 의미상 unauthenticated가 맞음(비인증)
- ex) 누구세요..?
403 - Forbidden
- 승인이 되지 않아 수행할 수 없음
- 의미상 Unauthorized가 맞음
- ex) 너는 안 돼.
8. 클라이언트의 잘못된 요청으로 서버가 이해
를 못함
4xx - 클라이언트 에러 응
답
404 - Not Found
- 서버는 요청받은 리소스를 찾을 수 없습니다
- 무조건 리소스가 서버에 존재하지 않는다는 것은 아
님
- 403 대신 404를 전송할 수도 있음.(보안)
405 - Method Not Allowed
- 요청이 허용되지 않은 메소드
- 요청 URL에 대해 지원하지 않은 메서드로 요청받았
을 때
- ex) 삭제 금지 api에 delete를 요청할 때
418 - I’m a teapot
- 서버는 커피를 찻 주전자에 끓이는 것을 거절합니다
- …??
9. 서버측의 오류.
5xx - 서버 에러 응답
500 - Internal Server Error
- 서버는 아직 처리 방법을 알 수 없습니다
- 서버 사용량 폭주, 백엔드 스크립트의 오류 등등
- 애매한 서버 문제들에 500으로 퉁..
503 - Service Unavailable
- 서버가 요청을 처리할 준비가 되지 않았습니다.
- 지금은 안 되지만 나중에는 가능함을 의미하고자 할
때
- 서버 사용량 폭주, 서버 패치 및 업데이트 등등
10. HTTP 상태 코드와 개발자
• 요청 확인 - 요청이 올바르게 수신되고 처리 되었는지 확인 가능, 어떤 문제가
있는지 신속하게 확인 가능
• 오류 처리 - 특정 상태 코드를 이해함으로써 개발자는 오류 처리 접근 방식을 조
금 더 수월하게 선택해서 해결할 수 있음
• 리다이렉션 - 3xx대 같은 코드들을 처리할 때 개발자는 올바르게 해석하여 유저
가 헤매지 않도록 사용자 경험을 보장해야 함
• 성능 최적화 - 클라이언트 측 캐싱을 활용하여 성능을 최적화 할 수 있음
• 커뮤니케이션 - 개발을 할 때 서로를 이해하는데 도움이 될 수 있음
11. 참고 자료
• MDN - https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
• 블로그 -
https://inpa.tistory.com/category/%EA%B0%9C%EB%B0%9C%20%EC%A7%
80%EC%8B%9D/HTTP%20%EC%A7%80%EC%8B%9D
(모든 상태코드들의 설명과 흐름 예시가 있음)