상태 코드란 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능입니다.
여기서 세번째 그림을 보면 HTTP/3 버전 이후 상태 코드인 200을 받은 것을 알 수 있습니다.
이처럼 상태코드는 컴퓨터가 알아들으수 있도록 세자리 숫자로 이루어져 있습니다.
현재도 상태 코드가 추가 중이며, 만약 모르는 상태코드가 반환이 되었을 때는 세자리 숫자 중 맨 앞의 숫자에 따라 행동을 달리하면 됩니다.
클라이언트의 요청을 성공적으로 처리한 것을 의미합니다.
ex) 요청 후 1시간 뒤에 배치 프로세스가 요청을 처리함
ex) velog 임시저장, wiki 임시저장
요청을 완료하기 위해 유저 에이전트의 추가 조치가 필요합니다.
그리고 만약 3xx 응답에 Location 헤더가 있으면, Location 가 지정한 위치로 자동으로 이동(Redirection)됩니다.
위 그림과 같이 요청을 했을때 서버에서는 사이트가 변경되었다고 응답을 주면 클라이언트에서는 Location에 있는 uri로 새로운 요청을 하게 됩니다.
특정 리소스의 URI가 영구적으로 이동 ex) /members -> /users, /study -> new-study
리소스의 URI가 일시적으로 변경하는 것입니다. ex) 주문 후 주문 내역 화면으로 이동하는 것
307, 303을 권장하지만 현실적으로 많은 애플리케이션이 302를 기본값으로 사용하고 있으며, GET으로 변해도 되면 큰 문제 없습니다.
PRG: Post/Redirect/Get 란
Post 주문 후 웹브라우저를 새로고침하면 재요청이 일어나 중복 주문이 일어날 수 있다.
이럴때 PRG를 사용해야 한다.
POST 주문 후 주문 결과화면을 GET 메서드로 리다이렉트해준다. 따라서 새로고침하더라도 중복 주문이 일어날 수 없고 주문 결과만 다시 불러옵니다.
클라이언트의 요청에 잘못된 문법등으로 서버가 요청할 수 없을때 사용합니다. 클라이언트가 잘못된 요청, 데이터를 보내고 있기때문에, 재시도를 하더라도 실패합니다.
400(Bad Request): 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음.
ex) 요청 파라미터 오류, api 스펙에 맞지 않음
401(Unauthorized): 인증이 되지 않았음을 의미합니다. 401 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증방법을 설명해야합니다.
403(Forbidden): 서버가 요청을 이해했지만 승인을 거부함, 주로 인증 자격은 있지만, 접근 권한이 불충분한 경우
ex) 어드민 등급이 아닌 사용자가 로그인은 했지만, 어드민 등급의 리소스에 접근하는 경우
404(Not Fount): 요청 리소스가 서버에 없음 또는 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 숨기고 싶을때 사용합니다.
서버 오류가 발생했을 때 사용하며, 재시도 할 경우 성공할 수도 있습니다.(복구가 됐을때)
ex) 서버 점검 시간
언제 5xx 에러를 사용해야 하나요?
ex) null 에러, 디비 다운
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard