[네트워크] HTTP 상태코드

Yoon Uk·2023년 4월 17일
0

네트워크

목록 보기
9/34
post-thumbnail

HTTP 상태 코드는 웹 서버가 클라이언트에게 응답할 때 사용하는 숫자로 된 코드입니다.
HTTP 상태 코드는 응답의 성공 여부와 원인을 나타내는데 도움이 됩니다. HTTP 상태 코드는 다음과 같은 규칙으로 구성됩니다.

HTTP 상태 코드의 분류

  • 첫 번째 자리응답의 분류를 나타냅니다.
    • 1xx는 정보 전달
    • 2xx는 성공
    • 3xx는 리다이렉션
    • 4xx는 클라이언트 오류
    • 5xx는 서버 오류
  • 두 번째 자리세 번째 자리응답의 세부 사항을 나타냅니다. 각 분류에는 표준적인 응답 코드와 함께 사용자 정의된 응답 코드가 있을 수 있습니다.
  • HTTP 상태 코드와 함께 응답 헤더본문이 전송될 수 있습니다. 응답 헤더는 응답에 대한 추가 정보를 제공하고, 응답 본문은 요청한 리소스나 오류 메시지를 포함할 수 있습니다.

HTTP 상태코드 1XX

HTTP 상태코드 중 1xx는 정보 전달을 의미합니다.

1xx 상태 코드는 서버가 요청을 받았으며 처리를 계속하고 있다는 것을 알려줍니다.
이는 일반적으로 요청이 유효하고 서버가 응답할 준비가 되었음을 나타내는 초기 응답으로 사용됩니다.

1xx 상태 코드는 다음과 같은 종류가 있습니다.

  • 100 Continue
    서버가 요청의 시작 부분을 받았으며 클라이언트가 계속해서 나머지 부분을 보내도 된다는 것을 알려줍니다.

  • 101 Switching Protocols
    클라이언트가 요청 헤더에 Upgrade 헤더를 포함하여 다른 프로토콜로 전환하고자 할 때, 서버가 이를 수락한다는 것을 알려줍니다.

  • 102 Processing
    서버가 요청을 받았으나 아직 완료하지 못했을 때, 클라이언트에게 지연되고 있음을 알려줍니다. 이 상태 코드는 WebDAV 확장에서 정의되었습니다.

  • 103 Early Hints
    서버가 최종 응답을 보내기 전에 클라이언트에게 힌트를 제공할 수 있는 헤더를 보낼 때 사용됩니다. 이 상태 코드는 성능 향상을 위해 사용될 수 있습니다.

1xx 상태 코드는 서버와 클라이언트 간의 통신 과정에서 유용한 정보를 제공할 수 있습니다. 하지만 1xx 상태 코드는 필수적인 것은 아니며, 모든 HTTP 버전이나 구현체가 지원하는 것은 아닙니다.
따라서 1xx 상태 코드를 사용할 때에는 호환성 문제에 주의해야 합니다.

HTTP 상태코드 2XX

HTTP 상태코드 중 2xx는 서버가 클라이언트의 요청을 성공적으로 처리했음을 의미합니다.

2xx 상태 코드는 다음과 같은 종류가 있습니다.

  • 200 OK
    서버가 클라이언트의 요청을 정상적으로 수행했음을 나타냅니다. 이 상태 코드는 가장 흔하게 사용되는 상태 코드입니다.

  • 201 Created
    서버가 클라이언트의 요청에 따라 새로운 리소스를 생성했음을 나타냅니다. 이 상태 코드는 POST 메서드나 PUT 메서드와 함께 사용됩니다.

  • 202 Accepted
    서버가 클라이언트의 요청을 받았으나 아직 처리하지 않았음을 나타냅니다. 이 상태 코드는 비동기적인 작업을 수행하는 경우에 사용됩니다.

  • 203 Non-Authoritative Information
    서버가 클라이언트의 요청을 성공적으로 처리했으나, 응답 본문의 일부 데이터가 원본 서버가 아닌 다른 출처에서 온 것임을 나타냅니다. 이 상태 코드는 프록시 서버나 캐시 서버와 같은 중간자 역할을 하는 서버가 사용됩니다.

  • 204 No Content
    서버가 클라이언트의 요청을 성공적으로 처리했으나, 응답 본문에 어떤 데이터도 보내지 않음을 나타냅니다. 이 상태 코드는 DELETE 메서드나 PUT 메서드와 같이 리소스의 상태를 변경하는 경우에 사용됩니다.

  • 205 Reset Content
    서버가 클라이언트의 요청을 성공적으로 처리했으나, 클라이언트가 현재 보고 있는 문서를 새로 고침해야 함을 나타냅니다. 이 상태 코드는 POST 메서드와 같이 리소스의 내용을 변경하는 경우에 사용됩니다.

  • 206 Partial Content
    서버가 클라이언트의 요청에 따라 리소스의 일부분만 전송함을 나타냅니다. 이 상태 코드는 Range 헤더와 함께 사용되어, 리소스의 일부분만 요청하거나 다운로드하는 경우에 사용됩니다.

2xx 상태 코드는 서버가 클라이언트의 요청을 성공적으로 처리했다는 것을 알려줍니다. 각 상태 코드마다 의미와 용도가 다르므로, 적절하게 사용하는 것이 중요합니다.

