Get, Post의 차이

임지원·2024년 5월 22일

공통점

브라우저가 서버에 요청하는 방식이다.

Get

서버로부터 정보를 요청할 때 사용하는 HTTP 메서드

특징

  • 요청을 전송할 때 쿼리스트링을 통해 전송한다.
    • 예 : www.xxx.xxx/resources?name1=value1&name2=value2
    • 파라미터명 name1, name2 / 각각의 파라미터 value1, value2라는 값으로 요청을 보낸다.
  • 데이터가 담기는 곳 : HTTP 패킷 Header
  • 브라우저 히스토리에 남는다.
  • 길이 제한이 있다.
  • 중요한 정보를 다루면 안된다.
    - 파라미터에 내용이 노출되기 때문에 중요한 정보를 다룰 때는 Get을 사용하지 않는다.
  • 불필요한 요청 제한을 위해 캐시될 수 있다.
    - 이미지와 같은 컨텐츠는 데이터의 양이 크고 반복될 일이 적기때문에 캐시되어 변경이 안되는 경우가 있다. 이것은 브라우저에 컨텐츠가 캐시될 수 있기 때문이다.

쿼리스트링

Post

정보를 생성/변경하기 위해 서버에 데이터를 보내는 HTTP 메서드

특징

  • 요청을 전송할 때 HTTP 메세지의 Body에 담아 전송한다.
    • Body의 타입은 헤더의 Content-Type에 설정해 주여아한다.
    • Content-Type의 종류로는 application/x-www-form-urlencoded, text/plain, multipart/form-data 등이 있다
  • 데이터가 담기는 곳 : HTTP 패킷 Body
  • 캐시가 되지 않는다.
  • 브라우저 히스토리에 남지 않는다.
  • 요청은 데이터 길이에 제한이 없다.

차이

  • 사용 목적 : Get은 서버에 리소스 요청 / Post는 리소스 생성 또는 수정
  • 요청방식 : Get은 URL에 보냄 / Post는 Body에 보냄
  • 멱등성 : Get은 멱등 O / Post 멱등 X

멱등이란
멱등 : 같은 연산을 여러번 하더라도 결과가 달라지지 않음
Get은 같은 리소스를 여러번 요청해도 같은 결과가 나온다.
Post는 리소스가 생성되거나 변경되기 때문에 같은 결과가 나오지 않을 수 있다.

profile
백엔드 새싹

0개의 댓글