HTTP Method Get, Post 차이

dev-swd·2020년 11월 15일
0

IT용어와 지식

목록 보기
6/7

GET

서버로 부터 정보를 조회하기 위해 설계된 메서드이다.
GET은 요청을 전송할 때 필요한 데이터를 Body 에 담지 않고 쿼리스트링을 통해서 요청한다.
쿼리스트링은 URL 끝에 ? 를 사용하여 key 와 value 를 지정하여 요청을 보낸다.
요청 파라미터가 여러 개일 경우 & 연산자로 연결한다.
예를 들면, 아래와 같은 요청이 GET 요청이다.

https://www.coupang.com/vp/products/1234?itemId=99999&vendorItemId=1234

"프로덕트 1234 에서 {itemId: 9999} 그리고 {vendorItemId:1234} 이 상품을 불러주세요"
하는 요청이다.

GET 은 불필요한 요청을 제한하기 위해서 요청이 캐시될 수 있다.
특히 js, css 와 같은 정적 컨텐츠는 데이터 양이 크고 변경될 일이 적어서 반복해서 동일한 요청을 보낼 필요가 없기 때문에, 캐시된 데이터를 사용한다.
따라서 가끔 정적 컨텐츠가 캐시되어, 컨텐츠를 변경해도 내용이 바뀌지 않는 경우가 있는데, 이 때는 캐시를 지워주고 다시 새로운 요청을 만들어야 한다.


POST

리소트를 생성/변경 하기 위해 설계된 메서드이다.
GET 과 달리 전송해야 될 데이터를 HTTP 메세지의 Body 에 담아서 전송한다.
Body 는 길이의 제한없이 데이터를 전송할 수 있기 때문에, GET과 달리 대용량 데이터를 전송할 수 있다.
POST 는 전송하는 내용이 쿼리스트링이 아닌 BODY 에 담겨지기 때문에 주소창에 보이지 않아 안전하다고 생각할 수 있지만, 개발자툴을 이용하여 얼마든지 요청을 확인할 수 있기 때문에, 민감한 데이터의 경우 반드시 암호화 하여 전송해야 한다.


GET, POST 의 차이

GET 은 서버에게 동일한 요청을 여러번 전송하더라도 동일한 응답이 돌아와야 한다.
서버의 데이터나 상태를 변경시키지 않아야 하기 때문에 주로 조회를 할 때 사용한다.
예를 들어 웹페이지를 열어보거나 게시물을 조회하는 요청은 GET 으로 처리하게 된다.

POST 는 서버의 상태나 데이터를 변경시킬 때 사용된다.
따라서 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있다.
POST 는 생성/수정/삭제 에 사용될 수 있는데, 수정은 PUT 또는 PATCH, 삭제는 DELETE 가 더 용도에 맞는 메서드라고 할 수 있다.
하지만 이 모든걸 POST 로 처리할 수 있다.
POST 로 삭제 요청을 보낼 때, 실제로 물리삭제를 하지 않고, 논리삭제를 할 수 있기 때문이다.


참고자료:
https://hongsii.github.io/2017/08/02/what-is-the-difference-get-and-post/

profile
개발을 취미로 할 수 있는 그 때 까지

0개의 댓글