상태 코드
클라이언트가 보낸 요청의 처리 상태를 응답(response)에서 알려주는 기능
- 1xx (Informational) : 요청이 수신되어 처리중
- 2xx (Successful) : 요청 정상 처리
- 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요
- 4xx (Client Error) : 클라이언트 오류 , 잘못된 문법등으로 서버가 요청을 수행할 수 없음
- 5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함
만약 모르는 상태 코드가 나타난다면??
- 클라이언트가 인실할 수 없는 상태코드를 서버가 반환하면?
- 클라이언트는 상위 상태코드로 해석해서 처리
- 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 ( 상위 레벨로 해결! )
- 예)
- 299 ??? -> 2xx ( Successful )
- 451 ??? -> 4xx ( Client Error )
- 599 ??? -> 5xx ( Server Error )
1xx ( Informational ) : 요청을 보냈을때 요청이 수신되어서 뭔가 처리중이라는 뜻 하지만 실무에서 사용하는 일이 별로 없음!!
2xx ( Successful ) : 클라이언트의 요청을 성공적으로 처리
- 200 OK : 클라이언트의 요청을 성공적으로 처리한 대표적인 상태
- 201 Created : 클라이언트가 요청한것을 가지고 서버쪽에서 뭔가 리소스를 생성하는것 주로 POST로 뭔가 등록을 했을때 201 처리
- 202 Accepted
- 204 No Content

- 요청한 내용 GET으로 members의 100번 을 주세요 하고 보내면 서버에서 결과를 정상적으로 잘 처리해서 응답하면 200 OK!!

- POST인 경우에는 서버에서 자원을 생성하고 자원에 대한 uri관리도 서버에서 한다.
- POST로 아래 내용의 username 과 age 의 내용을 신규자원으로 등록해주세요 요청을 하면 서버에서 신규 리소스를 만들고 그 URI를 서버에서 알고있으면 HTTP에 응답 코드를 201이라고 내리고 Created라고 내리고 HTTP헤더에 Location 이라고 넣어준다.
그부분은 새로 생성된 리소스의 uri를 넣어준다. 그럼 201코드가 오면 아 자원이 생성되었고 Location헤더가 있을수 있겠구나 라고 판단할수 있다.
202 Accepted
요청이 접수되었으나 처리가 완료되지 않았음
- 배치 처리 같은 곳에서 사용
- 예 ) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리함
204 NO Content
서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음
- 예 ) 웹 문서 편집기에서 save 버튼
- save 버튼의 결과로 아무 내용이 없어도 된다.
- save 버튼을 눌러도 같은 화면을 유지해야 한다.
- 결과 내용이 없어도 204 메시지(2xx)만으로 성공을 인식할 수 있다.