언빌리버블티
[http] GET vs POST 방식의 차이 본문
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가 존재한다.
- GET : URL 파라미터에 요청할 데이터를 담아 전송하는 구조이다.
- 멱등성 (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 |
---|