YJ의 새벽
HTTP 상태 코드 ( 에러코드 ) 본문
- 상태 코드
--클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능
-- 1xx ( Infromational ) : 요청이 수신되어 처리중 *거의 사용 x
-- 2xx ( Successful ) : 요청 정상 처리
-- 3xx ( Redirection ) : 요청을 완료하려면 추가 행동이 필요
-- 4xx ( Client Error ) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할수 없음
-- 5xx ( Server Error ) : 서버 오류 , 서버가 정상 요청을 처리하지 못함.
- 2 xx - Successful 요청정상처리
-- 200 OK
-- 201 Created
-- 202 Accepted
-- 204 No Content
202 Accepted -- 요청이 접수되었으나 처리가 완료되지 않았음.
-- 배치 처리 같은곳에서 사용
-- ex) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리함
204 No Content -- 서버가 요청을 성공적으로 수행했지만 , 응답 페이로드 본문에 보낼 데이터가 없음.
-- save 버튼의 결과로 아무 내용이 없어도 된다.
-- save 버튼을 눌러도 같은 화면을 유지해야 한다.
-- 결과 내용이 없어도 204 메시지 (2xx) 만으로 성공을 인식할수 있다.
- 3 xx - Redirection 요청을 완료하기위해 유저 에이전트의 추가 조치 필요
3xx 응답 결과에 Location 헤더가 있으면 , Location 위치로 자동 이동
-- 300 Multiple Choices
-- 301 Moved Permanently
-- 302 Found
-- 303 See Other
-- 304 Not Modified
-- 307 Temporary Redirect
-- 308 Permanent Redirect
영구 리다이렉션
-- 301, 308
-- 리소스의 URI 가 영구적으로 이동
-- 원래의 URL 사용 X
-- 301 : 리다이렉트시 요청 메서드가 GET 으로 변하고, 본문이 제거될 수 있음.
-- 308 : 301 기능은 같음,
리다이렉트시 요청 메서드와 본문유지 ( POST <-> POST )
일시적인 리다이렉션
-- 302, 307 , 303
-- 리소스의 URI 가 일시적으로 변경
-- 302 : 리다이렉트시 요청 메서드가 GET 으로 변하고, 본문이 제거될 수 있음. --> GET 으로 변할수 있음
-- 307 : 302 와 기능은 같음. --> 메서드가 변하면 안됨
리다이렉트시 요청 메서드와 본문유지
-- 303 : 302 와 기능은 같음 --> 메서드가 GET 으로 변경
리다이렉트시 요청 메서드가 GET 으로 변경
- 4 xx - Client Error 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음
-- 오류의 원인이 클라이언트에 있음.
-- 똑같은 재시도가 계속 실패 . 클라이언트가 잘못된 요청이기에 .
-- 400 Bad Request
--요청구문, 메시지 등등 오류
--클라이언트는 요청 내용을 다시 검토하고, 보내야함
--ex) 요청 파라미터가 잘못되거나 , API 스펙이 맞지 않을때 .
-- 401 Unauthorized
--클라이언트가 해당 리소스에 대한 인증이 필요함
--인증되지 않음
--인증 : 본인이 누구인지 확인(로그인)
--인가 : 권한부여
-- 403 Forbidden
--서버가 요청을 이해했지만 승인을 거부함.
--ex) 어드민 등급이 아닌 사용자가 로그인은 했지만 , 등급이 아니라서 접근이 안됨
-- 404 Not Found
--요청 리소스가 서버에 없음
--클라이언트가 권한이 부족한 리소스에 접근할때, 해당리소스를 숨기고싶을때.
- 5 xx - Server Error 서버오류
-- 서버 문제로 오류 발생
-- 서버 문제가 있기에 재시도 하면 성공할 수도 있음. !!
-- 500 Internal Server Error
--서버 문제로 오류 발생, 애매하면 500 오류
-- 503 Service Unavailable
--서비스 이용 불가
--서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할수 없음.
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런
www.inflearn.com
'Spring > HTTP 웹 기본지식' 카테고리의 다른 글
HTTP 헤더 ( 캐시 ) (0) | 2023.04.10 |
---|---|
HTTP 헤더 (0) | 2023.04.09 |
HTTP API 설계 (0) | 2023.04.07 |
HTTP 메서드 활용 (0) | 2023.04.07 |
HTTP 메서드 속성 ( 안전, 멱등, 캐시가능 ) (0) | 2023.04.07 |