본문 바로가기
프로그래밍/JSP

[JSP] GET 과 POST 비교 및 차이

by 개발자 한량 2022. 2. 6.
728x90
반응형
SMALL

사용자가 어떤 홈페이지로 이동하기 위해서 URL을 브라우저 주소창에 작성하고 엔터를 누르면 원하는 페이지로 이동한다. 사용자는 단순히 URL을 입력하였을 뿐이지만 서버 내부에서는 클라이언트 요청에 응답(웹페이지로 표현)하기 위해서 처리를 해주어야 한다. 클라이언트가 서버로 요청을 보내는 방법HTTP Method에는 GET과 POST 방식이 있다.


GET 

어떤 정보를 가져와서 조회하기 위해 사용되는 방식

 

[GET 방식의 특징]

  • URL에 변수(데이터)를 포함시켜 요청 ▶ 즐겨찾기 추가 가능
  • 데이터를 Header(헤더)에 포함하여 전송
  • URL에 데이터가 노출되어 보안에 취약
  • 길이 제한이 있음
  • 캐시될 수 있음

▶ 캐시(Cache) : 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소

 

[GET 방식의 사용]

 

www.dev-hanryangee.com/login?id=hanryangee&pw=1234 와 같은 페이지가 있다고 가정해보자 

여기서 GET 방식은 ? 마크를 통해 URL의 끝을 알리고, id라는 키(key)에 대해서 hanryangee라는 값(value)를 pw라는 키(key)에 대해서는 1234라는 값(value)를 전송하는 것을 볼 수 있다. 

여러개의 key와 value를 보내는 경우에 &를 사용하여 이어주는 GET 방식은 최소한의 보안유지도 하지 않기 때문에 실제 웹사이트에서 ID와 PW 같은 중요한 정보를 GET 방식으로 사용하게 되면 개인정보가 노출되는 문제가 발생한다.

GET 방식을 사용하여 데이터를 노출시키는 경우는 개인정보가 포함하지 않는 상황에서 캐싱을 하여 속도를 높이거나 즐겨찾기 기능을 사용하기 위함이다. 

 

▶ (Caching)캐싱 : 한번 접근 후, 또 요청할 경우 빠르게 접근하기 위해 레지스터에 데이터를 저장시켜 놓는 것

 


POST 

데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식

 

[POST 방식의 특징]

  • URL에 변수(데이터)를 노출하지 않고 요청 ▶ 즐겨찾기 추가 불가
  • 데이터를 Body(바디)에 포함하여 전송
  • URL에 데이터가 노출되지 않아 기본 보안은 되어있음
  • 길이 제한이 없음
  • 캐시되지 않음

GET 방식의 경우 URL에 데이터를 붙여서 전송하는 반면에 POST 방식은 BODY에 데이터를 넣어서 전송한다.

따라서 헤더필드 중 Body의 데이터를 설명하는 Content-Type 이라는 헤더 필드가 들어가고 어떠한 데이터 타입인지를 명시해주어야 한다.

데이터를 Body에 포함시키는 이점 때문에 메시지 길이의 제한은 없지만 최대 요청을 받는 시간인 Time Out이 존재하므로 클라이언트에서 페이지를 요청하고 기다리는 시간이 존재한다.

실제로 POST 방식은 URL에 데이터가 노출되지 않으므로 즐겨찾기나 캐싱이 불가능하지만 쿼리스트링(문지열) 데이터 뿐만 아니라, 라디오 버튼, 텍스트 박스와 같은 객체들의 값도 전송이 가능하다.


GET VS POST

 

728x90
반응형
LIST

댓글