기본적으로
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로는 불가능하다'..
는 점을 이용한 기본 보안요소 중 하나이다.
'Web' 카테고리의 다른 글
[Web] 웹서버와 WAS의 차이(+웹 컨테이너에 대해) (2) | 2017.10.21 |
---|---|
[Atom] Remote-FTP 패키지를 이용해 로컬에서 서버로 자동 업로드하기 (0) | 2016.12.14 |
[Web] APP(Apache, PHP, PostgreSQL) 세팅 (17) | 2016.07.06 |