티스토리 뷰

Spring

[Spring] Http Method 란

seungwonlee 2024. 7. 21. 16:06

HTTP Method

클라이언트가 서버 리스소에 대해 수행하고자 하는 작업 유형을 명시하는 요청 방식입니다. 각 메서드는 특정 동작과 의도를 표현하며, 클라이언트와 서버 간의 데이터 교환 방식을 정의합니다.

멱등성

요청을 여러 번 수행해도 결과가 동일함을 의미합니다. HTTP 메서드 중 멱등성을 가지는 것은 GET, PUT, DELETE이며, POST는 멱등성을 보장하지 않습니다.

주요 메서드 5가지

1. GET

데이터를 조회할 때 사용합니다. 서버 상태를 변경하지 않아 안전(Safe)한 메서드이며, 멱등성을 보장합니다.

2. POST

주로 데이터를 생성하거나 작업을 요청할 때 사용합니다. 멱등성을 보장하지 않으며, 호출마다 상태가 달라질 수 있습니다.

3. DELETE

데이터를 삭제할 때 사용합니다. 멱등성을 보장하며, 리소스를 삭제한 후 재호출 시 상태가 변경되지 않습니다. 이미 삭제된 경우 404 응답이 반환될 수 있습니다.

4. PUT

데이터를 대체하거나 리소스를 생성할 때 사용합니다. 제공되지 않은 속성은 기본값 또는 null로 설정될 수 있습니다. 멱등성을 보장합니다.

5. PATCH

리소스의 일부만 변경할 때 사용합니다. 제공되지 않은 속성은 기존 값을 유지하며, 멱등성을 보장하지 않을 수도 있습니다.


POST 방식이 GET 방식보다 안전한가?

GET 방식은 URL에 데이터가 포함되어 데이터 노출 위험이 있습니다. POST 방식은 데이터가 요청 본문에 포함되므로 상대적으로 안전할 수 있습니다. 하지만 리소스의 계층적 구조를 나타낼 때 리소스 식별자를 포함하여 리소스 간의 관계를 직관적으로 나타낼 수 있습니다. 

POST vs PUT

POST는 리소스를 생성할 때 사용되며, 동일한 요청을 반복적으로 보내면 리소스가 중복 생성될 수 있습니다. 반면 PUT은 지정된 리소스를 생성하거나 수정하는 데 사용되며, 동일한 요청을 반복적으로 보내도 결과가 달라지지 않는 멱등성을 보장합니다.

  • POST: "새로운 데이터를 서버에 추가해줘!"
  • PUT: "내가 지정한 이 데이터로 서버의 상태를 맞춰줘!"

PUT vs PATCH

PUT은 지정된 리스소의 전체를 수정하며 멱등성을 보장합니다. PATCH는 리소스의 부분 수정하는 차이가 있고 구현 방식에 따라 멱등성을 보장하지 않을 수 있습니다. 예를 들어 서버가 PATCH 요청을 처리하며 리소스의 일부 값을 누적한다면 요청 결과가 달라질 수 있습니다. 

 

끝.

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함