ChangHoon's IT Blog
GET, POST 특징 및 차이점 본문
웹개발을 하면서 서버에 무언가를 요청을 보낼 때 GET, POST 라는 단어를 많이 접해봤을거라 생각이 됩니다. 하지만 경우에 따라 사용되는 메소드가 달라 혼동이 분들을 위해 오늘 Get, POST에 대해 정확하고 간결하게 설명드리고자 합니다.
가져오다, 전송하다를 영단어로 표현하면 GET, POST라고 할 수 있습니다. 이처럼 클라이언트가 서버로 요청을 보내는 방법인 HTTP Method 에는 크게 2가지 방식이 있는데 그것이 GET방식과 POST방식입니다.
● GET과 POST를 사용하는 이유
1. GET 방식
영어 Get이라는 단어는 가져오다라는 뜻을 가진 단어인데 이것만 기억하면 쉽게 이해할수 있습니다.
GET의 정식의미는 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메서드입니다.
우리가 필요한 정보를 얻기 위해 필요한 자료를 찾거나 가져오는 상황과 유사하게 GET방식은 어떠한 정보를 가져와서 조회하기 위해 사용되는 방식입니다.
예를 들어보면 게시물을 조회할 때 사용할 수 있는데 Get은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고 쿼리스트링을 통해 전송합니다. 쿼리스트링이란 URL 끝에 ?와 함께 name&value 로 쌍을 이루는 요청 파라미터를 의미합니다.
예시) www.testget.com/resource?name1=value1&name2=value2
서버에서는 name1,2라는 파라미터명으로 각각 value1,2의 파라미터 값을 전달받을 수 있다.
▶ GET 방식의 특징
1. 캐싱할 수 있다.
2. URL에 데이터가 노출되어 보안에 취약하다.
3. 북마크 될 수 있다.
4. 전송하는 길이 제한이 있다.
5. 데이터를 요청할 때 만 사용된다.
6. 데이터를 Header(헤더)에 포함하여 전송한다.
* Caching 캐싱이란?
- 캐싱이란 한번 접근 후, 다시 요청할시 빠르게 접근하기 위해 Register에 데이터를 저장시켜 놓는 것입니다.
2. POST 방식
Post의 경우 전송하다, 부치다 라는 의미를 가지고 있는데
Get과 같이 쉽게 예를 들면 우리가 한 회사에 지원서를 제출하는 것은
우리의 대한 정보를 제출하여 회사면접목록에 추가하기 위함이라고 생각하시면 됩니다.
이러한 상황과 유사하게 POST 방식은 데이터를 서버로 제출하여 추가 또는 수정하기 위해 사용되는 방식입니다.
▶ POST 방식의 특징
1. 캐시되지 않는다.
2. 데이터를 Body에 포함시킨다.
3. URL에 데이터를 노출하지 않고 요청한다.
4. 전송하는 길이에 제한이 없다
5. GET보다 보안성이 좋다.
★ 위 내용을 바탕으로 차이점을 추가적으로 정리해보면 다음과 같다.
- 사용 목적 : Get은 서버의 리소스에서 데이터를 요청시, Post는 서버의 리소스를 새로 생성 OR 갱신 시 사용(Get은 Select, Post는 Create에 가깝다 생각하면 된다.)
- 요청에 body 유무 : Get 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 body가 존재하지 않는다. Post는 body에 데이터를 담아보내기 때문에 body가 존재한다.