http status code

정세은·2022년 12월 18일
1

http

목록 보기
2/2

✔️ HTTP status code

클라이언트가 서버에게 작업을 요청하면 서버는 요청받은 작업을 수행한 후 작업의 수행 결과를 응답을 보내준다.
이 때, HTTP에서 작업의 성공, 실패 여부와 상관없이 상태 코드를 사용하여 결과를 알려준다.
이번 포스팅에서는 HTTP 상태코드의 종류와 각각이 무엇을 의미하는지 정리해 보려고 한다.

✔️ 상태 코드 정리

http 상태 코드는 크게 5가지가 있다.

  • 100번대 : 정보 전달
  • 200번대 : 성공
  • 300번대 : 리다이렉션
  • 400번대 : 클라이언트 오류
  • 500번대 : 서버 오류

1️⃣ 1XX

정보 전달. 요청을 받았고, 작업을 진행 중이라는 의미이다.

2️⃣ 2XX

성공. 200번대 코드들은 클라이언트가 요청한 작업을 서버가 성공적으로 받았고, 이해했으며, 받아들여졌다는 의미이다.

  • 200 OK : 에러 없이 성공적으로 처리했을 때 쓰인다. 가장 일반적으로 볼 수 있는 상태 코드이다.
  • 201 Created : 요청이 성공적으로 처리되서 그 결과로 리소스가 만들어졌음을 의미한다.
  • 204 No Content : 요청이 정상적으로 수행되었지만, 컨텐츠를 제공하지는 않는다.
    일반 사용자가 볼 일은 거의 드물며 API요청 등에서 주로 사용된다. (ex>비밀번호 변경 완료됐을 경우)

3️⃣ 3XX

리다이렉션. 클라이언트가 요청을 완료하기 위해서 추가 조취를 취해야 한다는 의미이다.

  • 301 Moved Permanetly 301 Redirect라는 별칭으로 불릴만큼 리다이렉션 코드 중 가장 많이 사용되는 코드이다.
    이 코드는 요청한 리소스의 URL이 변경됐음을 의미한다. 301을 받으면 HTTP 헤더에 들어있는 location 필드를 찾아보고, 해당 필드가 존재하면 location 필드에 담긴 URL로 자동 리다이렉션한다.
  • 304 Not Modified 캐시를 목적으로 사용된다. 클라이언트가 요청한 리소스가 이전 요청때와 비교해보았을 때 전혀 달라진 점이 없다는 것을 읨히한다.

4️⃣ 4XX

클라이언트 오류. 클라이언트가 서버에게 보낸 요청이 잘못된 경우 즉, 이 요청은 올바르지 않다는 것을 의미한다.

  • 400 Bad Request 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미한다.
  • 401 Unauthorized 인증이 필요한 리소스에 인증 없이 접근했을 경우 발생하는 오류이다. 보통 로그인이 필요한 API를 비로그인 사용자가 호출했을 때 많이 사용된다.
  • 403 Forbidden 서버가 요청을 거부할 때 발생하는 오류이다. 관리자가 사용자를 차단했거나 클라이언트가 콘텐츠에 접근할 권리를 가지고 있지 않은 경우 발생한다. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있다는 것이다.
  • 404 Not Found 가장 많이 접하는 오류이다. 서버가 요청받은 리소스가 없다는 것을 의미한다.
  • 405 Method Not Allowed PUT 이나 DELETE 등 현재 리소스에 맞지 않는 메소드를 사용했음을 의미한다.
  • 408 Request Timeout 요청 중 시간이 초과되었을 때 발생한다.
  • 429 Too Many Request 클라이언트가 서버에 요청을 너무 많이 보냈을 때 발생한다.

5️⃣ 5XX

서버 오류. 서버로 인한 오류가 발생한 것을 의미한다.

  • 500 Internal Server Error 서버에 오류가 발생해 작업을 수행할 수 없음을 의미한다.
  • 502 Bad Gateway 게이트웨이 상태가 좋지 않거나 서버의 과부하 상태일 때 발생한다.
  • 503 Service Temporarily Unavailable 현재 서버가 멈췄거나 일시적인 과부하 또는 관리 상황일 때 발생한다.

0개의 댓글