본문 바로가기

프로그래밍 지식/웹 개발

HTTP 기본 지식 - HTTP Status Code

HTTP Status Code

해당 HTTP Status Code는 HTTP 요청에 대한 상태를 알려줍니다.

응답은 크게 100번대 ~ 500번대 까지 5개의 그룹으로 나누어져 있습니다. 

100번대(informational) 

요청이 수신되어 처리중

200번대(Successful)

요청이 정상적으로 처리됨

 

주요 메소드 

  • 200(OK) 요청 성공
  • 201(Created) 요청이 성공했으며 그 결과로 새로운 리소스가 생성되었다. (주로 POST나 PUT 이후에 나타난다)
  • 202(Accepted) 요청이 접수되었으나 처리가 완료되지 않았다.(1시간 뒤에 처리하는 배치 프로세스 등)
  • 204(No Content) 요청을 수행했으나 본문에 보낼 데이터가 없는 경우(게시글 임시저장 버튼 등)

300번대(Redireciton)

요청을 완료하려면 추가 행동이 필요.

 

300번대 결과에 Location header가 있다면 자동으로 Location 위치로 이동한다.

https://developer.mozilla.org/ko/docs/Web/HTTP/Redirections

 

리다이렉션에는 3가지 리다이렉션이 존재한다.

  • 영속적인 리다이렉션(301, 308)
    특정 리소스의 URI가 영구적으로 이동한다.
    해당 URI로 접근하면 다른 URI로 보내준다. 검색엔진은 이에 따른 URL을 갱신한다.

  • 일시적인 리다이렉션(302, 303, 307)
    리소스의 URI가 일시적으로 변경되며 검색엔진은 이에 따른 URL을 갱신하지 않는다.
    POST로 주문 후에 웹 브라우저로 새로고침을 하면 중복 주문이 될 수 있으니 이를 방지 차원해서 주로 사용한다.
    (결제 -> 결제 완료 화면을 GET 리다이렉트 -> 새로고침시 GET 으로 리다이렉트 된 결제 완료 화면 조회 )

  • 특수 리다이렉션(300, 304)
    결과 대신 캐시를 사용한다.(캐시된 복사본으로 페이지를 리다이렉트)
  • 300(Multiple Choice)
    요청에 대해 하나이상의 응답이 가능(거의 사용되지 않는다)

  • 301(Moved Permanetly)
    영구 리다이렉션이며 리소스의 URI가 영구적으로 이동한다.
    원래 URI를 사용하지 않을 때 사용한다.
    리다이렉트시 요청 메서드들이 GET로 변화하며 본문이 제거 될 수 있다.

  • 302(Found)
    임시 리다이렉션이며 리소스의 URI가 일시적으로 변경된다.
    검색엔진은 이에따른 URL을 갱신하지 않는다. 
    리다이렉트 요청시 요청 메서드가 GET으로 변하고 본문에 제거 될 수 있다.

  • 303(Seee Other)
    임시 리다이렉션이며 리소스의 URI가 일시적으로 변경된다.
    검색엔진은 이에따른 URL을 갱신하지 않는다.
    리다이렉트 요청시 요청 메서드가 GET으로 변경된다.

  • 304(Not Modified)
    캐시를 목적으로 사용한다.
    클라이언트에게 리소스가 수정되지 않았음을 알려주며 클라이언트는 로컬의 저장 캐시를 사용한다.(캐시 리다이렉트)
    Response 에 Body를 포함하면 안된다.

  • 307(Temporary Redirect)
    임시 리다이렉션이며 리소스의 URI가 일시적으로 변경된다.
    검색엔진은 이에 따른 URL을 갱신하지 않는다.
    리다이렉트 요청시 요청 메서드와 본문을 유지한다.

  • 308
    영구 리다이렉션이며 리소스의 URI가 영구적으로 이동한다.
    원래 URI를 사용하지 않을 때 사용한다.
    리다이렉트시 요청 메서드들이 변화하지 않으며 본문 또한 유지 된다. 

400번대(Client Error)

클라이언트 오류
한번 오류가 발생하면 새로고침을 해도 똑같은 실수가 발생한다.

 

  • 400(Bad Request)
    클라이언트가 잘못된 요청을 하였으며 이에 따라 서버가 요청을 처리할 수 없음

  • 401(Unauthorized)
    인증이 되지 않음, 해당 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 전송
    로그인, 권한에 따라 해당 오류를 나타낸다.

  • 403(Forbidden)
    서버가 요청을 이해했지만 승인을 거부한다.(로그인은 했으나 관리자 권한에 접근한 경우)

  • 404(Not Found)
    요청 리소스가 서버에 없거나 권한이 부족한 리소스에 접근할 때 사용한다.

 

500번대(Server Error)

서버 오류 

  • 500(Internal Server Error)
    서버 내부 문제로 오류 발생
  • 503(Service Unavailable)
    서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음
    Retry-After 필드를 사용해서 예상 복구시간을 포함해서 보낼 수 있다.

 

 

 

 

 

 

 

 

 

 

'프로그래밍 지식 > 웹 개발' 카테고리의 다른 글

OAuth 2.0 이란  (0) 2021.07.09
HTTP 기본 지식 - HTTP Header  (0) 2021.01.25
HTTP 기본 지식 - HTTP Method  (0) 2021.01.23
HTTP 기본 지식 - HTTP의 특징  (0) 2021.01.23
HTTP 기본 지식 - URI, URL, URN  (0) 2021.01.10