[필수지식] GET vs POST

Yongjin·2021년 10월 9일
0

필수지식

목록 보기
3/4
post-thumbnail

들어가면서


HTTP 프로토콜이 제공하는 GET, POST 는 클라이언트가 서버에 요청할 때 사용된다.
HTTP 통신을 제대로 하기위해서 이 둘의 차이를 명확히 알고 사용해야 한다.

이 글에서는 GETPOST 방식이 각각 무엇인지 알아보고 둘의 차이점을 정리하려고 한다.

GET


GET 은 클리이언트에서 서버로 어떠한 리소스의 정보를 요청하기 위해 사용되는 메서드이다.
즉, 데이터를 읽거나(Read) 검색(Retrieve)할 때 사용된다.

GET 을 통한 요청은 URL 주소 끝에 쿼리스트링을 사용하여 값을 전달한다.

쿼리스트링(query string)
URL 끝에 ? 를 붙이고, 변수명1=값&변수명2=값...형식으로 이어 붙인다.
ex) www.example.com/show?key1=value1&key2=value2

서버에서는 key1과 key2 라는파라미터 명으로 각각 value1, value2 의 파라미터 값을 전달받을 수 있다.

GET 의 특징


  • 데이터를 요청할 때만 사용한다.
  • 중요한 정보를 다루면 안된다.

    파라미터에 정보가 노출이 되기 때문에 중요한 정보를 담지 않는다.

  • 캐싱이 가능하다.

    HTTP 헤더의 cache-control 을 통해 캐시 옵션을 지정할 수 있다.

  • 요청의 길이 제한이 있다.

POST


POST는 줄 새로운 리소스를 생성(Create) 할 때 사용된다.

POST는 전송할 데이터를 HTTP 메시지 body 부분에 담아서 서버로 전송한다. (body 의 타입은 헤더의 Content-Type 에 따라 결정된다.)

POST로 데이터를 전송할 때 길이 제한이 따로 없어 용량이 큰 데이터를 보낼 때 사용하거나 GET처럼 데이터가 외부적으로 드러나는 건 아니라서 보안이 필요한 부분에 많이 사용된다.

POST를 통한 데이터 전송은 보통 HTML form 을 통해 서버로 전송된다.

POST 의 특징


  • 새로운 리소스를 생성하거나 업데이트할 때 사용된다.
  • 전송할 데이터를 HTTP 메시지의 body에 담아서 전송한다.

    body의 타입은 Header의 Content-Type 에 따라 결정된다.

  • 캐싱이 되지 않는다.
  • 데이터 길이에 제한이 없다.

GET vs POST


GETPOST
사용목적서버의 리소스를 요청할 때서버의 리소스를 생성하거나 업데이트할 때
History전달되는 파라미터들은 URL의 일부이기 때문에 브라우저 히스토리에 남는다.브라우저 히스토리에 저장되지 않는다.
Bookmark요청 파라미터들은 URL로 인코딩되므로 즐겨찾기가 가능하다.요청 파라미터들이 request의 body에 포함되므로 URL에 나타나지 않으므로 즐겨찾기가 불가능하다.
멱등성OX
CachingOX

멱등성(idempotent) : 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미.

GET 은 같은 요청을 여러 번 요청해도 응답이 같다.
POST 는 리소스를 새로 생성하거나 업데이트할 때 사용되기 때문에 응답이 같지 않다.

마치며


GETPOST 여러 차이가 존재하기 때문에 각 메서드를 이해하고 상황에 맞는 메서드를 사용해야한다.

GET 과 POST 이외에도 PUT, DELETE 도 존재하기 떄문에 이들과 같이 적절히 사용하는 것이 바람직하다.

references


https://noahlogs.tistory.com/35
https://dhan-description.tistory.com/76
https://mangkyu.tistory.com/17
MDN - 멱등성

profile
성장하는 개발자

0개의 댓글