공부하기/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)의 경우 캐싱을 고려하는 등으로 서버 부하를 줄이는 방법을 고려해볼 수 있다.

🔗 Reference