티스토리 뷰

Spring

GET과 POST의 차이

토마's 2016. 10. 16. 17:14

안녕하세요. 오늘은 웹의 가장 기초적인 HTTP 프로토콜을 이용해서 서버에 무언가를 전달할 때 사용하는 방식인 GET과

POST의 차이에 대해서 포스팅 하려고 합니다. 기초적인 부분이긴 한데 혹시 모르시는 분들도 있을까봐 정리해봅니다.


- GET은 주소창 URL에 '?'라는 문자 뒤에 값이 쌍으로 붙고 POST는 body 태그 안에 숨겨서 보내집니다.

- GET방식은 URL에 값이 따라붙기 때문에 길이 제한에 있어서 많은 양의 데이터는 보내기 어렵고,

- POST방식은 많은 양의 데이터를 보내기에 적합합니다.


예를들면, http://example.com/bbsList.html?value1='aaa'&value2='bbb'와 같이 하는 것이 GET방식이고

form을 이용해서 submit을 통해 값을 전달하는 방식이 POST방식입니다.


GET 방식

모든 파라미터를 URL을 통해서 직접 전달됩니다.

그렇기 떄문에 구글에서 검색 했을 때 모든 파라미터 값이 16진수로 변환되어 URL창에 나타남을 확인할 수 있습니다.

가시적인 보안에도 좋지 않고 보낼 수 있는 데이터의 양에도 한계가 있습니다.

HTTP 프로토콜의 default 방식은 GET 방식입니다.


다음과 같이 URL에 localhost:8080/?name=Toma를 입력하면 URL로 값을 주고 받는 것을 확인하실 수 있습니다.



POST 방식

전달하려는 정보가 HTTP 바디에 포함되어 전달됩니다.

웹브라우저 사용자의 눈에 보이지 않아서 보안적인 측면에서는 GET 방식에 비해서 좋다고 합니다. 

( 가시적인 보안이라고 표현하지만 크게 작용 X )

보낼 수 있는 양의 제한이 없습니다.

예를 들면 회원가입 form 같은 경우를 떠올리시면 될 것 같습니다. 

정보를 다 입력하고 제출 버튼을 누르면 바디에 값들이 포함되어져서 함께 보내집니다.



알아놓을 것


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

GET은 선택적인 성향을 가지고 있고, 서버에서 어떤 데이터를 가져와서 보여준다거나 하는 용도이지 서버의 값이나 상태 등을

바꾸지 않습니다. 즉, 게시판의 리스트를 가져온다거나 할때에 사용된다고 생각하면 됩니다. 

반면에 POST는 서버의 값이나 상태를 바꾸기 위해서 사용합니다. 이메일을 작성하면 글의 내용이 데이터베이스에 저장되고 수정

하면 데이터베이스의 값이 수정됩니다. 이럴때 POST를 사용한다고 기억해 놓으면 될 것 같습니다.


블로그를 작성하면서 많은 내용을 이 블로그를 참조했습니다. 출저를 남겨서 더 궁금하고 자세한 사항들에 대해서 알고 싶으신

분들은 참조하시면 될것 같습니다.


출처 : https://blog.outsider.ne.kr/312


이것으로 GET방식과 POST방식의 차이에 대한 포스팅을 마치겠습니다.