2XX

  • 200 : OK 
  • 201 : Created 
    • 클라이언트에서  요청한 것을 기반으로 서버에서 생성한 것을 의미한다. 보통 이런 경우에는 POST로 서버에서 자원을 생성해서 응답해줄 때 Location Header 를 응답한다. 
  • 202 : Accepted
    • 요청 접수는 되었지만, 처리가 되지 않았다. 
  • 204 : No Content 
    • 서버가 성공적으로 수행했지만, 응답 페이로드에서 비어있는 상태(보낼 데이터가 없는 경우)

3XX

요청을 완료하기 위해서 웹 브라우저상에 추가 조치가 필요하다. 좀 더 고급진 표현을 쓰면, 유저 에이전트의 조치가 필요하다. 

영구 리다이렉션

  • 301
    • POST 로 요청했을 때 리다이렉션 GET으로 변경되며 HTTP 바디 내용이 날라가게 된다. 실무에서 굉장히 많이 등장하는 내용인데 페이지가 바뀌는 것이기 때문에 데이터를 다시 입력해서 처리하는 경우가 필요하다. 
  • 308 
    • POST로 요청했을 때 리다이렉션 하더라도 POST가 유지되는것을 의미한다. 물론, HTTP 바디도 유지된다. 
  • 301, 308을 영구 리다이렉션 이라고 한다. (특정 리소스의 URI가 영구적으로 이동하는것을 의미한다.)
  • 일시 다이렉션 - 일시적인 변경을 들 수 있다. 실무에서 굉장히 많이 쓴다.  
    • 302(Found) 
      • 301과 기능이 비슷하다. HTTP 바디 내용이 다 날라간다. 대부분의 애플리케이션이 리다이렉션을 처리하는 경우 default 302일 가능성이 크다. 
    • 307(Temporary Redirect)
      • 리다이렉트시 요청 메서드와 본문 유지를 한다.
    • 303(See Other)
      • 무조건 GET으로 해야 되는 케이스에 해당한다. 302도 대부분의 경우 리다이렉트 시 GET으로 처리하는데 303은 무조건 GET으로 리다이렉트한다.
    • 일시 다이렉션을 WHY(왜) 쓸까? 
      • POST 요청 시 새로고침하면 POST가 두번 가서 데이터가 중복 저장될 수 있다.
      • 그래서, PRG(Post/Redirect/Get)을 쓴다. PGR은 요청 메서드에 대해 GET 메서드로 리다이렉트하고 새로고침하더라도 이미 GET으로 리다이렉트 되어서 결과 화면을 GET으로 조회할 수 있다. (POST X)
  • 특수 다이렉션 - 결과 대신 캐시를 사용하는것으로 서버에 캐시가 완료되었는지 확인하는 작업을 한 후에 캐시에서 읽어간다. 304에 해당한다.

4XX 

클라이언트 요청에 서버가 요청을 수행할 수 없음을 의미한다. 이것이 의미하는건 400대 오류는 복구불가능하다. 실패한 요청을 반복적으로 보내도 성공하지 못한다.

  • 400(Bad Request)
    • 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없다. 
  • 401(Unauthorized)
    • 클라이언트가 해당 리소스에 대한 인증이 필요함 (특정 리소스에 접근할 수 있는 인증) 
  • 403(Forbidden)
    • 서버에 요청을 했지만 승인을 거부하는 경우(인증 자격은 있지만 접근 권한이 충분하지 않다.)
  • 404(Not Found)
    • 요청 리소스가 서버에 없다. 

5XX

서버에서 오류가 발생한 케이스, 500 에러는 정말 서버 이슈인 경우만 내야 한다. 예외 처리에 대해서 발생하면 안된다는 뜻이다. 예를 들어 DB의 다운이나 쿼리 이슈 혹은 NullPointException 등과 같은 것에 500에러 내는것은 맞지만 일반 프로세스인데 예외 처리 되는것은 코드레벨에서 처리해야한다. 

  • 500(Internal Server Error)
    • 서버 문제로 오류 발생
  • 503(Service Unavailable)
    • 서비스 이용 불가(일시적인 과부하, Retry-After 헤더 필드로 얼마뒤에 복구되는지 알 수 있음)

출처 

https://dribbble.com/shots/15126018-Cloud-icon-for-digital-ecosystem-logo-design-symbol 

'Computer Science > Network' 카테고리의 다른 글

HTTP 캐시와 조건부 요청  (0) 2021.12.09
HTTP 헤더  (0) 2021.12.09
HTTP 메서드 활용  (0) 2021.12.09
HTTP 메서드  (0) 2021.12.07
HTTP 기본  (0) 2021.12.07