GET과 POST

Bummy·2023년 2월 11일
0

웹개발

목록 보기
3/7

현재 속해있는 회사에서는 프론트는 PHP, 백은 JAVA로 이루어져 있기에 HTTP 통신을 하는 일이 굉장히 많았다. 입사 초기에는 GET과 POST의 차이점을 잘 몰랐는데 정확히 차이점을 알고 사용하는 것이 중요하다고 생각한다.


GET

GET이란?

GET은 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메소드이다. GET을 통한 요청은 URL에 주소 끝에 파라미터로 포함되어 전송되며 이 부분을 쿼리스트링(Query String)이라고 부른다.
방식은 URL끝에 "?"를 붙이고 그 다음 변수명1=값1&변수명2=값2... 형식으로 이어 붙여지게 된다.

GET의 특징

  • GET 요청은 캐시가 가능하다.
    -> GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다.
    -> 실제 실무에서 소스 수정이 완료 되었는데 데이터가 수정전과 동일하게 나온다하면 이 경우가 대부분이었다.
  • GET 요청은 길이 제한이 있다.
  • GET 요청은 값이 URL에 노출되기에 개인정보와 같은 민감한 정보를 다루면 안된다.

브라우저마다 달라?

출처: 마이크로소프트 공식 문서

출처: Chronium 공식 문서

출처: Mozila QnA 게시판

다음과 같이 브라우저마다 길이의 제한을 두고 있는 것을 확인할 수 있다.


POST

POST란?

POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용 되는 메소드이다. POST는 전송할 데이터를 HTTP 메시지 body 부분에 담아서 서버로 보낸다. 데이터를 전송할 때 길이 제한이 따로 없어 용량이 큰 데이터를 보낼 때 사용하거나 민감한 정보를 다룰 때 사용한다. (하지만 크롬 개발자 도구 등으로 HTTP 메시지 body 부분을 확인할 수 있기에 암호화를 해야한다.)

POST 특징

  • POST 요청은 캐시되지 않는다.
  • POST 요청은 데이터 길이에 제한이 없다.

GET과 POST의 차이점

  • 사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.
  • body 유무 : GET은 URL 파라미터에 데이터를 담아 보내기에 body가 없고 POST는 body에 데이터를 담아 보내기에 당연히 body가 존재한다.

출처

0개의 댓글