보안

[web] GET 방식 vs POST 방식 - GET 방식을 사용하는 이유

oose 2024. 2. 12. 16:54

아주 기초적인 개념이지만 그만큼 중요하기 때문에 한번 정리하고 넘어감

 

get 과 post의 가장 큰 차이점은 아래와 같음

get 방식 : 데이터가 URL의 쿼리 스트링으로 전달됨. 예를 들어 example.com/search?q=hello 와 같이 물음표 뒤로 나오는 쿼리문에 데이터가 포함됨.

post 방식 : 데이터가 URL에 포함되지 않고 요청 본문(body)에 담겨 전송됨

 

당연히 get 방식보다 post 방식이 보안적인 면에서 안전함

근데 왜 아직 get 방식을 사용할까??

 

1. URL을 통한 데이터 전달 

쉽게 말해서 url만 복사해서 공유해주면 데이터까지 한번에 전달할 수 있음. post는 불가능.

 

2. 서버 캐시 및 성능

서버에서 캐시된 데이터를 활용할 수 있어서 같은 요청에 대해 서버가 미리 준비된 데이터를 빠르게 반환할 수 있음. 이러면 서버 부하를 줄이기 때문에 성능도 향상됨. POST 방식은 캐시되지 않으며, 매번 새로운 요청으로 처리됨.

 

3. 유효성 검증

데이터가 URL에 있으므로 요청을 보내기 전에 클라이언트 측에서 유효성을 확인하고, 간단한 값 검증을 할 수 있음. 따라서 서버에서 더 많은 요청을 처리하지 않고 바로 필터된 데이터를 반환할 수 있음. 예를 들어서 간단한 필터링 작업에서는 GET이 유용함.

 

  GET POST
사용 조건 -조회, 검색에 적합
-URL 공유, 캐싱, SEO 최적화 등이 필요한 경우에 유리함
-폼 제출, 파일 업로드에 적합
-보안, 데이터 크기가 중요한 경우에 유리함