본문 바로가기
[개발] Programming/기타 Study

GET vs POST 방식의 차이점과 장단점

by eatyourKimchi 2021. 5. 16.

 웹 개발을 하다 보면 서버에 요청을 보내는 HTTP Method인 GET, POST를 접하게 됩니다. 간단하게 보면 GET은 데이터를 요청할 때, POST는 데이터를 저장할 때 사용한다고 보면 되는데, 웹 개발을 하다 보면 이 두 호출 방식의 차이점에 대해 정확히 이해를 해야 할 경우가 생깁니다. 그래서 오늘은 두 호출 방식에 대한 차이를 알아보겠습니다.

 

 

이미지 저작권 @lookingfor.tistory.com

 

 

01 GET 방식

 GET은 데이터를 호출하는 목적으로 사용하며, URL에 파라미터를 추가하여 전송된다. 그렇기 때문에 보안에 취약하다. 보내는 길이는 한계가 있고 (약 2K가 안전) 헤더에 담아서 보내진다.

캐싱 기능이 있기 때문에 보안에 민감하지 않은 파라미터로 빠르게 조회해 오는데 유용한 방식이다. (URL만 알면 언제든지 호출할 수 있다.)

 

요청 형태 : www.test.com?id=Jay&status=rich&hoddy=traveling

요청 데이터 : id=Jay, status=rich, hoddy=traveling

 

 

02 POST 방식

 POST는 데이터를 저장하는 목적으로 사용하며, 요청 데이터가 HTML Body에 들어가서 보내기 때문에 외부에 요청 데이터가 노출되지 않고, 보낼 수 있는 데이터의 양도 제한이 없다. (파라미터뿐만 아니라 파일도 서버로 전송할 수 있다.)

 

캐싱 기능은 없기 때문에 빠르고 반복적으로 호출하는 경우에는 적합하지 않을 수 있다. (예를 들면, URL만으로는 즐겨찾기에 추가할 수 없다.)

 

요청 형태 : www.test.com  

요청 데이터 : 노출되지 않는다.

 

 

03 GET vs POST 비교

 GET과 POST를 상세하게 비교해 보면 아래와 같습니다.

 

항목 GET POST
Purpose Read Insert, Edit
Request format URL에 파라미터 추가하는 방식 message body에 넣는 방식 (HTML)
Request data Header Body
Encoding type 
(enc type attribute)
application/x-www-form-urlencoded multipart/form-data or 
application/x-www-form-urlencoded
Parameters URL length is restricted. A safe URL length limit is often 2048 characters but varies by browser and web server. Can send unlimited amount of parameters, including files
Hacked Easier to hack More difficult to hack
Restrictions on form data type only ASCII characters No restrictions. Binary data is also allowed
Usability should not be used when sending passwords or other sensitive information. used when sending passwords or other sensitive information.
Cached GET은 idempotent하기 때문에 캐시가 된다. POST는 idempotent하지 않기 때문에 캐시가 되지 않는다.

 

댓글