상위 상태코드로 변환해서 해석함.
299 코드 반환시, 200번대로 해석하고 행동하면 된다.
실무에서는 잘 안써요
요청 성공
(POST로)요청 성공해서 새로운 리소스가 생성됨
Location 헤더에 신규 리소스의 URI 포함시켜줌
요청이 완료되었으나 처리되지 않았음
배치 처리 같은 곳에서 사용
잘 사용하진 않음
서버가 요청을 성공적으로 수행했지만 응답 페이로드 본문에 보낼 데이터가 없다.
웹 문서 편집기에서 저장버튼을 눌렀을 경우
리다이렉션은 요청을 완료하기 위해 유저 에이전트(=브라우저)의 추가 조치 필요 웹브라우저는 3**번대 응답의 결과에 Location헤더가 있으면, 해당 위치로 자동이동함
리다이렉션의 종류
리소스의 URI가 영구적으로 이동한 것
리소스의 URI가 일시적으로 이동한 것, 실무에서는 302만 주로 사용
POST로 주문을 입력한 후 웹 브라우저를 새로고침하면 주문이 중복으로 서버에 들어간다.
이를 방지하기 위해 포스트 요청에 대한 응답으로 302 Found를 준다.
캐시를 목적으로 사용한다.
클라이언트에게 리소스가 수정되지 않았음을 알려줘 클라이언트는 로컬 PC에 저장된 캐시를 재사용한다.
따라서 같은 요청을 계속 보내도 계속 실패함
요청을 수정해야 한다.
요청 구문, 메시지 오류, 파라미터가 잘못되거나 API 스펙이 안맞는 경우
클라이언트가 해당 리소스에 대한 인증이 필요함
인증(Authentication) 되지 않음
인증 : 본인이 누구인지 확인하는 것 (로그인)
응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명
서버가 요청을 이해했지만 승인을 거부하는 것
인증 자격은 있지만 권한이 불충분한 경우.
admin이 아닌 사용자가 관리자 페이지 접근하려는 경우
요청 리소스가 서버에 없음
또는 클라이언트가 권한이 없는 리소스에 접근시 해당 리소스를 숨길때
나중에 시간이 지나서 재실행하면 성공할 수 있음
서버 내부 문제로 오류발생, 일반적으로 사용
서버거 일시적인 과부하 또는 유지보수 작업으로 요청을 처리할 수 없음
Retry-After 헤더로 얼마뒤에 복구되는지 알 수 있음
남발하면 안되고 예외적인 상황에서만 만들어야 한다.