![[네트워크] GET과 POST 차이점](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF7cjs%2FbtsHCTcZe9O%2FKqnCFFMXVLOwCtTZFp5f41%2Fimg.png)
[네트워크] GET과 POST 차이점legacy/Network2024. 5. 24. 23:40
Table of Contents
1.HTTP GET
1-1. GET 요청이란?
GET 요청은 클라이언트 → 서버로 리소스를 요청하기 위해 사용되는 메서드이다. 즉, 서버에서 관리하고 있는 자원을 요청하는 것이다.
ex. 게시물 조회
GET 요청의 경우 **쿼리 스트링(query string)을 사용한다. 요청 URL의 끝에 ‘?’을 붙이고 key=value 형식으로 요청한다. 이 때, 여러 개의 (key, value가) 사용된다면 ‘&’를 사용하여 구분한다.
ex. example.com/posts?var1=value1&var2=value…
서버에서는 엔드 포인트 뒤에 붙은 쿼리 스트링을 받아서 리소스를 제공할 수 있다.
1-2. GET 요청 특징
- GET 요청은 캐시가 가능하다.
- 동일한 자원에 대해서 반복되는 GET 요청은 서버로 전송하지 않고 캐시된 응답을 반환한다.
- GET 요청은 서버의 상태를 변경하지 않기 때문에 캐싱될 수 있다.
- GET 요청은 브라우저에 history(기록)이 남는다.
- GET 요청에서 중요한 정보를 다루면 안 된다.
- 주소창에 요청하는 데이터가 보이기 때문이다.
- GET 요청은 서버에 이미 존재하는 리소스를 요청할 때 사용한다.
2. HTTP POST
2-1. POST 요청이란?
POST 요청은 서버에 새로운 리소스를 생성하기 위해 사용된다. 또는 서버에 저장된 리소스를 수정하기 위해서 사용되기도 한다. ex. 게시물 등록, 게시물 수정
GET 요청과 달리 쿼리 스트링을 사용하지 않고 메시지 바디를 사용한다. 메시지 바디에 서버로 전송하고자 하는 데이터를 담는다.
GET : example.com/posts?var1=value1&var2=value…
POST : example/com/posts
{
"var1":"value1",
"var2":"value2",
...
}
POST 요청 특징
- POST 요청은 캐시되지 않는다.
- POST 요청은 서버의 상태를 변경시키기 때문에 캐싱되기 어렵다.
- POST 요청은 브라우저 히스토리에 기록되지 않는다.
GET 요청과 POST 요청의 차이
- 사용 목적: GET은 서버에 이미 존재하는 리소스를 요청하기 위해 사용하고, POST는 서버에 새로운 리소스를 생성하기 위하여 사용된다.
- 요청 방법 : GET은 URL에 쿼리 스트링을 사용하고, POST는 메시지 바디에 데이터를 포함하여 전송한다.
- 멱등성 : GET은 멱등이고, POST는 멱등이 아니다.
- 멱등성 : 몇 번을 호출하더라도 이전 호출과 결과가 달라지지 않는 것을 의미한다. 동일한 리소스에 대하여 몇 번이고 GET 요청을 해도 동일한 데이터를 받겠지만, 새로운 리소스 등록 및 수정의 경우 서버에 등록된 데이터가 변경되는 것이므로 요청마다 결과가 달라진다.
참고
https://noahlogs.tistory.com/35