200
- 200 OK
- 201 Created: 요청 성공해서 새로운 리소스가 생성됨
- 202 Accepted: 요청이 접수되었으나 처리가 완료되지 않았음
- 204 No Content: 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음
ex) 웹 문서 편집기에서 save 버튼 눌렀을 때
거의 200, 201 정도만 사용함
300
요청을 완료하기 위해 유저 에이전트(클라이언트 프로그램 - 웹 브라우저)의 추가 조치 필요
리다이렉션
웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트)
리다이렉션의 종류
영구 리다이렉션 (301, 308)
일시적인 리다이렉션 (302, 307, 303)
리소스의 URI가 일시적으로 변경
따라서 검색 엔진 등에서 URL을 변경하면 안 됨
PRG: Post/Redirect/Get
일시적인 리다이렉션 예시
Post로 주문 후에 새로고침을 한다면 중복 주문이 될 수 있음
-> 이를 방지하기 위해 Post로 주문 후에 주문 결과 화면을 Get 메소드로 리다이렉트
새로고침 해도 결과 화면을 Get으로 조회
302, 307, 303 정리
기타 리다이렉션 (300, 304)
400, 500
400대 오류는 오류의 원인이 클라이언트에게 있음
-> 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에 몇 번을 재시도해도 실패함 (복구 불가능, 요청을 수정해야 함)
500대 오류는 오류의 원인이 서버에 있음
-> DB 오류가 났을 시 요청에 실패했다가 복구가 되면 재시도 할 때 요청에 성공할 수 있음
400 Bad Request
클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
ex) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때
401 Unauthorized
클라이언트가 해당 리소스에 대한 인증이 필요함
401 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명
인증, 인가
403 Forbidden
서버가 요청을 이해했지만 승인을 거부함
주로 인증 자격 증명은 있지만, 접근 권한이 불충분한 경우
ex) 일반 사용자가 어드민 등급의 리소스에 접근한 경우
404 Not Found
요청 리소스를 찾을 수 없거나 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 아예 숨기고 싶을 때
500 Internal Server Error
서버 내부 문제로 오류 발생, 애매하면 500 오류
503 Service Unavailable
서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음
Retry-After 헤더 필드로 얼마뒤에 복구되는지 보낼 수도 있음
하지만 보통 서버 장애는 예측할 수 없으므로 500 에러로 떨어지는 경우가 많다
비즈니스 로직 상 예외인 경우에 500 에러를 내면 안 됨
ex) 미성년자 구매 불가 상품의 경우 예외 처리 시 500 에러는 서버 에러이기 때문에 사용하면 안 됨
'인프런 강의 > 김영한 Http' 카테고리의 다른 글
[Http] Http 헤더(2) - 캐시와 조건부 요청 (0) | 2024.01.17 |
---|---|
[Http] Http 헤더(1) - 일반 헤더 (1) | 2024.01.11 |
[Http] Http 메소드 활용 (0) | 2024.01.04 |
[Http] Http 메소드 (1) | 2023.12.27 |
[Http] Http 기본 (0) | 2023.12.26 |