[WEB] GET vs POST: REST API 개념과 함께 정리

Yoongja·2022년 5월 11일
post-thumbnail

🥸REST API 구성에 대하여 알아보자

REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처고, REST API는 REST를 기반으로 서비스 API를 구현한 것을 의미한다.

✅REST API는 자원,행위,표현의 3가지 요소로 구성된다.

구성 요소 내용 표현 방법
자원 자원 URI(엔드포인트)
행위 자원에 대한 행위 HTTP 요청 메서드
표현 자원에 대한 행위의 구체적 내용 페이로드

✅REST API 설계 원칙

REST에서 가장 중요한 기본적인 원칙은 두 가지다.
URI : 리소스를 표현하는데 집중 => 리소스를 식별할 수 있는 이름은 동사보다는 명사를 사용한다. 따라서, 이름에 get 같은 행위에 대한 표현이 들어가서는 안 된다.
HTTP 요청 메서드 : 행위에 대한 정의 => 클라이언트가 서버에게 요청의 종류와 목적을 알리는 방법니다. 주로 (GET,POST,PUT,PATCH,DELETE등)를 사용하여 CRUD를 구현한다.

❗️리소스에 대한 행위는 HTTP 요청 메서드를 통해 표현하며 URI에 표현하지 않는다. 예를 들어, 리소스를 취득하는 경우에는 GET, 리소스를 삭제하는 경우에는 DELETE를 사용하여 리소스에 대한 행위를 명확히 표현한다.
👍
GET /todos/1
DELETE /todos/1
👎
GET /todos/delete/1
GET /todos/show/1
GET /getTodos/1

Method Meaning
GET Read data
POST Insert data
PUT or PATCH Update data, or insert if a new id
DELETE Delete data
* * *

🥸지금부터 get과 post의 차이의 대하여 알아보겠습니다 ~🥸

실제 많은 개발자들이 GET 과 POST를 용도구분 없이 혼용해서 사용하고 이를 혼용해서 문제가 된것은 Google의 Accelerator 사건을 찾아보면 쉽게 알 수 있습니다.

GET 과 POST의 개념을 확실히 이해하고 이를 스펙에 정의된 용도대로 사용한다면 부가적으로 얻을 수 있는 이익이 많고, 전체 웹에서도 올바르게 사용될 수 있습니다. 그러면 GET과 POST를 정확히 알아봅시다.

✅GET 은 가져오는 것이고 POST는 수행하는 것입니다.

GET POST
select적인 성향을 가지고 있다
즉, 서버에서 어떠한 데이터를 가져와서 보여준다거나 하는 용도이지 서버의 값이나 상태등을 바꾸지는 않는다. 조금더 쉽게 말하자면 데이터를 읽거나 ,검색 할때 사용되는 method이다.
(게시판의 리스트 OR 글 보기 같은 것이 이에 해당한다)
서버의 값이나 상태를 바꾸기 위해서 사용한다.
(글쓰기를 수행시 글의 내용이 DB에 저장되고 수정을 하면 DB값이 수정된다. 이럴 경우에 POST를 사용한다.)
GET은 요청을 전송할 때 URL 주소 끝에 파라미터로 포함되어 전송되며, 이부분을 쿼리 스트링이라 부릅니다.
(ex. www.example.com/resources?name1=react&name2=study)
전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송합니다. HTTP메세지의 Body는 길이의 제한없이 데이터를 전송할 수 있습니다. 그래서 POST요청은 GET과 달리 대용량 데이터를 전송할 수 있습니다.


위의 사진은 get 과 post의 리소스 전달 차이점을 나타낸 사진입니다.

정리를 해보자면


GET POST
캐시 O X
브라우저 기록 O X
북마크 추가 O X
데이터 길이 제한 O X
HTTP 응답 코드 200(Ok) 201(Created)
언제 사용하는 가? 리소스 요청 리소스 생성
리소스 전달 방식 쿼리스트링 HTTP Body
profile
Belief in the possibility

0개의 댓글