언빌리버블티

[http] GET vs POST 방식의 차이 본문

CS/http

[http] GET vs POST 방식의 차이

나는 정은 2022. 10. 2. 14:47

GET방식

GET은 클라이언트에서 서버로 정보를 요청하기 위해 사용되는 메서드

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

URL 끝에 " ? " 를 붙이고 그다음 변수명1 = 값1 & 변수명2 = 값2... 형식으로 이어 붙이는 형식을 따른다.

(단, 길이에 제한이 있다.)

 www.example.com/show?name1=value1&name2=value2

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

POST방식

POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 전송할 때 사용 되는 메서드

전송할 데이터를 HTTP 메시지 body 부분에 담아서 서버로 전송

길이 제한이 따로 없기 때문에, 용량이 큰 데이터를 보낼 때 사용하거나 GET처럼 데이터가 외부적으로 드러나지 않기때문에 보안이 필요한 부분에 많이 사용된다.


GET과 POST의 차이점

  • 사용목적
    • GET : 서버의 리소스에서 데이터를 요청
    • POST : 서버의 리소스를 새로 생성하거나 업데이트
      DB로 따지면 GET은 SELECT에 가깝고, POST는 Create 에 가깝다고 보면 된다.
  • 요청 시 body 포함 여부 
    • GET : URL 파라미터에 요청할 데이터를 담아 전송하는 구조이다.
      HTTP 메시지에 body가 존재하지 않는다.
    • POST : body에 데이터를 담아서 전송되는 구조이다. 
      HTTP 메시지에 body가 존재한다.
  • 멱등성 (idempotent)
    • request GET  : 멱등성을 가진다.
    • POST : 멱등성을 가지지 않는다. 

 

멱등이란? 

멱등의 사전적 정의는 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. 

  • GET은 리소스를 조회한다는 점에서 여러 번 요청하더라도 응답이 똑같다. 
  • POST는 리소스를 새로 생성하거나 업데이트할 때 사용되기 때문에 멱등이 아니라고 볼 수 있다.
  • (게시판에 새로운 글을 업로드하는 상황을 떠올리면, 여러번 요청한다면 중복된 글이 계속 올라가는 것을 생각해볼 수 있다.)

 

 

 

Reference 

 

Difference between GET and POST Method

In this article, I will tell you about the difference between GET and POST methods. Http protocol supports the following methods to retrieve data such as get, post, put, delete etc.

www.thecrazyprogrammer.com

'CS > http' 카테고리의 다른 글

[http] HTTP Request Method - http 메서드와 상태코드  (0) 2022.09.27
Comments