DELETE 메서드는 클라이언트가 서버의 특정 리소스를 삭제할 때 사용하는 HTTP 요청 방식입니다.
RESTful API 설계에서 필수적인 요소로 자리 잡고 있으며, 게시물 삭제, 사용자 계정 해지, 데이터 정리 등의 다양한 작업에서 활용됩니다.
이번 글에서는 DELETE 메서드의 개념과 특징, 요청 구조 및 실제 활용 사례를 심층적으로 살펴보겠습니다.
1. DELETE 메서드란?
DELETE 메서드는 서버의 특정 리소스를 제거하는 HTTP 요청 방식입니다.
클라이언트가 특정 리소스를 삭제하고자 할 때 해당 URI(Uniform Resource Identifier)를 지정하여 요청을 보냅니다.
이후 서버는 요청을 처리한 후, 리소스를 삭제하고 성공 여부를 응답하게 됩니다.
📌 DELETE 요청의 기본 형식:
DELETE /resource/123 HTTP/1.1
Host: www.example.com
/resource/123
→ 삭제하려는 특정 리소스의 URI.- 서버는 해당 리소스를 제거하고 적절한 응답 상태 코드를 반환.
💡 DELETE 메서드의 핵심 개념:
- 지정된 리소스를 삭제하기 위한 요청.
- 멱등성(Idempotency) 보장 → 동일한 DELETE 요청을 여러 번 보내도 동일한 결과를 보장.
- 보안 강화 필요 → 중요 데이터를 삭제하는 요청이므로 인증 및 권한 확인 필수.
2. DELETE 메서드의 주요 특징
1️⃣ RESTful API에서 리소스 삭제
DELETE 메서드는 RESTful API 설계에서 CRUD(Create, Read, Update, Delete) 작업 중 "삭제(Delete)"에 해당합니다.
서버는 특정 리소스를 제거하고, 클라이언트가 요청한 데이터를 삭제한 후 상태 코드를 통해 결과를 반환합니다.
📌 예제 (블로그 게시물 삭제 요청 – REST API 활용)
DELETE /posts/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer someaccesstoken
DELETE /posts/123
→ ID가123
인 게시물을 삭제.Authorization: Bearer someaccesstoken
→ 보안 강화를 위해 인증 토큰 포함 필요.
📌 예제 (서버 응답 – 게시물 삭제 완료)
HTTP/1.1 204 No Content
204 No Content
→ 요청이 성공적으로 처리되었지만, 본문 데이터가 없음.- 클라이언트는 해당 리소스가 삭제되었음을 인지하고 UI에서 목록을 갱신해야 함.
2️⃣ 멱등성(Idempotency) 보장
DELETE 요청은 멱등성(Idempotent) 을 보장해야 합니다.
즉, 동일한 DELETE 요청을 여러 번 보낸다고 하더라도 결과는 동일해야 합니다.
📌 예제 (같은 DELETE 요청을 여러 번 실행하는 경우)
DELETE /users/456 HTTP/1.1
1️⃣ 첫 번째 요청:
- ID
456
인 사용자가 삭제됨 →204 No Content
반환.
2️⃣ 두 번째 요청: - 이미 삭제된 사용자를 다시 삭제 요청 → 서버는
404 Not Found
반환.
💡 DELETE 요청은 여러 번 실행해도 최종적으로 해당 리소스가 삭제된 상태를 유지해야 함.
3️⃣ 응답 상태 코드(Status Code)와 동작 방식
DELETE 요청이 성공적으로 수행되면, 서버는 적절한 상태 코드와 함께 응답을 반환합니다.
📌 DELETE 요청에 대한 상태 코드 예시
상태 코드 | 설명 | 의미 |
---|---|---|
200 OK | 요청 성공 | 삭제된 리소스와 함께 응답 본문을 포함 가능 |
202 Accepted | 요청이 접수됨 | 삭제가 비동기적으로 처리됨 |
204 No Content | 삭제 완료 | 요청이 성공했지만 본문이 없음 |
404 Not Found | 리소스 없음 | 삭제할 대상이 존재하지 않음 |
403 Forbidden | 접근 금지 | 인증 또는 권한이 부족 |
📌 예제 (DELETE 요청 후 응답 메시지 – 성공적인 삭제)
HTTP/1.1 204 No Content
204 No Content
→ 요청이 성공적으로 처리되었으나 응답 본문 없음.- 클라이언트는 별도의 데이터 없이 UI를 갱신하면 됨.
📌 예제 (삭제할 리소스가 존재하지 않는 경우 – 404 Not Found)
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "User not found"
}
- 클라이언트가 존재하지 않는 사용자를 삭제 요청한 경우 발생.
404 Not Found
를 반환하여 해당 리소스가 존재하지 않음을 알림.
3. DELETE 요청의 실제 활용 예시
1️⃣ 사용자 계정 삭제
DELETE /users/789 HTTP/1.1
Host: api.example.com
Authorization: Bearer someaccesstoken
- ID
789
인 사용자의 계정을 삭제하는 요청. - 보안을 위해 인증 토큰 필요.
- 성공 시
204 No Content
응답.
2️⃣ 제품 정보 삭제
DELETE /products/456 HTTP/1.1
Host: api.example.com
- ID
456
인 제품 정보를 삭제하는 요청. - 서버는 데이터베이스에서 해당 제품을 삭제하고 응답 반환.
4. DELETE vs. 다른 HTTP 메서드 비교
메서드 | 목적 | 멱등성 | 요청 본문 포함 | 캐싱 가능 여부 |
---|---|---|---|---|
GET | 데이터 조회 | ✅ | ❌ | ✅ |
POST | 새로운 데이터 생성 | ❌ | ✅ | ❌ |
PUT | 기존 데이터 수정/대체 | ✅ | ✅ | ❌ |
PATCH | 기존 데이터 일부 수정 | ❌ | ✅ | ❌ |
DELETE | 데이터 삭제 | ✅ | ❌ | ❌ |
💡 DELETE는 GET과 다르게 서버 상태를 변경하며, POST와 달리 멱등성을 보장.
5. DELETE 요청 시 보안 고려 사항
DELETE 요청은 서버의 데이터를 삭제하는 중요한 작업이므로, 보안적으로 신중하게 다뤄야 합니다.
1️⃣ 인증(Authentication) 및 권한(Authorization) 확인
- 사용자가 삭제 요청을 보내기 전에 인증 토큰 또는 세션 정보 확인 필요.
- 특정 사용자만 데이터 삭제가 가능하도록 역할(Role-Based Access Control, RBAC) 적용.
📌 예제 (인증이 필요한 DELETE 요청 – OAuth 토큰 포함)
DELETE /users/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer someaccesstoken
Authorization: Bearer someaccesstoken
→ 보안 토큰을 사용하여 사용자 인증.
6. 결론
🔹 DELETE 메서드는 서버에서 특정 리소스를 제거하는 HTTP 메서드이며, RESTful API에서 데이터 삭제 작업에 필수적입니다.
🔹 멱등성을 보장하며, 동일한 요청을 여러 번 보내더라도 최종적으로 동일한 결과를 유지해야 합니다.
🔹 204 No Content, 404 Not Found, 403 Forbidden 등의 상태 코드를 사용하여 요청 결과를 명확하게 전달할 수 있습니다.
🔹 데이터 삭제는 중요한 작업이므로, 반드시 인증 및 권한 확인 절차를 거쳐야 합니다. 🚀
DELETE 메서드를 올바르게 이해하고 활용하면 안전하고 효율적인 API 설계가 가능합니다!
'네트워크 > HTTP' 카테고리의 다른 글
HTTP 메서드: OPTIONS (0) | 2025.03.03 |
---|---|
HTTP 메서드: HEAD (0) | 2025.03.03 |
HTTP 메서드: PUT (0) | 2025.03.03 |
HTTP 메서드: POST (0) | 2025.03.02 |
HTTP 메서드: GET (0) | 2025.03.02 |