HTTP 상태 코드

이동엽·2022년 6월 30일
1

Network

목록 보기
5/6

서버에 요청을 보냈을 경우, 서버가 보내는 응답인 http 상태 코드에 대해 알아본다.


HTTP 상태 코드란?

클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능으로, 100번대에서 500번대로 나눌 수 있다.

  • 1XX : 요청이 수신되어 처리중
  • 2XX : 성공을 알리는 상태 코드
  • 3XX : 리다이렉션(다른 페이지로 이동)을 알리는 상태 코드
  • 4XX : 요청 오류, 요청 자체에 오류가 있는 경우다.
  • 5XX : 서버 오류, 요청은 정상이지만 서버에 오류가 생긴 경우다.

HTTP 상태코드 종류와 의미

100번대는 요청이 수신되어 처리중이라는 뜻인데, 거의 사용하지 않으므로 생략한다.

200번대는 성공의 의미를 뜻하는데 더 자세하게는 아래와 같다.

  • 200 OK : 요청 성공
  • 201 Created : 요청 성공해서 새로운 리소스가 생성됨
  • 202 Accepted : 요청이 접수되었으나 처리가 완료되지 않았음
  • 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음

300 번대는 리다이렉션에 대한 내용으로, 더 자세하게는 아래와 같다.

  • 301 Moved Permanently : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
  • 302 Found : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
  • 303 See Other : 리다이렉트시 요청 메서드가 GET으로 변경
  • 304 Not Modified : 캐시를 목적으로 사용
  • 307 Temporary Redirect : 리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안된다.)
  • 308 Permanent Redirect : 리다이렉트시 요청 메서드와 본문 유지(처음 POST를 보내면 리다이렉트도 POST 유지)

400번대는 클라이언트 측에서 오류가 발생했다고 알려준다.

  • 400 Bad Request : 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
  • 401 Unauthorized : 클라이언트가 해당 리소스에 대한 인증이 필요함
  • 403 Forbidden : 서버가 요청을 이해했지만 승인을 거부함
  • 404 Not Found : 요청 리소스를 찾을 수 없음

500번대는 서버 측에서 오류가 발생했다고 알려주는 것이다. 자세한 사항은 다음과 같다.

  • 500 Internal Server Error : 서버 문제로 오류 발생, 애매하면 500 오류
  • 503 Service Unavailable : 서비스 이용 불가

http 상태 코드 301과 302의 차이


301, Permanently Moved

Permanently라는 뜻이 영구히, 영구적인 이라는 뜻이므로, 영구적으로 이동한다는 것이다. 요청된 리소스가 영구적으로 이동 페이지로 이동되었다는 것이다.

301을 언제써야 할까요?

예를들어 웹사이트의 도메인을 변경했거나 새로운 URL 구조로 개편했을 때 사용할 수 있다. 검색엔진은 301 요청을 만나면 컨텐트가 새로운 URL로 영원히 이동했다고 판단하고, 따라서 검색엔진은 과거 URL의 페이지랭킹과 평가점수를 새로운 URL로 이동시킨다.

302, Temporarily Moved

Temporarily라는 뜻이 임시적, 임시적인 이라는 뜻이므로, 임시적으로 이동했다는 것을 나타냅니다. 요청된 리소스가 임시적으로 이동 페이지로 이동되었다는 것이다.

302를 언제써야 할까요?

예를들어 쇼핑몰과 같은 전자상거래 사이트를 운영한다고 생각해봅시다. 인기리에 팔리는 제품이 일시적으로 재고가 떨어지거나 혹은 특정한 계절이나 기간에만 한정적으로 파는 제품이였다고 가정해봅시다. 해당 제품이 보유한 사이트랭크를 유지하면서 사용자에게 일시적으로 제품이 품절됐음을 알리려면 어떻게 해야할까요? 이럴 때 301을 사용하거나 혹은 페이지의 컨텐트를 변경하게 되면 사이트랭킹 점수가 달라지게 될 것입니다. 대신 302를 사용하게 되면 검색엔진은 일시적으로 해당 URL의 사이트랭크는 보존하게 되며 사용자는 새로운 URL의 컨텐트를 보게 됩니다.

주의할 점

높은 페이지랭크를 가진 URL은 검색결과에서 더 상위에 노출될 것입니다. 따라서 높은 페이지랭크를 가진 URL을 구입하여 컨텐트만 광고페이지로 이동시키는 부적절한 사례가 증가하고 있습니다. 이 때문에 구글은 302를 자주 사용하거나 부적절하게 사용할 경우 기존 사이트랭크에 상당한 패널티를 부여합니다.


참조 링크

profile
백엔드 개발자로 등 따숩고 배 부르게 되는 그 날까지

0개의 댓글