Web

[Web] GET/POST 의 이해

Binceline 2016. 8. 9. 07:29


기본적으로


GET : 파라미터를 URL 뒤에 붙여서 전송한다.


POST : 파라미터를 패킷 더 안쪽, URL주소로는 보이지 않는 곳에 저장한다.


즉 POST도 결국엔 GET방식과 비슷한 형식으로 보내는데, 단지 URL에만 표시되지 않는 것이다.


'GET 방식을 쓰면 보안에 취약하니까 POST 방식을 써야 한다' 같은 말을 믿지 말자.


보안은 이런 식으로 단순하게 해결되지 않는다.


.

추가적으로 GET 방식은 전송해야 할 파라미터가 많을 때 쓰면 답도 없이 길어진다.


그래서 그런 경우에도 POST를 쓴다.


음.. 그리고 


GET 방식은 '가져온다' 는 의미라고도 하던데, 


유저들이 특정 페이지 주소를 링크를 걸 수 있게 만들려면 GET을 써야 한다.


예를들면 Homepage/main?pages=3&....


이런 URL 주소를 말하는 것이다. 특정 홈페이지 메인의 3번째 페이지를 블로그에 링크하고 싶은데


POST로 보내게 되면 보이지가 않는다.


이럴 때도 쓴다.


GET/POST에 대해 정리되어 있는 글 : https://blog.outsider.ne.kr/312


위의 링크를 보면, 구글을 예로 들었는데 되게 좋은 글인 것 같다. 나도 초보라 많이 생각해서 보고 있지만..


이런 걸 말하는 것 같다.


GET 방식으로 DB의 DELETE 쿼리 같은 걸 전송해서 서버에 변화를 주는 경우,


즉, URL을 버튼같은 것에 붙여 클릭 시 조작하도록 하는 경우이다.


그래서 미리 캐싱하기 위해 Bot으로 이를 다 실행시켜버린다면 원하지 않는 결과를 보여주게 되는 것이다.


또 한 번 예를 들면 네이버 로그인 중에 메일함에 들어갔더니


위와 같은 프로그램이 안의 모든 URL링크를 대신 접근해 버린다면


삭제든뭐든 다 실행되겠고, 저런 식으로 구현되어 있으면 망할 것 같다..



음.... 근데 실제로 저렇게 구현하긴 할까..?


여튼 'GET방식으로 하면 URL로 접근이 가능한데, POST로 하면 일단 URL로는 불가능하다'..


는 점을 이용한 기본 보안요소 중 하나이다.


반응형