본문 바로가기
면접 대비 프로그래밍 지식/웹 프로그래밍

[웹 프로그래밍] GET과 POST의 비교 및 차이

by 기초백과 2021. 4. 15.

사용자가 사용하는 브라우저의 웹페이지는 클라이언트로

웹페이지에서 이루어지는 회원가입, 로그인 등의 동작은 서버와의 통신을 통해 이루어집니다.

 

이러한 통신을 하기위한 방식으로 GET 방식과 POST 방식이 있습니다.

이 둘은 비슷한 기능을 하는 것 같으면서 용도에 따라 그에 맞는 방식을 사용하는 것이 좋다고 합니다.

그 외의 방식으로 PUT, DELETE 등의 방식이 있지만 본 게시물에서는 다루지 않습니다.

 

간략하게 설명하면 GET은 서버에서 어떠한 데이터를 가져올때

POST는 서버의 값이나 상태를 바꾸기 위해 사용합니다.

 

이번 게시글에서는 이에 대한 내용과 각각의 특징을 알아보도록 하겠습니다.

GET 방식

영단어 GET은 '가져오다' 라는 뜻을 가졌습니다.

이처럼 우리가 필요한 정보를 가져와 조회하기 위해서 사용되는 방식입니다.

 

GET방식의 특징

  • URL에 변수(데이터를) 포함시켜 요청한다.
  • 데이터를 Header(헤더)에 포함하여 전송한다.
  • URL에 데이터가 노출되어 보안에 취약하다.
  • 캐싱할 수 있다.

이러한 특징을 보아 ID, PW와 같은 개인정보는 URL을 통해 유출될 수 있으니

보안을 중요시 해야하는 경우에는 사용하기 어려움을 알 수 있습니다.

 

그리고 URL에 데이터가 포함된 GET방식을 통한 접속은

같은 URL을 통해 접속한다면 누구나 같은 화면을 볼 수 있습니다.

이를 통해 같은 화면을 곧바로 볼 수 있게 되어 캐싱 효과를 얻을 수 있습니다.

 

POST 방식

영단어 POST는 '제출하다' 라는 뜻을 가졌습니다.

이처럼 우리가 서버에 제출한 데이터를 토대로

추가 또는 수정 작업을 수행하기 위해 사용되는 방식입니다.

 

POST방식의 특징

  • URL에 변수(데이터)를 노출하지 않고 요청한다.
  • 데이터를 Body(바디)에 포함시킨다.
  • URL에 데이터가 노출되지 않아 기본적인 보안은 갖추어져 있다.
  • 캐싱할 수 없다.

POST 방식은 메세지를 Body에 포함하여 전송하기 때문에 데이터 길이에 제한은 없습니다.

그러나 클라이언트에서 페이지를 요청하고 기다리는 시간이 존재합니다.

또한 라디오버튼, 텍스트박스와 같은 객체들의 값도 전송이 가능합니다.

 

GET과 POST 방식의 비교표

처리방식 GET방식 POST방식
URL에 데이터 노출 여부 O X
 URL예시 http://localhost:8080/boardList?name=제목&contents=내용 http://localhost:8080/addBoard
데이터의 위치 Header(헤더) Body(바디)
캐싱 가능 여부 O  X