[HTTP] GET 방식과 POST 방식
GET 방식과 POST 방식 GET 방식과 POST 방식은 웹에서 가장 많이 사용되는 HTTP 요청 메서드입니다. 이 두 메서드는 각각의 용도에 따라 클라이언트와 서버 간의 데이터 교환 방식을 정의합니다. 이번
lwz7.tistory.com
지난 포스팅에서 GET과 POST 방식에 대해 알아보았습니다. 이번 포스팅에선 조금 더 범위를 확장해서 멱등성 (idempotent)에 대해 알아보고 지난 포스팅에서 다루지 않았던 또 다른 HTTP 메서드인 PUT과 DELETE에 대해 알아보겠습니다.
멱등성이란?
멱등성은 동일한 작업을 여러 번 수행해도 결과가 동일하게 유지되는 성질입니다.
- 멱등성을 가진 HTTP 메서드
- GET: 데이터를 조회할 때 사용하며, 계속해서 조회 요청을 보내도 서버의 상태가 변하지 않습니다.
- PUT: 데이터를 업데이트하거나 생성할 때 사용합니다. 동일한 요청을 여러 번 보내도 서버의 상태는 첫 번째 요청 이후로 변하지 않습니다.
- DELETE: 특정한 데이터를 삭제할 때 사용합니다. 동일한 요청을 보내더라도 그 데이터는 이미 삭제되었기 때문에 상태가 변하지 않습니다.
- 멱등성을 가지지 않는 HTTP 메서드
- POST: 서버에 데이터를 제출하여 새로운 데이터를 생성합니다. 동일한 사진을 여러 번 서버에 전송하면 서버에는 새로운 데이터로 계속해서 사진이 추가됩니다.
PUT
PUT 메서드는 클라이언트가 데이터를 업데이트하거나 새로 생성할 때 사용하는 HTTP 메서드입니다.
- 특징
- PUT 메서드는 요청된 데이터를 서버에 덮어씌웁니다. 즉, 기존 데이터가 존재한다면 해당 데이터를 요청된 내용으로 대체합니다. 존재하지 않는다면 새로 생성합니다.
- PUT 메서드는 멱등성을 가집니다. 동일한 요청을 여러 번 보내더라도 서버의 상태는 첫 번째 요청 이후 변하지 않습니다.
- 사용 사례
- 프로필 업데이트: 사용자 프로필 정보를 업데이트할 때 전체 프로필 데이터를 PUT 메서드로 서버에 전송할 수 있습니다.
※ PUT과 POST의 차이점?
PUT과 POST 모두 데이터를 생성하는 데 사용된다는 설명에서 혼란스러울 수 있습니다. 두 메서드의 차이점을 짚고 가겠습니다.
- PUT: 특정한 '위치'를 지정하여 그곳에 있는 데이터를 업데이트하거나 없다면 새로 생성하는 데 사용됩니다. 따라서 동일한 요청을 반복해서 보내도 같은 결과가 나옵니다.
- POST: 새로운 데이터를 생성할 때 사용됩니다. 동일한 데이터를 여러 번 제출하면 서버에는 각각 새로운 데이터로 생성됩니다. 따라서 POST 요청은 멱등성을 가지지 않습니다.
DELETE
DELETE 메서드는 특정한 데이터를 삭제할 때 사용하는 HTTP 메서드입니다.
- 특징
- DELETE 요청이 처리되면 해당 데이터가 서버에서 삭제됩니다.
- 동일한 DELETE 요청을 여러 번 보내더라도 첫 번째 요청 이후에는 리소스가 이미 삭제되었기 때문에 더 이상의 요청은 효과가 없습니다. 따라서 DELETE 메서드도 멱등성을 가집니다.
- 사용 사례
- 게시물 삭제: 사용자가 자신이 작성한 게시물을 삭제할 때 DELETE 메서드를 사용할 수 있습니다.
※ DELETE 처리된 데이터는 서버에 남을까?
서버의 정책에 따라 다릅니다. 영구적으로 삭제할 수도 있고 soft 삭제를 통해 DB에 남겨둘 수도 있습니다.
'코딩' 카테고리의 다른 글
[HTTP] RESTful API 란? (1) | 2024.09.27 |
---|---|
[HTTP] PATCH 그리고 OPTIONS (3) | 2024.09.13 |
[HTTP] GET 그리고 POST (0) | 2024.08.22 |
[GitHub] 초보 개발자를 위한 .gitignore 작성 요령과 팁 (0) | 2024.08.20 |
[GitHub] Git과 GitHub (1) | 2024.08.17 |