네트워크/HTTP

HTTP 상태 코드: 2xx (성공 응답)

shimdh 2025. 3. 3. 10:38
728x90

HTTP 상태 코드 2xx는 클라이언트의 요청이 성공적으로 처리되었음을 의미하는 응답 코드입니다.
이 상태 코드는 서버가 요청을 정상적으로 수락하고 실행했음을 나타내며, HTTP 통신에서 가장 흔히 사용됩니다.
특히 웹 개발과 API 설계에서 2xx 응답은 요청 결과를 이해하고 후속 작업을 결정하는 데 필수적인 요소로 작용합니다.

이번 글에서는 2xx 상태 코드의 개념, 주요 코드별 상세 설명 및 실생활 활용 사례를 살펴보겠습니다.


1. 2xx 상태 코드란?

2xx 상태 코드는 클라이언트가 보낸 요청이 올바르게 해석되었으며, 서버에서 정상적으로 처리되었음을 나타내는 응답 코드 그룹입니다.
이러한 응답은 데이터 반환, 리소스 생성, 삭제 완료 등 다양한 성공적인 작업을 나타낼 수 있습니다.

📌 2xx 응답 코드의 특징:

  • 정상적인 요청 처리 → 요청된 작업이 성공적으로 완료됨.
  • 클라이언트가 추가적인 조치를 취할 필요 없음 → 단순 조회, 리소스 생성, 삭제 등이 원활하게 수행됨.
  • 요청의 성격에 따라 다양한 하위 상태 코드 존재 → 특정 작업 완료 여부를 명확하게 구분할 수 있음.

📌 2xx 상태 코드의 주요 용도:

  • GET 요청 성공 후 데이터 반환 (200 OK)
  • POST 요청으로 새로운 리소스 생성 (201 Created)
  • DELETE 요청으로 리소스 삭제 후 응답 본문 없음 (204 No Content)
  • 대용량 콘텐츠를 범위 요청으로 부분 제공 (206 Partial Content)

2. 주요 2xx 상태 코드

1️⃣ 200 OK

📌 설명:

  • 가장 일반적인 성공 응답 코드로, 클라이언트의 요청이 정상적으로 처리됨을 의미.
  • GET 요청의 경우, 서버는 요청한 데이터를 응답 본문(body)에 포함하여 반환.
  • POST, PUT 요청에서는 요청이 성공적으로 반영되었음을 의미하지만, 반드시 본문 데이터를 포함할 필요는 없음.

📌 사용 사례:

  • 웹 페이지 요청 (GET 요청)
  • API에서 데이터 조회 (RESTful API)
  • 파일 다운로드 요청 성공

📌 예제:

GET /home HTTP/1.1
Host: example.com

📌 서버 응답:

HTTP/1.1 200 OK
Content-Type: text/html

<html>
<head><title>Welcome</title></head>
<body><h1>Hello, world!</h1></body>
</html>

💡 200 OK는 모든 요청 유형에서 사용될 수 있으며, 가장 보편적인 성공 응답 코드.


2️⃣ 201 Created

📌 설명:

  • 새로운 리소스가 성공적으로 생성되었음을 나타내는 응답 코드.
  • 주로 POST 요청이 성공했을 때 반환되며, 생성된 리소스의 URI를 Location 헤더에 포함 가능.

📌 사용 사례:

  • 회원 가입 후 계정 생성
  • 게시글 작성 후 새로운 포스트 등록
  • 파일 업로드 성공 후 생성된 파일의 위치 반환

📌 예제 (새로운 사용자 계정 생성):

POST /users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "username": "johndoe",
  "email": "johndoe@example.com"
}

📌 서버 응답:

HTTP/1.1 201 Created
Location: /users/12345
Content-Type: application/json

{
  "id": 12345,
  "username": "johndoe",
  "email": "johndoe@example.com"
}

