4월 25일 -HTTP Methods

Yullgiii·2024년 4월 25일
0
post-thumbnail

HTTP Methods와 관련된 개념

HTTP Methods의 멱등성

HTTP 프로토콜에서 멱등성(Idempotence)은 여러 번 수행되더라도 결과가 동일한 연산을 의미한다. HTTP 메소드 중에서 GET, PUT, DELETE, HEAD, OPTIONS, TRACE는 멱등성을 가진다고 할 수 있다. 예를 들어, GET 요청을 여러 번 수행해도 서버의 데이터나 상태가 변하지 않는다. 반면, POST 메소드는 데이터를 서버에 제출하여 서버의 상태를 변경할 수 있으므로 멱등하지 않다.

GET과 POST의 차이

  • GET은 데이터를 조회하기 위해 사용되는 메소드로, 데이터를 URL의 일부로서 서버에 전송한다. 이 메소드는 데이터를 가져오는 데 사용되며, 데이터를 변경하지 않는다.
  • POST는 서버에 데이터를 생성하거나 변경하기 위해 사용된다. 데이터는 요청 본문(body)에 포함되어 전송되며, GET보다 보안적으로 안전하다고 할 수 있다. POST는 멱등하지 않기 때문에 같은 요청을 여러 번 보내면 동일한 수의 자원이 여러 번 생성될 수 있다.

POST, PUT, PATCH의 차이

  • POST는 주로 새 리소스를 생성할 때 사용된다.
  • PUT은 지정된 URL의 리소스를 새 데이터로 전체 교체할 때 사용된다. PUT은 멱등성을 가지기 때문에 같은 PUT 요청을 여러 번 수행해도 하나의 결과만 생성된다.
  • PATCH는 리소스의 일부를 수정하는 데 사용된다. 이 메소드는 PUT과 달리 전체 리소스를 교체하지 않고 일부분만을 업데이트한다.

HTTP 1.1 이후 GET 메소드의 Body 사용에 대한 지양

HTTP 1.1 표준에서는 기술적으로 GET 요청의 본문을 허용하지만, 이는 권장되지 않는다. 이유는 다음과 같다:

  • 캐싱: GET 요청은 결과를 캐시할 수 있어야 하며, 본문이 포함되면 캐시 구현이 복잡해진다.
  • 서버 지원: 많은 서버와 중개자(proxy)가 GET의 본문을 무시하거나 제대로 처리하지 못할 수 있다.
  • 의미상 부적절함: GET은 정보를 검색하는 데 사용되며, 데이터의 본문을 포함하는 것은 메소드의 의도와 맞지 않을 수 있다.

이렇게 HTTP 메소드에 대해 상세하게 설명하면, 각 메소드의 사용 케이스와 기술적 특성을 이해하는 데 도움이 될 것이다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글