[핵심 답변]
HTTP status code는 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드를 통해 요청의 성공/실패 여부를 판단할 수 있습니다. 100번대부터 500번대까지 총 5개의 클래스로 구분되어 HTTP 요청에 대한 상태를 알려줍니다.
[면접
TIP]
종종 나오는 면접질문 중에 하나 입니다. status code무엇인지, 알고있는 status code를 모두 설명해 달라는 질문도 하곤 합니다. 자주 사용하는 대표적인 status code만 외워가도 충분한 답을 할 수 있습니다. (200, 201, 400, 401, 403, 404, 500)
Status code
웹 개발시 서버와 클라이언트가 HTTP 통신할 때 주고받아야 할 값중에 하나입니다. 클라이언트로 부터 받은 request에 대한 서버의 response에 대한 간략할 설명 이라고 볼 수 있습니다. 상황에 알맞는 status code를 response에 담아서 클라이언트에 넘겨주면 이를 토대로 클라이언트는 알맞는 대응을 할 수 있습니다.
모든 HTTP status code는 5개의 클래스로 구분됩니다.
•
1xx (정보): 요청을 받았으며 작업을 계속한다.
•
2xx (성공): 클라이언트가 요청한 동작을 성공적으로 수신하여 이해했고 성공적으로 처리하였다.
•
3xx (리다이렉션): 요청을 완료하기 위해 추가 작업 조치가 필요하다.
•
4xx (클라이언트 오류): 클라이언트의 요청에 문제가 있다.
•
5xx (서버 오류): 서버가 유효한 요청의 수행을 실패했다.
[참고] 자주 등장하는 HTTP 응답코드
status code | message | |
200 | OK | 요청이 성공함 (ex. 잔액조회 성공) |
201 | Created | 리소스 생성 성공 (ex. 게시글 작성 성공, 회원가입 성공) |
400 | Bad Request | 데이터의 형식이 올바르지 않는 등 서버가 요청을 이해할 수 없음
(ex. 올바르지 않은 형식의 데이터 입력 등) |
401 | Unauthorized | 인증되지 않은 상태에서 인증이 필요한 리소스에 접근함
(ex. 로그인 전에 사용자 정보 요청 등) |
403 | Forbidden | 인증된 상태에서 권한이 없는 리소스에 접근함
(ex. 일반 유저가 관리자 메뉴 접근 등) |
404 | Not Found | |
502 | Bad Gateway | 서버에서 예상하지 못한 에러가 발생함
(ex. 예외처리를 하지 않은 오류가 발생 등) |