GET 방식과 POST 방식
브라우저와 서버간에 주고받는 주요 요청방식이다.
Http 프로토콜이 제공해주는 7가지 메서드들 중 웹서비스 개발에 주로 사용하는 방식이다.
<!-- form method를 통해 GET과 POST를 선택할 수 있다. -->
<div class="form-white">
<form action="" method="post">
</form>
</div>
GET 방식
GET 요청은 서버에서 데이터를 요청할 때, 주로 웹 페이지나 API 데이터를 가져오는 데 사용된다.
GET 방식은 URL 뒤에 파라미터를 추가하여 전달하는 방식이다. url에 데이터가 노출되기 때문에 보안성이 낮고 브라우저에 자동으로 캐싱된다. 따라서 GET 방식은 사용자가 입력한 정보가 노출되어도 상관없을 때 사용한다.
GET 방식을 사용하는 이유
데이터 조회에 적합하다.
GET 방식은 서버에서 데이터를 가져오는데 최적화 되어있다. 서버의 상태를 변경하지 않고, 데이터를 안전하게 읽을 수 있다. 그래서 사이트 내에서 검색을 하거나, 데이터를 조회하거나, 뉴스 피드를 가져올 때 GET 방식을 사용한다.
URL에 파라미터를 포함한다.
요청 데이터를 쿼리 문자열로 포함하여 URL에 명시적으로 표시한다. 브라우저의 주소창에 기록되거나 북마크로 저장할 수 있어 사용자가 나중에 쉽게 재사용이 가능하다.
예: http://example.com/search?query=JavaScript
캐싱이 가능하다.
GET 요청은 브라우저 캐시나 프록시 서버에 의해 캐싱될 수 있어 성능을 향상시킨다. 동일한 요청에 대해 서버에 재요청하지 않고 캐싱된 데이터(이미지, CSS 파일 등)를 반환할 수 있다.
간단하고 빠르다.
GET 요청은 HTTP 프로토콜에서 기본적으로 사용되며, 클라이언트와 서버 간의 통신이 간단하다. 요청 데이터가 URL에 포함되므로, 추가적인 설정 없이 쉽게 구현이 가능하다.
길지 않은 데이터를 전송할 때 적합하다.
GET 요청은 URL에 제한된 길이의 데이터를 전송하므로, 짧고 간단한 데이터(검색어, 필터 조건 등)를 전달할 때 효율적이다.
디버깅이 쉽다.
GET 요청은 요청 데이터를 URL에서 바로 확인할 수 있어 디버깅이나 로그 분석을 쉽게 할 수 있다.
GET 방식 사용 예제
- 검색
- 데이터 조회
- 필터링 및 정렬
- 외부 API 조회(날씨, 뉴스 등)
POST 방식
POST 요청은 서버로 데이터를 전송하거나 서버 상태를 변경할 때 사용된다. 주로 사용자 입력 데이터(예: 로그인 정보, 폼 데이터)를 서버로 보낼 때 사용된다.
POST 방식은 URL에 데이터가 포함되지 않는다. POST방식으로 보내는 데이터는 본문(body)에 포함된다. 이 때 데이터는 name = value 형태로 표현된다.
POST 방식을 사용하는 이유
데이터 크기 제한이 적다.
GET 방식은 URL 길이에 제한이 있지만, POST는 큰 데이터를 전송할 수 있다.
보안성이 높다.
요청 데이터가 URL에 노출되지 않고 요청 본문(body)에 포함되므로, 민감한 데이터를 전송하기에 적합하다.
데이터 조작에 적합하다.
서버에서 리소스를 생성하거나 업데이트하는 작업에 적합하다.
POST 방식의 예
- 회원가입
- 개인정보 수정 요청
- 로그인 요청
- 파일 업로드
- 쇼핑몰에서 상품을 주문할 때
- 댓글 작성
- HTML form 데이터 처리