CS
HTTP

HTTP 통신의 응답의 종류

HTTP 응답은 클라이언트(웹 브라우저, 앱 등)가 서버에 HTTP 요청을 보낸 후, 서버가 그 요청에 대해 클라이언트에게 보내는 응답 메시지입니다. HTTP(하이퍼텍스트 전송 프로토콜)는 인터넷에서 데이터를 주고받기 위한 프로토콜로, 웹 브라우저와 웹 서버 간에 정보를 주고받는 데 가장 많이 사용됩니다.

HTTP 응답은 보통 클라이언트의 요청에 따라 다양한 상태 코드와 데이터를 포함하고 있습니다. HTTP 응답은 다음과 같은 주요 요소들로 구성됩니다:

상태 코드 (Status Code)

HTTP 응답의 가장 중요한 부분으로, 세 자리 숫자로 표현됩니다. 각 상태 코드는 특정한 의미를 가지며 클라이언트에게 요청 처리 상태를 전달합니다.

2xx (Success): 요청이 성공적으로 처리되었음을 나타냅니다. 대표적인 상태 코드들은 다음과 같습니다:

  • 200 OK: 요청이 성공적으로 처리되었으며, 요청한 데이터가 응답 본문에 포함되어 반환됩니다.
  • 201 Created: 요청이 성공적으로 처리되었으며, 새로운 리소스가 생성되었음을 나타냅니다.
  • 204 No Content: 요청은 성공적으로 처리되었지만, 응답으로 반환할 데이터가 없음을 나타냅니다. 일반적으로 PUT 또는 DELETE 요청에 사용됩니다.

3xx (Redirection): 요청을 완료하려면 클라이언트가 추가 동작을 취해야 함을 나타냅니다. 이 범주의 상태 코드는 주로 리다이렉션과 관련됩니다.

  • 301 Moved Permanently: 요청한 리소스가 완전히 새 위치로 이동되었으며, 앞으로는 새 위치로 요청해야 함을 나타냅니다.
  • 302 Found: 요청한 리소스가 일시적으로 다른 위치로 이동되었으며, 클라이언트는 임시적으로 새 위치로 요청해야 함을 나타냅니다. (주의: HTTP/1.1에서는 303 See Other를 사용하는 것이 권장됩니다.)

4xx (Client Error): 클라이언트의 요청이 잘못되었거나 유효하지 않음을 나타냅니다.

  • 400 Bad Request: 잘못된 요청으로 인해 서버가 요청을 이해하지 못했습니다.
  • 404 Not Found: 요청한 리소스를 서버에서 찾을 수 없음을 나타냅니다.

5xx (Server Error): 서버가 요청을 처리하는 도중에 오류가 발생했음을 나타냅니다.

  • 500 Internal Server Error: 서버에 일반적인 오류가 발생하여 요청을 처리할 수 없음을 나타냅니다.
  • 503 Service Unavailable: 서버가 현재 서비스 불가능 상태이거나 과부하되어 요청을 처리할 수 없음을 나타냅니다. 상태 코드는 클라이언트가 서버 응답을 올바르게 이해하고 적절한 조치를 취할 수 있도록 도와줍니다. 따라서 개발자는 상태 코드를 주의 깊게 확인하여 요청에 대한 처리 결과를 적절히 처리하는 로직을 구현해야 합니다.