혜야의 코딩스토리

[Web] get / post 비교 본문

꿈 : 멋진 개발자 🧸/Web

[Web] get / post 비교

hyeya_ 2022. 7. 17. 17:56

✏️ get 방식

get방식은 서버로부터 정보를 조회하기 위해 설계된 메소드이다.
www.tistory.com/resources?name1=value1&name2=value2

-get방식은 요청을 전송할 때 필요한 데이터를 body에 담지 않고, 쿼리스트링을 통해 전송한다.
-get방식은 간편하다는 장점이 있지만 어떤 데이터를 전송하는지 노출되므로 보안상으로 좋지 않다.

//쿼리스트링 : url의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터

 

get 특징

  • 서블릿에 데이터를 전송할 때는 데이터가 url 뒤에 name=value 형태로 전송된다.
  • 여러 개의 데이터를 전송할 때는 '&'으로 구분해서 전송된다.
  • get 요청은 캐시가 가능하다.
  • get 요청은 브라우저 히스토리에 남는다.
  • 보안이 취약하다.
  • 전송할 수 있는 데이터는 최대 255자이다.
  • 기본 전송 방식이고 사용이 쉽다.
  • 웹브라우저에 직접 입력해서 전송할 수 있다.
  • 서블릿에서는 doGet()을 이용해 데이터를 처리한다.

✏️ post 방식

post방식은 리소스를 생성/변경하기 위해 설계된 메소드이다.
www.tistory.com/resource 

- post는 리소스를 생성/변경하기 위해 설계되었기 때문에 get과 달리 전송해야될 데이터를 Http메세지 body에 담아 전송한다. 이처럼 postT가 get보다 보안적인 면에서 안전하다고 생각할 수 있지만, post요청도 크롬 개발자 도구와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우 반드시 암호화해서 전송해야 한다.

 

post 특징

  • 서블릿에 데이터를 전송할 때는 TCP/IP 프로토콜 데이터의 body 영역에 숨겨진 채 전송된다.
  • post 요청은 캐시되지 않는다.
  • post 요청은 브라우저 히스토리에 남지 않는다.
  • 보안에 유리하다.
  • 전송 데이터 용량이 무제한이다.
  • 전송 시 서블릿에서는 또 다시 가져오는 작업을 해야하므로 처리 속도가 get방식보다 느리다.
  • 서블릿에서는 doPost()를 이용해 데이터를 처리한다.

 

 

참고

https://velog.io/@falling_star3