GET POST 요청 차이

hey hey·2022년 5월 23일
0

CS study

목록 보기
1/7
post-thumbnail

get과 post 요청을 각각 언제 사용할까요

GET

GET은 클라이언트에서 서버로 어떠한 리소스로부터 요청하기 위해 사용되는 메서드입니다.

  • GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송됩니다.
    이 부분을 쿼리 스트링(query string)이라고 부릅니다.


    ex) /api/signup?id='asdf'&name='hong'&password='1234'

    => 서버에서는 id, name, password의 파라미터 값을 전달받을 수 있습니다.


  • 데이터를 패킷의 헤더 에 담아서 전달합니다

*패킷 : 네트워크를 통해 전송하기 쉽도록 자른 데이터의 전송 단위


GET 의 특징

  • 캐시가 가능하다
    : GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신에 리소스의 복사본을 반환합니다.
    http 헤더에서 cach-control 헤더를 통해 캐시 옵션을 지정할 수 있습니다.

  • 브라우저 히스토리에 남는다
  • 북마크 될 수 있다.
  • 길이 제한이 있다.
  • 중요한 정보를 다루면 안된다
    : 파라미터에 다 노출이 되어버리기 때문에 최소한의 보안으로 사용하지 말자

*캐시 : 웹 페이지 요소를 저장하기 위한 임시 저장소


POST

POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용되는 메서드입니다.

  • post 방식은 데이터 패킷의 바디 에 담아서 전달합니다.
    이 때 바디의 타입은 Content-Type 헤더에 따라 결정됩니다.

  • GET 방식에 비해 상대적으로 큰 데이터를 전달할 수 있기 떄문에 큰 데이터를 전달 할 때에는 POST 방식이 적절합니다.

POST의 특징

  • 캐시되지 않는다
  • 브라우저 히스토리에 남지 않는다.
  • 북마크 되지 않는다
  • 데이터 길이에 제한이 없다.

GET과 POST의 차이

  • 사용목적
    : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용됩니다.

  • 요청에 Body 가 있는지 없는지
    : GET은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없고, POST는 존재합니다.
  • 이외의 PUT DELETE 등 도 적절히 목적에 맞게 사용하면 유용합니다.
profile
FE - devp

0개의 댓글