GET
은 가져온다는 개념,POST
는 수행한다는 개념
Get
은 서버에서 어떤 데이터를 가져와서 보여줄때 사용
Post
는 서버상의 데이터 값이나 상태를 바꾸기 위해서 사용
GET
method는 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드.
읽거나(Read)
, 검색(Retrieve)
할 때에 사용되는 methodGET
요청을 전송할 때 URL 주소 끝에 파라미터로 포함되어 전송됨(쿼리 스트링
)?
를 붙이고 그다음 변수명1=값1&변수명2=값2...
형식으로 붙이면 된다.&
로 연결한다.요청이 캐시
될 수 있다..브라우저 히스토리
에 남는다.북마크
될 수 있다.길이 제한
이 있다.내용이 노출
되기 때문에 중요한 정보를 다루면 안된다.데이터를 요청
할때만 사용 된다
POST
method는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용됨
GET
과 달리 전송해야될 데이터를 HTTP 메세지의 Body
에 담아 전송GET | POST | |
---|---|---|
캐시 | O | X |
브라우저 기록 | O | X |
북마크 추가 | O | X |
데이터 길이 제한 | O | X |
HTTP 응답 코드 | 200(Ok) | 201(Created) |
주사용처 | 리소스 요청 | 리소스 생성 |
리소스 전달 방식 | 쿼리스트링 | HTTP Body |
GET
과 POST
의 특징만 보아도 차이가 나긴하지만 추가적으로 차이점을 정리해보면 다음과 같다.
사용목적
: GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.
DB로 따지면 GET은 SELECT 에 가깝고, POST는 Create 에 가깝다고 보면 된다.
요청에 body 유무
: GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없다. POST 는 body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재한다.
멱등성
(idempotent) : GET 요청은 멱등이며, POST는 멱등이 아니다.
멱등이란?
멱등의 사전적 정의는 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
GET은 리소스를 조회한다는 점에서 여러 번 요청하더라도 응답이 똑같을 것 이다. 반대로 POST는 리소스를 새로 생성하거나 업데이트할 때 사용되기 때문에 멱등이 아니라고 볼 수 있다. (POST 요청이 발생하면 서버가 변경될 수 있다.)
https://noahlogs.tistory.com/35
https://velog.io/@songyouhyun/Get%EA%B3%BC-Post%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%95%84%EC%8B%9C%EB%82%98%EC%9A%94