본문 바로가기
info

웹서비스 get post 방식과 차이

by 개코 - 개발과 코딩 2021. 6. 12.

웹서비스를 만들다보면 get과 post방식에 따른 차이가 있음을 알 수 있다. get은 요청 파라미터를 노출하고 post는 요청 파라미터를 노출하지 않는다. 보안을 위해 post방식을 사용하는 곳들도 있지만, 많이 알려야 하는 페이지의 경우 get방식을 많이 이용한다. 개념만 살펴보자.

GET POST 차이
GET POST 차이

전송방식 get post

웹이나 콘솔 프로그래밍을 하다보면 https 로 데이터를 전송할 일이 생긴다.

이때 get 또는 post 방식 중 하나를 선택해야 한다.

데이터를 요청하기 위한 요청 파라미터와 값이 노출이 되느냐 그렇지 않느냐 차이가 있지만, 보안에 신경을 쓴다면 post 방삭을 사용하기도 한다.

요청하는 url은 노출되지만 요청 파라미터와 값을 노출되지 않기 때문.

그럼에 작정하면 요청값을 잡을 수 있기에 파라미터 또한 암호화하여 보내는 경우들도 있다.

 

차이점은 무엇

만약 서버데이터에 값을 요청하고자 할 때 get과 post방식에서 차이가 있다.

만약 어떤 데이터를 요청해야 할 때 파라미터가 2개 있다면 아래와 같다.

목록조회 : https://요청URL/dataLst

파라미터 : a=3 , b=4

위의 경우 요청URL 에 파라미터를 보낼 때 가시적인 결과는 아래와 같다.

get 방식 요청 : https://요청URL/dataLst?a=3&b=4
post 방식 요청 : https://요청URL/dataLst

눈에 보이고 보이지 않고 차이지만 컴퓨터는 서버에 데이터요청시 파라미터를 보내고 있다.

이것은 https 통신코드를 만들다 보면 알 수 있고, html로 데이터 전송을 해 봤다면 알 수 있다.

 

언제 사용하는 것이 좋은가

보안을 위한 곳이라면 데이터를 조회하고 수정하는데 있어 파라미터를 암호화하고 post 방식으로 파라미터를 전송하는 것이 좋다.

보안보다는 컨텐츠 고개 형태라면 get 방식으로 파라미터를 전송하는 것이 좋다.

데이터의 임의의 수정을 방지하기 위해 입력, 수정, 삭제 시는 post 방식으로 전송하는 것이 좋다.

과거 웹보안에 관심이 없었을 때 SQL 인젝션이 빈번하게 일어난 이유도 여기에 있다.

목록조회 : https://요청URL/dataLst?a=3&b=4
단건조회 : https://요청URL/dataInf?a=3&b=4
단건입력 : https://요청URL/dataIns
단건수정 : https://요청URL/dataUpd
단건삭제 : https://요청URL/dataDel

파라미터 : a=3 , b=4

 

get 과 post 방식으로 웹을 요청했을 때의 반응

깊게 생각해 본 사람들은 없을 것이다.

다만, 왜 그런지 느낌을 아는 사람은 있을 것이다.

보안측면은 제외하자.

컨텐츠를 목적으로 웹사이트를 만들었다면 URL 주소창에 무수히 지저분한 파라미터들이 보인다.

* POST 전송
목록조회 : https://어떤쇼핑몰/dataLst
단건조회 : https://어떤쇼핑몰/dataInf

* GET 전송
목록조회 : https://어떤쇼핑몰/dataLst?a=3&b=4
단건조회 : https://어떤쇼핑몰/dataInf?a=3&b=4

극단적이지만 추천하고 싶은 노트북의 URL을 보내준다고 생각해 보자.

광고나 쇼핑몰 홈페이지들이 과거 이런 것으로 곤혹을 치른 경험들이 있다.

 

위의 예시로 든 URL에 어떤 상품을 추천하고자 할 때 POST 형태의 주소를 제공하면 추천상품이 아닌 메인페이지로 이동할 것이다.

상품 추천에 대한 GET 형태의 주소를 제공하면 어떤 목록, 어떤 제품을 보는지 정확하게 알 수 있고 정확한 제품 페이지로 이동하게 될 것이다.

 

실제 어떤 쇼핑몰은 여성을 위한 전자제품을 추천하면서 자신의 홈페이지를 SNS 등에 여럿 홍보하고 있기도 하다.

당연히 소비자는 홈페이지에서 다시 제품을 찾아야 하는 번거로움이 생길 수 있다.

이 때 GET 방식의 URL 주소를 홍보하면 정확한 제품페이지로 이동하는 것을 확인할 수 있다.

반응형

댓글