본문 바로가기

GET 방식과 POST 방식의 차이

HTTP 메소드인 GET과 POST는 데이터를 전달한다는 점은 같다.

중요한 건 언제 GET 방식을 쓰고 언제 POST 방식을 쓰냐는 것이다. 전달할 데이터의 길이가 길 때는 대체로 POST 방식을 쓰지만, 그렇지 않을 때는 고민이 필요하다.

물론 경우에 따라 데이터의 길이가 길어도 GET을 써야 할 경우도 있을 것이(지만 나는 그런 경우가 있는지 모르겠)다.

 

기본적으로 이름에 따라 그 의미를 생각하면 된다. GET은 가져온다는 의미를 포함하고, POST는 보낸다는 의미를 포함한다. 

즉 GET 방식은 서버에 값을 전달해 데이터를 가져오고, POST 방식은 서버에 값을 전달해 서버의 정보를 수정한다고 볼 수 있다. 

SQL 문으로 보면 (다소 억지스럽지만) GET은 SELECT 문, POST는 UPDATE 문에 비유할 수 있다.

 

 

 

1. 전달 형태

 

GET: URL에서 ? 뒤에 이름=값 형태로 전달된다. Ex) www.example.com?page=3&num=1

POST: HTTP Body에 포함되어 전달된다.

 

앞에서 언급한 의미로 생각하면, GET 방식은 서버에 page 값을 전해 page에 맞는 데이터(게시글)을 가져온다고 볼 수 있다. 게시글을 작성할 때는 POST 방식이 사용되는데, 이는 게시글을 작성함으로써 서버의 DB에 저장된 게시글의 정보가 수정되기 때문이다.

 

 

 

2. 길이 제한

 

GET: (상대적으로) 짧다 -> 많은 양의 데이터를 보내기에 부적합하다.

POST: (상대적으로) 길다 -> 많은 양의 데이터를 보내기에 적합하다.

 

 

 

3. 기능

GET: 서버에 값을 전달하고 그 값에 따른 데이터를 서버에서 가져온다.

POST: 서버에 값을 전달해 서버의 데이터를 수정한다.

 

앞서 든 예시로, GET 방식으로는 페이지 번호를 전달하고, POST 방식으로는 게시글을 전달한다.

전자의 경우 페이지 번호를 서버에 전달하고 그 페이지 번호에 따른 페이지 정보를 서버에서 읽어오는 것이고, 후자의 경우 게시글 데이터를 서버에 전달해 서버의 DB 정보를 수정하는 것이다.

물론 100% 그렇다고 할 수는 없겠으나 기본적으로는 그렇다. 사실 이게 가장 핵심적인 차이점.

 

 

 

여담으로 GET은 URL에 그대로 노출되고 POST는 그렇지 않기 때문에 보안 상 유리하다는 말도 있으나, 약간의 수고가 필요할 뿐 얼마든지 해킹이 가능하다. 따라서 POST가 보안 상 유리하다는 것은 완전히 틀리다 할 수는 없겠으나 보안 상 이점이 있다고 하기에는 약가느이 어폐가 있다.

'Programming > Web' 카테고리의 다른 글

[게시판] 게시글 수정  (0) 2019.07.17
[게시판] 게시글 작성  (0) 2019.07.16
[게시판] 회원가입  (0) 2019.07.16
[게시판] DB 연결, 로그인 세션 설정 + 로그인  (0) 2019.07.12
[게시판] 데이터베이스 설계  (0) 2019.07.12