Computer Science/Network

HTTP 상태 코드

시나민 2023. 3. 30. 21:31

HTTP 상태 코드

 

HTTP 상태 코드란 클라이언트가 요청을 보냈을 때 서버에서 보내주는 응답 상태를 의미한다.

우리가 잘 알고있는 404 Not Found 오류등이 있다.

 

1XX 코드 (Informational)

서버가 요청을 받았고, 작업이 진행 중 이라는 의미이다.

 

2XX 코드 (Successful)

서버가 요청을 성공적으로 받았고, 정상적으로 처리했다는 의미이다.

 

  • 200 OK -> 요청 성공
  • 201 Created -> 요청이 성공하여 새로운 리소스가 생성됨
  • 202 Acceptec -> 요청이 접수되었으나 처리가 완료되지 않음
  • 204 No Content -> 서버가 요청을 정상적으로 처리했으나, 컨텐츠를 제공하지 않음

 

3XX 코드 (Redirection)

요청을 완료하기 위해서는 추가적인 행동이 필요하다는 의미이다.

세 가지 리다이렉션으로 나뉜다.

 

  • 영구 리다이렉션
  • 일시 리다이렉션
  • 특수 리다이렉션

 

영구 리다이렉션

특정 리소스의 URI가 영구적으로 이동했다는 의미이다.

 

  • 301 Moved Permanently -> 리다이렉트시 요청 메서드가 GET으로 변하고, 요청한 본문이 제거될 수 있음
  • 308 Permanent Redirect -> 리다이렉트시 요청 메서드와 요청한 본문 유지

일시 리다이렉션

특정 리소스의 URI가 일시적으로 이동했다는 의미이다.

 

  • 302 Found -> 리다이렉트시 요청 메서드가 GET으로 변하고, 요청한 본문이 제거될 수 있음
  • 303 See Other -> 리다이렉트 시 요청 메서드가 GET으로 변함
  • 307 Temporary Redirect -> 리다이렉트시 요청 메서드와 요청한 본문 유지 (요청 메서드가 변경되면 안됨)

 

특수 리다이렉션

 

  • 300 Multiple Choices -> 서버에서 여러 개의 응답이 있음을 알림 (사용되지 않음)
  • 304 Not Modified -> 캐시 목적으로 사용하며, 클라이언트는 로컬PC에 저장된 캐시를 재사용 

 

4XX 코드 (Client Error)

클라이언트 오류 또는 잘못된 문법등으로 서버가 요청을 수행할 수 없음을 의미한다.

 

  • 400 Bad Request -> 요청 구문, 메세지 등 오류
  • 401 Unauthorized -> 클라이언트가 해당 리소스에 대한 인증이 필요함
  • 403 Forbidden -> 서버가 요청을 이해했지만 승인을 거부 (주로 접근 권한 등에서 발생)
  • 404 Not Found -> 요청 리소스를 찾을 수 없음

 

5XX 코드 (Server Error)

서버가 응답할 수 없다는 의미이다.

 

  • 500 Internal Server Error -> 내부 서버 문제로 오류 발생
  • 502 Bad Gateway -> 게이트웨이가 연결된 서버로부터 잘못된 응답 발생
  • 503 Service Unavailable -> 서비스를 일시적으로 사용할 수 없음 (과부하 또는 점검으로 인한 서버다운 등)