💡 POST 요청이 성공했을 때, 새로 생성된 리소스의 위치를 Location 헤더에 포함하여 제공 가능.


3️⃣ 202 Accepted

📌 설명:

  • 요청이 수락되었지만, 아직 처리가 완료되지 않았음을 의미.
  • 비동기(Asynchronous) 작업을 수행하는 시스템에서 주로 사용됨.
  • 요청이 즉시 실행되지 않고, 일정 시간이 걸리는 경우 유용.

📌 사용 사례:

  • 대량의 데이터 처리 요청 (예: 파일 변환, 배치 작업)
  • 비동기 API 호출 후 처리가 끝나면 다른 엔드포인트에서 상태 확인 가능

📌 예제 (파일 업로드 후 백그라운드 처리 진행 중):

POST /upload HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "file": "large_video.mp4"
}

📌 서버 응답:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
  "message": "Your file is being processed.",
  "status_url": "/upload/status/123"
}

💡 클라이언트는 이후 /upload/status/123 엔드포인트를 통해 진행 상태를 확인 가능.


4️⃣ 204 No Content

📌 설명:

  • 요청이 성공적으로 처리되었지만, 반환할 응답 본문이 없는 경우 사용.
  • 주로 DELETE 요청이 완료되었을 때 또는 PUT 요청으로 리소스를 업데이트한 후 반환할 내용이 없을 때 사용됨.

📌 사용 사례:

  • 사용자 계정 삭제 후 응답 본문 없이 처리 완료
  • 설정 변경 후 추가적인 정보 없이 성공 메시지만 반환

📌 예제 (사용자 계정 삭제 요청):

DELETE /users/12345 HTTP/1.1
Host: example.com

📌 서버 응답:

HTTP/1.1 204 No Content

💡 클라이언트는 이 응답을 보고, 요청이 정상적으로 수행되었음을 확인할 수 있음.


5️⃣ 206 Partial Content

📌 설명:

  • 부분적으로 데이터를 반환하는 응답 코드.
  • 파일 다운로드 중 특정 바이트 범위만 요청할 때 사용됨.
  • 주로 동영상 스트리밍, 대용량 파일 다운로드에서 활용.

📌 사용 사례:

  • 동영상 스트리밍에서 특정 구간만 로딩
  • 대용량 파일을 여러 개의 작은 청크로 다운로드

📌 예제 (파일 다운로드 중 일부 범위 요청):

GET /video.mp4 HTTP/1.1
Host: example.com
Range: bytes=500-1000

📌 서버 응답:

HTTP/1.1 206 Partial Content
Content-Range: bytes 500-1000/1000000
Content-Type: video/mp4

[binary data]

💡 클라이언트는 파일의 일부분만 다운로드하여 네트워크 성능을 최적화 가능.


3. 결론

🔹 2xx 상태 코드는 클라이언트 요청이 성공적으로 처리되었음을 의미하며, HTTP 응답의 가장 중요한 부분 중 하나입니다.
🔹 200 OK, 201 Created, 204 No Content, 206 Partial Content 등 다양한 응답 코드가 있으며, 각각 특정한 성공 시나리오에 맞게 사용됩니다.
🔹 RESTful API 설계에서 올바른 2xx 상태 코드를 사용하는 것은 클라이언트와의 원활한 상호작용을 보장하는 중요한 요소입니다. 🚀

2xx 응답 코드를 적절히 활용하면, API 및 웹 애플리케이션의 사용자 경험과 성능을 최적화할 수 있습니다!

728x90

'네트워크 > HTTP' 카테고리의 다른 글

HTTP 상태 코드: 4xx (클라이언트 오류)  (0) 2025.03.03
HTTP 상태 코드: 3xx (리다이렉션)  (0) 2025.03.03
HTTP 상태 코드: 1xx (정보 응답)  (2) 2025.03.03
HTTP 메서드: PATCH  (0) 2025.03.03
HTTP 메서드: OPTIONS  (0) 2025.03.03