HTTP Method란? _ HTTP 주요 Method
본문 바로가기
DevOps 부트캠프/네트워크

HTTP Method란? _ HTTP 주요 Method

by liveloper jay 2022. 3. 14.

HTTP 는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합 간 서로 공유하기도 합니다. http 메서드에는 많은 종류가 있지만, CRUD에 관련된 주요 메서드만 알아보도록 하겠습니다.

 

 

HTTP method

 

http 주요 method는 다음과 같습니다.

 

GET

  • GET method는 주로 데이터를 읽거나 검색할 때 사용하는 메소드입니다.
  • 지정된 리소스를 요청하는 메소드이며 해당 리소스는 변경되지 않고 클라이언트로 전달만 됩니다.

POST

  • POST method는 주로 새로운 리소스를 생성할 때 사용되는 메소드로, 구체적으로는 지정된 리소스의 하위 리소스를 생성하는데 사용됩니다.
  • POST는 같은 요청을 여러개 보낼 시 같은 리소스가 수정되는 것이 아닌 여러개의 리소스가 생성됩니다. (덮어쓰는 개념 x, 계속 새롭게 생성)
  • 그러므로 POST Request는 Idempotent(멱등) 하지 않다고 볼 수 있습니다.

PUT

  • PUT method는 리소스를 업데이트하거나 생성할 때 사용되는 메소드입니다.
  • 구체적으로 어떤 리소스를 수정해야하는지 식별자를 알고 URL을 통해 지정해주어야 하며, 리소스가 존재하지 않는 경우 새로운 리소스를 생성해줍니다.
  • 같은 요청을 여러개 보내더라도 하나의 리소스만 생성되기 때문에 Idempotent 하다고 할 수 있음.

PATCH

  • PATCH method는 리소스를 업데이트할 때 사용되는 메소드입니다.
  • PATCH는 업데이트 진행 시 필요한 부분만 받아와서 업데이트를 진행하는데, PUT의 경우 요청을 보내면 전체를 업데이트 진행한다는 점에서 차이점을 보입니다.

DELETE

  • DELETE method는 리소스를 삭제할 때 사용되는 메소드입니다.
  • DELETE도 구체적으로 어떤 리소스를 수정해야하는지 식별자를 알고 URL로 지정해 주어야 합니다.
Idempotent(멱등성)이란?
어떠한 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 멱등성이라고합니다. 즉 POST는 같은 요청을 여러번 보내면 결과가 달라지기 때문에 멱등하지 않다고 볼 수 있습니다.

 

CRUD 와 비교

CRUD HTTP Method
Read GET
Create POST
Update PUT /PATCH
Delete DELETE

 

 

 

POST vs PUT

 

일반적으로 POST는 생성 , PUT은 수정의 역할을 하는 메서드입니다. 하지만 위의 설명에서 PUT의 경우도 리소스가 존재하지 않을 경우 리소스를 생성해주는 역할을 합니다. 이 둘은 어떤 차이가 있을까요? 표를 통해 비교해보겠습니다.

 

조건 POST PUT
요청시 리소스 식별자 X O
Idempotent(멱등성) X O
Response Caching O (대신 status 300으로) X

 

 

 

 

각 Method별 예시

 

GET /example

→ 해당 엔드포인트에 있는 모든 데이터를 조회

GET /example/:id

→ 특정 id 값에 해당하는 데이터 하나만 조회

POST /example

→ 해당 리소스의 새로운 하위 리소스를 생성

POST /example/:id

→ 잘못된 요청, 위와 같이 특정 id 값 지정해줄수 없음

PUT /example/:id

→ 해당 id 값에 해당하는 데이터 전체 수정

PATCH /example/:id

→ 해당 id 값에 해당하는 일부 데이터만 수정

PUT /example

→ 잘못된 요청, 구체적인 식별자(id값)을 지정해야 함.

DELETE /example/:id

→ 특정 id 값에 해당하는 데이터 삭제

 

 

 

 

 

참고자료:

https://kingjakeu.github.io/study/2020/07/15/http-post-put/ https://m.blog.naver.com/azure0777/220824614635

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

'DevOps 부트캠프 > 네트워크' 카테고리의 다른 글

Nginx를 이용한 Reverse Proxy 및 캐시 설정  (0) 2022.03.30
프록시(proxy)란?_proxy, web cache  (0) 2022.03.14
TCP vs UDP  (0) 2022.03.14
RESTful API 란?  (0) 2021.12.10

댓글