티스토리 뷰

상태코드는 서버로부터 request 결과를 전달하는 코드이다.

 

상태코드 클래스 설명
1xx Informational 요청을 받아들여 처리중
2xx Successful 요청 정상 처리
3xx Redirection 요청을 완료하기 위해 추가 동작이 필요
4xx Client Error 클라이언트 오류, 서버가 요청을 이해불가
5xx Server Error 서버오류, 서버가 정상 요청 처리불가

100번대 코드는 거의 사용하지 않는다. 상태코드는 세부적으로 나뉘지만 몇 번대의 코드인가가 가장 중요하다.

2xx 성공

클라이언트의 요청이 성공적으로 처리되었다.

 

코드번호 상태  설명
200 OK 요청성공
201 Created 요청을 성공해서 새로운 리소스가 생성됨(Location 헤더 필드로 식별가능)
202 Accepted 요청이 접수되었으나 처리가 완료되지 않음(이후 처리예정)
204 No Content 요청을 수행했으나 응답 본문에 보낼 데이터가 없음 (예시 - save기능)

3xx 리다이렉션

요청이 정상처리되기 위해 브라우저 측에서 특별한 처리가 수행되야함을 나타낸다. 웹 브라우저는 3xx 결과에 Location 헤더가 있으면 해당 위치로 자동 이동한다. 300 Multiple Choices는 거의 안 쓴다.

 

구분 상태코드 이름 설명
영구 리다이렉션
(리소스의 URI가 영구적 변경)
301 Moved Permanently 리다이렉트시 요청 메소드가 GET으로 변하고 본문이 제거될 수 있음(대부분 GET으로 변하고 제거됨)
308 Permanent Redirect 리다이렉트시 요청 메소드와 본문을 유지
일시 리다이렉션
(리소스의 URI가 일시적으로 변경)
302 ✨ Found 리다이렉트시 요청 메소드가 GET으로 변하고 본문이 제거될 수 있음(대부분 GET으로 변하고 제거됨)
307 Temporary Redirect 리다이렉트시 요청 메소드와 본문을 유지
303 See Other 리다이렉트시 요청 메소드가 GET으로 변경됨(확실)
특수 리다이렉션 304  Not Modified 캐시를 목적으로 사용됨, 응답에 메세지 바디를 포함하면 안 됨

대다수의 경우 301, 302를 사용한다고 한다. GET으로 바뀔 수 있음이지만 대다수의 브라우저에서 GET으로 바뀌게 설정되어 있다고 한다.

PRG(Post/Redirect/Get)

중복 Post를 방지하는 방법이다. 새로고침하면 Post가 중복 발생하는데 PRG를 사용하여 302를 돌려주면 브라우저는 결과 화면으로 다이렉트되어 Get 요청만 하게 되므로 Post 중복 발생을 줄인다.

 

예를 들어 온라인 쇼핑을 할 때, 주문을 Post로 넣으면 서버는 302를 돌려준다. 브라우저는 같은 페이지가 아닌 주문 완료 페이지로 리다이렉션 시킨다. 여기서 새로고침을 하면 Get 요청만 되기 때문에 Post의 중복 발생이 일어나지 않고 Get 요청에 따른 주문 완료 현황만 보여줄 수 있다.

4xx 클라이언트 오류

클라이언트 오류(잘못된 문법 등)로 서버가 요청을 이해할 수 없음을 의미한다.

 

코드번호 이름 설명
400 Bad Request 클라이언트의 잘못된 요청으로 서버가 처리불가(요청구문, API 스펙, 메세지 등의 오류)
401 Unauthorized 클라이언트가 해당 리소스에 대한 인증이 필요함 (이름은 권한불가이지만 로그인 등 인증에 관련된 내용이다.)
403 Forbidden 서버가 요청을 이해했지만 승인을 거부 (접근 권한이 불충분한 경우)
404 Not Found 요청 리소스를 서버에서 찾을 수 없음(권한이 부족한 리소스에 접근 시 해당 리소스를 숨기고 싶을 때도 사용함)

5xx 서버 오류

서버의 문제가 있음을 의미한다. 500번대 오류는 서버 자체의 오류가 생겼을 때만 발생시키도록 설계해야 한다.

 

코드번호 이름 설명
500 Internal Server Error 서버 내부에 오류 발생
503 Service Unavailable 서버가 일시적 과부하 또는 예정된 작업으로 잠시 서비스가 이용불가한 상태

정리

서버에서 클라이언트 요청에 대한 응답(response)로 결과를 보낼 때 상태를 나타내는 코드이다. 몇 번대의 상태코드인지가 가장 중요하고, 해당 문제에 맞는 상태코드를 보내주는 것이 중요하다.

 

더보기

TCP/IP 쉽게, 더 쉽게 + 모두의 네트워크 + 그림으로 배우는 htttp & network basic 책을 읽고, 김영한님 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 정리한 내용입니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함