HTTP 상태코드 3XX

HTTP 상태코드 중 3xx는 리다이렉션을 의미합니다.
리다이렉션은 클라이언트가 요청한 리소스가 다른 위치에 있거나, 다른 방식으로 접근해야 할 때 서버가 클라이언트에게 알려주는 방식입니다.

3xx 상태 코드는 다음과 같은 종류가 있습니다.

  • 301 Moved Permanently
    요청한 리소스가 영구적으로 다른 URL로 이동되었음을 의미한다. 클라이언트는 이후에 같은 요청을 할 때 새로운 URL을 사용해야 한다.

  • 302 Found
    요청한 리소스가 일시적으로 다른 URL로 이동되었음을 의미한다. 클라이언트는 이번 요청만 새로운 URL을 사용하고, 이후에는 원래의 URL을 사용해야 한다.

  • 303 See Other
    요청한 리소스가 다른 URL에서 찾을 수 있음을 의미한다. 클라이언트는 GET 메서드를 사용하여 새로운 URL로 요청해야 한다.

  • 304 Not Modified
    요청한 리소스가 변경되지 않았음을 의미한다. 클라이언트는 캐시된 버전의 리소스를 사용할 수 있다.

  • 307 Temporary Redirect
    요청한 리소스가 일시적으로 다른 URL로 이동되었음을 의미한다. 클라이언트는 원래의 메서드를 사용하여 새로운 URL로 요청해야 한다.

3xx 상태 코드는 클라이언트와 서버 간의 효율적인 통신을 위해 필요한 기능입니다. 하지만 잘못 사용하면 무한 루프나 오류를 발생시킬 수 있으므로 주의해야 합니다.

HTTP 상태코드 4XX

HTTP 상태코드 중 4xx는 클라이언트 오류를 의미합니다.

4xx는 클라이언트 측에서 요청이 잘못되었거나 서버가 요청을 처리할 수 없음을 나타냅니다. 4xx에는 다음과 같은 상태 코드가 있습니다.

  • 400 Bad Request
    클라이언트의 요청이 잘못된 형식으로 전송되었거나 서버가 이해할 수 없는 요청을 보냈을 때 발생합니다. 예를 들어, 요청 헤더나 본문에 문법 오류가 있거나 필수 파라미터가 누락되었을 때입니다.

  • 401 Unauthorized
    클라이언트의 요청이 인증이 필요한 리소스에 접근하려고 했으나 인증 정보가 없거나 유효하지 않을 때 발생합니다. 예를 들어, 로그인이 필요한 페이지에 로그인하지 않고 접근하려고 했을 때입니다.

  • 403 Forbidden
    클라이언트의 요청이 인증은 되었으나 권한이 없는 리소스에 접근하려고 했을 때 발생합니다. 예를 들어, 관리자만 볼 수 있는 페이지에 일반 사용자가 접근하려고 했을 때입니다.

  • 404 Not Found
    클라이언트의 요청이 존재하지 않는 리소스에 접근하려고 했을 때 발생합니다. 예를 들어, 삭제된 게시글이나 오타가 있는 URL에 접근하려고 했을 때입니다.

  • 405 Method Not Allowed
    클라이언트의 요청이 허용되지 않는 HTTP 메소드로 전송되었을 때 발생합니다. 예를 들어, GET 메소드만 허용하는 리소스에 POST 메소드로 요청하려고 했을 때입니다.

HTTP 상태코드 5XX

HTTP 상태코드 중 5xx는 서버 측 오류를 의미합니다.
서버 측 오류란 서버가 요청을 처리하는 과정에서 예상치 못한 문제가 발생하여 정상적인 응답을 보내지 못하는 경우를 말합니다.

서버 측 오류에는 다음과 같은 종류가 있습니다.

  • 500 Internal Server Error
    서버 내부에서 알 수 없는 오류가 발생했을 때 사용하는 코드입니다. 이 오류는 서버의 설정, 프로그램, 스크립트 등에 문제가 있을 수 있습니다.

  • 501 Not Implemented
    서버가 클라이언트의 요청을 인식하지 못하거나 지원하지 않을 때 사용하는 코드입니다. 이 오류는 클라이언트가 잘못된 요청 방식을 사용했거나, 서버가 아직 구현하지 않은 기능을 요구했을 수 있습니다.

  • 502 Bad Gateway
    서버가 다른 서버로부터 잘못된 응답을 받았을 때 사용하는 코드입니다. 이 오류는 프록시 서버나 게이트웨이 서버와 같이 중간에 위치한 서버들 간의 통신 문제일 수 있습니다.

  • 503 Service Unavailable
    서버가 과부하되거나 유지보수 중일 때 사용하는 코드입니다.

  • 504 Gateway Timeout
    서버가 다른 서버로부터 응답을 기다리는 동안 시간이 초과되었을 때 사용하는 코드입니다. 이 오류는 네트워크 연결이 느리거나 불안정할 때 발생할 수 있습니다.

  • 505 HTTP Version Not Supported
    서버가 클라이언트의 요청에서 사용한 HTTP 버전을 지원하지 않을 때 사용하는 코드입니다. 이 오류는 클라이언트가 잘못된 HTTP 버전을 사용했거나, 서버가 최신의 HTTP 버전을 아직 구현하지 않았을 수 있습니다.

0개의 댓글