GET, POST 차이점

김범식·2023년 7월 26일
0

CS

목록 보기
4/10
post-thumbnail


⭐ GET의 정의

GET은 HTTP 메서드 중 하나로, 서버로 부터 정보를 요청하기 위해 사용되는 메서드다. 주로 데이터를 가져오기 위해 사용되고, 요청하는 데이터는 URL의 쿼리 매개변수로 전달 된다.

📌 GET요청 예시

GET /api/data?id=123 HTTP/1.1
Host : www.example.com

위 예시에서 /api/data 는 요청하는 자원의 경로이다. id=123 은 쿼리 매개변수로 데이터를 전달하는 방법이다. = 을 기준으로 키벨류 쌍으로 주어진다.

📌 특징

  • 보는것 처럼 GET 요청은 요청하는 데이터가 URL에 노출된다. 때문에 보안에 취약하다.
  • 브라우저에서 캐싱될 수 있다. 동일한 요청이 여러 번 발생하더라도 실제로 서버로 요청이 가는게 아닌 캐싱된 데이터를 사용할 수도 있다.
  • 데이터를 가져오는 용도로 사용되기 때문에 서버의 상태를 변경시키지 않는다.


⭐ POST의 정의

POST도 HTTP 메서드 중 하나로, 서버에 데이터를 전송하여 리소스를 생성하거나 수정하기 위해 사용되는 메서드다. POST 요청은 주로 데이터를 전달하기 위해 요청 본문(body)에 포함되어 전송된다.

📌 POST요청예시

POST /api/create_user HTTP/1.1
Host: www.example.com
Content-Type: application/json

{
	"username": "john",
	"email" : "john@example.com"
}

위 예시에서 ‘api/create_user’ 는 새로운 사용자를 생성하는 API경로이며, 요청 본문에 JSON 형식의 데이터를 전달하고 있다.

📌 특징

  • POST 요청은 요청 본문에 데이터가 포함되기 때문에 GET보다 보안적으로 더 안전하다. (눈으로 잘 안보임)
  • 브라우저에서 캐싱이 되지 않아 동일한 요청이 여러번 발생하면 서버로의 요청이 항상 발생한다.
  • 데이터를 생성하거나 수정하는 용도로 사용되기 때문에, 서버의 상태를 변경할 수 있다.


⭐ 총정리

HTTP 메서드인 GET과 POST의 차이점에 대해서 알아보았다. GET은 데이터를 가져오기 위해 사용되고, 캐싱될 수 있다. 반면 POST는 데이터를 생성 수정할 수 있고 보안적으로 안전하나 캐싱될 수 없다.
처음 HTTP메서드를 사용할 때 POST로도 충분히 데이터를 가져올 수 있는데 왜 그러지 않았는지 이번에 확실히 알 수 있었다.

profile
frontend developer

0개의 댓글