본문 바로가기
Programming

GET POST 차이점 💡

by 개발자 염상진 2022. 10. 14.

 

HTTP GET 메소드, POST 메소드 🔦

 

HTTP 메소드 중 GET과 POST는 다른 방식으로 작동합니다. 하나의 컨트롤러에 GET과 POST를 같이 묶어버리면 보안을 제대로 신경쓰지 않은 결과물이 탄생하게 됩니다. HTTP 메소드에서도 두개의 메소드를 구분해놓은 만큼 상황에 맞는 메소드를 사용해야 합니다.

 

 

 

GET 특징 ⭐️

 

HTTP GET 메소드는 서버로로 부터 리소스를 응답받을 때 사용합니다. 메인 페이지를 응답받거나, 게시판의 글을 조회할 때 사용됩니다. 

① GET은 cache를 사용할 수 있다

Client가 서버에게 GET 요청을 보내면 웹 캐시가 요청을 가로챌 수 있습니다. 서버로부터 리소스를 새롭게 다운로드하는게 아니라 cache에 저장된 리소스를 바로 응답받을 수 있습니다. HTTP Header에 cache-control에서 캐시 옵션을 지정해 줄 수 있습니다.

GET 요청은 브라우저 히스토리에 기록됩니다.

③ GET 요청은 길이 제한이 있습니다. 브라우저마다 길이 제한은 다릅니다.

 

 

④ GET 요청에서 critical한 정보를 다뤄서는 안됩니다. 파라미터에 정보가 노출되어 버리므로, GET 요청은 public한 정보만을 다뤄야 합니다.

 

 

POST 특징 ⭐️

 

Client가 리소스를 새롭게 생성할 때 사용되는 메소드입니다. 또한 업데이트할 때 도 PUT이나 PATCH 대신 사용하기도 합니다. POST 메소드의 특징은 body를 사용할 수 있다는 점입니다. body에 태워 보내는 정보의 타입은 Content-Type에서 결정할 수 있습니다. 예를 들어 application/json 형식으로 말이죠.

 

① POST는 길이 제한이 없습니다. 

② HTML의 <form> 태그를 통해 메소드를 사용합니다.

③ POST 요청은 cache 되지 않고, 브라우저 히스토리에도 남지 않습니다.

④ body에 태우는 정보를 암호화할 수 있습니다.

 

 

GET 🆚 POST

 

🔨 사용 목적 🔨

GET은 리소스를 조회할 때 사용되며, POST는 리소스를 생성하거나 중요한 정보를 담은 조회를 할 때 사용됩니다.

🔨 멱등성(idempotent) 🔨

멱등이란 연산을 여러번 해도 같은 결과를 반환하는 성질입니다. GET은 멱등이며, POST는 멱등이 아닙니다.

🔨 보안성 🔨

GET 요청은 params나 queryString에 정보가 다 노출됩니다. 하지만 POST의 경우 body에 태워 정보를 요청하고, 이 정보를 암호화 해서 요청할 수 있습니다. 

 

 

  GET POST
cache 가능 불가능
Browser History 가능 불가능
Bookmark 가능 불가능
Data Length Limit 미존재 존재
HTTP 응답 코드 200(Success) 201(created)
사용목적 리소스 요청 리소스 생성
데이터 전달방식 QueryString HTTP Body
멱등성(Idempotent) O X

 


 

🚀️ 도움이 되셨다면 구독좋아요 부탁드립니다 👍️

 

 

 

브라우저 주소창에 URL을 입력하면 어떻게 될까?

What happens when you type a URL in browser? 신입 개발자 면접 질문으로 단골로 등장하는 개념입니다. chrome, safai, firefox등의 웹 브라우저에 우리는 URL을 치고 페이지를 이동합니다. 이 때 우리가 보지..

about-tech.tistory.com

 

 

Node.js crypto 비대칭키 대칭키 구현하기

암호화는 프로그램에서 굉장히 중요한 분야고 계속해서 연구가 진행되고 있습니다. 많은 연구자들이 좀더 안전한 암호화 알고리즘을 개발하고 있고, 현재 우리는 알게 모르게 그들의 결과물을

about-tech.tistory.com

 

 

[Blockchain] 프루닝(Pruning)이란?

프루닝(Pruning)이란 인공지능에서 검색 모델을 학습한 후 중요도가 낮거나 불필요한 노드를 제거하는 기술입니다. 그래프가 수많은 파라미터 값들을 가지고 있고 그래프의 엣지를 제거하는 모습

about-tech.tistory.com

 

댓글