본문 바로가기

Web

[GET,POST] GET , POST 방식의 차이

먼저 GET,POST 를 알기 전에 HTTP에 대해서 알아보려고 한다.

HTTP

HTTP는 HyperText Tranfer Protocol로 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일종이다. 즉 서버와 클라이언트의 사이에 어떻게 메시지를 교환할지를 정해놓은 규칙인 것이다.

 

HTTP는 요청과 응답으로 구성되어있으며 클라이언트가 요청하면 서버가 응답을 받는 구조이다. GET 과 POST에 알기전에 HTTP를 알아야 하는것이 HTTP의 7개의 메소드중에 GET과 POST가 있기 때문이다.

GET

GET 방식은 URL에 전송할 데이터의 파라미터를 붙여서 서버로 보낸다.

http://localhost:8080/movie/movieInfo.do?no=20217742

예제처럼 movieInfo.do? 뒤에 no=20217742 가 붙은것을 알 수 있다. GET방식은 내가 선택하거나 입력한 데이터가 URL에 직접적으로 나타나 전송된다.

POST

POST 방식은 GET 방식과는 다르게 URL에 파라미터를 담지 않고, 데이터를 http메세지의 body에 담아서 전송한다.

URL에 담겨있지 않다고 해서 GET 방식보다 안전할 수 도 없는게 클라이언트 쪽에서 데이터를 볼 수 있어서 보안상 둘 다 안전하지 않다고 볼 수 있다.

또한 POST 방식은 body에 데이터를 넣어서 전송하기 때문에 body데이터를 설명하는 Content-Type이라는 헤더 필드가 들어가며 어떤 데이터 타입인지 설명해줘야한다.

GET , POST 을 사용해야 할 때

GET 방식은 idempotent 라고 하고, POST방식은 not idempotent 라고 한다.

idempotent는 '멱등' 이라는 하며 이 뜻은 어떤 계산이 주어져도 똑같다는 말이다.

그러므로 GET 방식에서는 계산값이 항상 일정한 형식이기 때문에 SELECT 문 같이 변화하면 안되는 정보를 보여줄 때 사용하며 , POST 방식은 데이터를 변경이 필요한 기능에서 사용하게 된다.

'Web' 카테고리의 다른 글

[FORWARD & REDIRECT] 개념, 차이점  (0) 2021.12.15
[Ajax] Ajax 기본  (0) 2021.08.26