WEB | HTTP Method / CRUD

Wonhee 📘·2022년 4월 8일
0

WEB

목록 보기
8/9
post-thumbnail

평소에 코딩을 하면서 서버와 클라이언트가 소통을 하기 위해서 보통 Http를 이용을 하게 되었습니다. 그런데 GET, POST, PUT, DELETE 등 여러가지의 Http Method 가 존재하는데 명확하게 사용하기 위해 자세히 알아보았습니다.

🟦 HTTP Method 대표 종류

HTTP Method는 크게 GET, POST, PUT, DELETE가 대표적입니다.
보통 CRUD에서 다음과 같이 이용합니다.

조회: GET
등록: POST
수정: PUT
삭제: DELETE

※ CRUD란?

C reate : 생성
R ead : 조회
U pdate : 수정
D elete : 삭제

HTTP Method의 전체 종류

메소드는 총 8개가 존재하며 아래와 같습니다.

GET: 서버로 부터 데이터를 취득
POST: 서버에 데이터를 추가, 작성 등
PUT: 서버의 데이터를 갱신, 작성 등
DELETE: 서버의 데이터를 삭제
HEAD: 서버 리소스의 헤더(메타 데이터의 취득)
OPTIONS: 리소스가 지원하고 있는 메소드의 취득
PATCH: 리소스의 일부분을 수정
CONNECT: 프록시 동작의 터널 접속을 변경

🤔 멱등성(Idempotence)이란?

우선, HTTP Method에 대한 자료를 찾아보면, idempotent라는 말이 나옵니다. 한국어로는 멱등성이라고하며,
멱등성이란 여러번 수행해도 결과가 같음을 의미합니다.
즉, 호출로 인하여 데이터가 변형이 되지 않는다는 것을 의미합니다.

📘 GET

GET 메소드는 주로 데이터를 읽거나(Read) 검색(Retrieve)할 때에 사용되는 메소드이다. 만약에 GET요청이 성공적으로 이루어진다면 XML이나 JSON과 함께 200 (Ok) HTTP 응답 코드를 리턴한다. 에러가 발생하면 주로 404 (Not found) 에러나 400 (Bad request) 에러가 발생한다.

  • HTTP 명세에 의하면 GET 요청은 오로지 데이터를 읽을 때만 사용되고 수정할 때는 사용하지 않는다.
  • GET 요청은 idempotent 하다.
  • 같은 요청을 여러 번 하더라도 변함없이 항상 같은 응답을 받을 수 있다.
  • 데이터를 변경하는 연산에 사용하면 안된다.

📘 POST

POST 메소드는 주로 새로운 리소스를 생성(create)할 때 사용된다. 조금 더 구체적으로 POST는 하위 리소스(부모 리소스의 하위 리소스)들을 생성하는데 사용된다. 성공적으로 creation을 완료하면 201 (Created) HTTP 응답을 반환한다.

  • POST 요청은 idempotent 하지 않다.
  • 같은 POST 요청을 반복해서 했을 때 항상 같은 결과물이 나오는 것을 보장하지 않는다
  • 두 개의 같은 POST 요청을 보내면 같은 정보를 담은 두 개의 다른 resource를 반환할 가능성이 높다.

📘 PUT

PUT는 리소스를 생성 / 업데이트하기 위해 서버로 데이터를 보내는 데 사용됩니다.

PUT 요청은 idempotent 합니다.
동일한 PUT 요청을 여러 번 호출하면 항상 동일한 결과가 생성됩니다.

📘 DELETE

DELETE 메서드는 지정된 리소스를 삭제합니다.

RESTful 하게 이용하는 팁

📃 POST방식이 GET방식보다 보안측면에서 더 좋다?

GET과 비교하여 URL에 데이터의 정보가 들어 있지 않으므로 조금 더 안전하다고 볼 수 있다.

📃 GET방식이 POST방식보다 속도가 빠르다?

GET 방식은 캐싱을 하기 때문에 여러번 요청시 저장된 데이터를 활용하므로 조금 더 빠를 수 있다.

📃 POST vs PUT

POST와 PUT은 구분해서 사용해야한다. POST는 새로운 데이터를 계속 생성하기 때문에 요청시마다 데이터를 생성하지만, PUT은 사용자가 데이터를 지정하고 수정하는 것이기 때문에 같은 요청을 계속하더라도 데이터가 계속 생성되지는 않는다.

📃 PUT vs PATCH

PATCH는 이 포스트에서 다루지 않았지만, 정보를 수정할 수 있는 HTTP Method가 또 있습니다. 하지만 PUT이랑은 조금 다릅니다. PUT은 지정한 데이터를 전부 수정하는 Method이지만 PATCH는 정보의 일부분이 변경되는 방법입니다. 그래서 PUT은 멱등하지만, PATCH는 멱등하다고 볼 수 없습니다.

REST에 대한 포스팅을 작성한적이 있으니 필요하신분은 아래 링크를 참고해주세요

REST 알아보기 😉

profile
오늘 걷지 않으면 내일은 뛰어야한다 🚶‍♂️ 🏃‍♀️

0개의 댓글