상태코드
클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다.
- 1xx (Informational) : 요청이 수신되어서 처리중이라는 의미인데 거의 사용하지 않는다.
- 2xx (Successful) : 요청이 정상 처리되고 있다는 의미이다.
- 200 서버가 리소스를 생성했다 ~~
- 201 새로운 리소스를 생성했다, 하고 location 을 넣어줌.
- 202 요청은 접수, 완료는 아직. (배치 처리 같은 곳에 사용함)
- 204 no content 요청은 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없다.
예) 게시글의 저장 결과로 아무 내용이 없어도 된다. 같은 화면을 유지해야 한다.
- 3xx (Redirection) : 요청을 완료 하려면 웹 브라우저에 추가 행동이 필요하다는 의미다.
- 300 multiple choices 거의 안씀
- 301 moved permanently
리다이렉트시 요청 메서드가 get으로 변하고 본문이 제거될 수 있음
- 302 found
요청 메소드를 get 으로 바꿀 수도 있고 아닐 수도 있음
- 303 see other
무조건 get으로 요청 메서드를 바꿈
실무에서 제일 많이 쓰는 것이 일시적인 리다이렉션이다.
- 304 not modified
캐시를 목적으로 사용한다.
클라이언트가 캐시가 만료된 것 같아 다시 데이터를 요청했을 때, 서버가 캐시가 만료되지 않았으니 기존에 가지고 있는 캐시에서 꺼내서 사용하라고 알려준다. (리다이렉트를 캐시로 함)
응답에 메세지 바디를 포함하면 안된다.
조건부 get, head 요청시 사용된다.
- 307 temporary redirect
302와 유사 그런데 요청 메서드와 본문을 유지해야함
- 308 permanent redirect
리다이렉트시 요청 메서드와 본문 유지
PRG : Post/Redirect/Get
일시적인 리다이렉션 예시
post로 주문 후 웹 브라우저를 새로 고침하면(요청이 한번 더 들어감)?
-> 중복 주문이 들어갈 수 있음 .
사용성이 좋아짐. 많이 사용함. 서버에서도 일이 줄어들어 좋음
- 4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
- 400
클라이언트 오류
클라이언트의 요청이 잘못된 문법 등으로 서버가 요청을 수행 불가
똑같이 재시도 해도 오류
복구 불가능
요청 파라미터가 잘못되었거나, api 스펙이 맞지 않을 때 발생한다.
- 401 Unauthorized
인증이 되지 않음
www-authenticate 헤더와 함께 인증 방법을 설명해야함
인가 권한처럼 특정 리소스에 접근할 수 있는 권한
- 403 fornidden
서버가 요청을 이해했지만, 승인 거부
로그인은 했는데, 접근 권한이 없음
- 404 not fount
요청 리소스가 없음
- 5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함, 복구 가능 5
- 500 서버 내부 에러
- 503 서비스 불가
서버 다운을 할 때, 일시적으로 예정된 작업으로 잠시 요청을 처리 할 수 있음.
최대한 5-- 에러는 만들지 않도록 해야함
모르는 코드가 나와도 앞에 수를 보고 이해를 하면 된다.