GET vs POST

Published: by Creative Commons Licence

GET과 POST

web프로젝트를 하다보면 get과 post가 자주 보이는데
이게 무엇이고 언제 사용하는지 정리함

GET

서버에서 데이터를 요청 하여 보여줄때 사용
SELECT 기능으로 사용

  • url에 데이터를 담아서 서버에 요청
    • {protocol}://domain.com?post=3
    • {protocol}://domain.com/post/3
    • 위에 두 경우처럼 url에 어떤 데이터를 요구하는지를 담아서 서버에 요청
    • 첫번째 경우는 일반적인 방식으로 여러개의 쿼리스트링이 붙으면 ?a=a&b=bb처럼 $를 사용
    • 두번째 경우는 REST방식으로 작성했을경우 자주 사용하는 방식

장점

  • 즐겨찾기로 사용가능
  • 캐시가 남아있어 속도가 빠름

단점

  • url에 data가 보이므로 보안적으로 취약

POST

서버에 있는 데이터를 조작할때 사용
DELETE, UPDATE, INSERT기능으로 사용

장점

  • 데이터를 body에 담아서 서버에 요청하므로 나름 보안적
    • body내용도 결국 열어 볼 수 있으므로 보안적인 문제는 존재
  • GET보다 많은 데이터를 전송 할 수 있음

단점

  • 즐겨찾기로 사용 불가능

GET vs POST

언제 GET을 사용하고 언제 POST를 사용하느냐

  • 게시글이나 댓글을 보는등의 서버에 있는 데이터를 가져와 보기만 할때 GET을 사용
  • 게시글을 등록하거나 삭제, 수정등의 서버로 데이터의 변경 내용을 보내야하는 경우 POST를 사용
  • 로그인이나 회원가입같이 보안적으로 url에 노출되면 안되는 데이터를 보낼때도 POST를 사용
  • 즉, GET은 가져오는것(SELECT) POST는 행위(INSERT, UPDATE, DELETE)

후기

REST로 넘어가면 더 많은 메소드들이 존재
이후 내용을 더 추가 수정할 예정
캐시에 대한 부분은 말이 많아 다시 정리할 필요가 있음