공부하기/Network
[Network] HTTP Method와 멱등성
다섯자두
2025. 3. 19. 11:26
🌀 HTTP가 뭔가요?
HTTP stands for 'Hyper Text Transfer Protocol'
- 어플리케이션 계층에서 데이터를 주고받기 위해 사용하는 프로토콜이다.
- 전송 계층 프로토콜으로 TCP를 사용한다.
🌀 HTTP Method에 대해 설명해 주세요.
- HTTP 요청이 주어진 리소스에 수행하길 원하는 행동을 나타낸다.
- 주로 사용하는 메서드로는 ``GET``, ``POST``, ``PUT``, ``DELETE``, ``PATCH``가 있다.
💬 GET과 POST의 차이는 무엇인가요?
- GET 요청은 데이터를 받기를 원하는 요청
- POST 요청은 데이터를 서버로 제출하는 요청
💬 POST, PUT, PATCH의 차이는 무엇인가요?
- 세 메서드 모두 데이터를 서버로 제출하는 요청 메서드이다.
- POST는 데이터의 제출 그 자체를 의미한다.
- 새로운 리소스를 생성한다는 의미를 주로 가진다.
- 필요에 따라 Body를 포함하고자 하는 요청을 POST로 보내기도 한다.
- PUT과 PATCH는 서버에 저장된 데이터의 변경의 의미를 포함한다.
- PUT은 기존 데이터를 제출한 데이터로 덮어쓰는 작업을 의미한다. (전체 변경)
- PATCH는 기존 데이터의 일부를 변경하는 작업을 의미한다.
💬 HTTP Method의 멱등성에 대해 설명해 주세요.
멱등하다: 첫 번째 수행 이후 여러 차례 수행해도 결과를 변경시키지 않는 작업 또는 기능의 속성
예를 들어 어떤 숫자에 1을 곱하는 연산은 여러 번 수행해도 처음 1을 곱한 것과 같은 숫자가 되기 때문에 멱등하다.
- 같은 요청을 여러 번 보내더라도 서버의 상태가 한 번 요청했을 때와 동일한 상태로 유지되는 성질을 의미한다.
| 메서드 | 멱등성 | 설명 |
| GET | O | 같은 요청을 여러 번 보내도 결과가 동일하다. |
| PUT | O | 사용자 정보를 덮어쓰기 때문에 같은 요청을 여러 번 보내도 결과가 변하지 않는다. |
| DELETE | O | 같은 요청을 여러 번 보내도 리소스는 한 번만 삭제된다. |
| POST | X | 요청할 때마다 새로운 리소스가 생성되어 같은 데이터가 중복 저장될 수 있다. |
| PATCH | X | 단순 데이터 수정이라면 멱등성을 가질 수 있으나, 부분 데이터의 값을 증가시키는 요청의 경우 멱등이 아니게 되는 경우가 존재한다. |
- 안정성, 데이터 일관성을 확보하기 위해 항상 멱등성을 고려하여야 한다.
- 멱등성을 가지는 method(GET)의 경우 캐싱을 고려하는 등으로 서버 부하를 줄이는 방법을 고려해볼 수 있다.