<< 학습 목표 >>

1. GET, POST 방식을 상황에 맞게 선택할 수 있다.


https://codingaja.tistory.com/22 이 글을 통해 GET 방식과 POST 방식의 차이에 대해서 알아봤음

여기서는 클라이언트가 어느 상황에서 GET 방식으로 요청해야하는지, 어느 상황에서 POST 방식으로 요청해야하는지 알아보자

 

GET과 POST 를구분해서 사용하는 상황은 아래의 상황이 있음

상황1. 서버로 보내는 데이터가 공개되어도 상관 없다.

상황2. 보내는 데이터가 많다.

상황3. 보내는 데이터에 파일이 포함되있다.

 

이 상황 외에도 GET과 POST 가 갖고 있는 의미를 고려해서 사용해야함

GET, POST 가 갖는 의미를 알고 싶고 더 실력있는 개발자가 되고 싶다면 이 책을 읽어보자

 

HTTP 완벽 가이드 - YES24

웹 세상을 떠받치고 있는 HTTP에 대한 모든 것모든 성공적인 웹 트랜잭션 뒤에는, 웹 클라이언트와 서버가 문서와 정보를 교환하는 언어인 HTTP가 있다. HTTP는, 회사 인트라넷에 접근하거나 절판된

www.yes24.com


<< 상황1. 서버로 보내는 데이터가 공개되어도 상관 없다. >>

GET 방식으로 데이터를 보낼 때는 URL에 보내는 데이터가 노출됨
POST 방식으로 데이터를 보낼 때는 URL에 보내는 데이터가 노출되지 않음

유저(클라이언트)가 서버로 보내는 데이터를 다른 유저들이 봐도 상관 없다면 GET 방식을 사용하면 됨

 

 

아래와 같은 로그인 페이지를 만들었다고 하자

 

사용자는 아이디, 비밀번호를 입력하고 로그인 버튼을 누를 것

그러면 사용자의 아이디, 비밀번호가 서버로 전달됨

 

이때 아이디, 비밀번호, 로그인 버튼을 감싸는 form 태그의 method를 GET 으로 했다면 GET 방식으로 요청이 들어감

GET 방식으로 요청을 할 때 서버로 보낼 데이터는 URL의 마지막에 ? 다음에 붙게됨(1)

 

이와 같이 GET 방식은 서버로 보내는 데이터가 URL에 노출되는데 로그인 같은 경우에 GET 방식을 사용하면 내가 로그인을 할 때 다른 사용자도 내 아이디와 비밀번호를 볼 수 있다는 것

그러면 어떻게 될까? 누군가 내 계정을 해킹할 수 있다는 것

 

로그인의 경우에는 서버로 보내는 데이터가 노출되면 안되는 상황

로그인 페이지를 만들 때는 form 태그의 method 를 POST 방식으로 한다면 보내는 데이터가 URL에 붙지 않고 요청 정보 안에 몸통(body) 로 들어가게 됨

서버로 데이터를 보내지만 다른 사용자는 볼 수 없게 숨켜서 보내기 때문에 해킹에 상대적으로 안전함

 

여기까지 로그인 하는 상황을 예로 들면서 GET 대신 POST 를 사용해야되는 경우를 얘기했음

 

그렇다면 GET을 사용해야되는 상황은 언제일까?

대표적인 예로 검색을 하는 경우가 있음

네이버에서 검색하는 상황을 보자

검색어를 입력하고 [ 검색 버튼 ] 을 누르면 서버로 검색어가 전달됨

 

 

대부분의 사람들은 "내가 뭘 검색하는지 다른 사람에게 보여주기 싫다" 라고 생각하며 검색하진 않음

별다른 생각 없이 검색을 함

내가 지금 검색한걸 다른 사람이 본다면 약간 이상하긴 하겠지만 크게 불편하지는 않을 것

이렇게 검색 같은 경우 서버로 보내는 데이터가 노출되어도 심각한 문제가 생기지 않기 때문에 GET 방식을 사용함


<< 상황2. 보내는 데이터가 많다. >>

https://codingaja.tistory.com/22 글에서 GET의 특징에 대해서 언급했듯 GET 방식으로 데이터를 보낼 때는 보내는 데이터의 크기에 제한이 있음

보내는 데이터가 많다는건 보내는 데이터의 전체 크기가 크다는 것이므로 GET 방식으로 데이터가 보내지지 않을 수 있음

그래서 보내는 데이터가 많다면 POST 방식을 사용해야함

 

예를 들어 회원 가입 같은 경우가 있음

회원 가입의 경우 아이디, 비밀번호, 비밀번호 확인, 이름, 연락처 등등 여러 가지를 입력하고 이 데이터들을 서버로 보내게 됨

상황1과 맞물려서 회원 가입 정보는 다른 사람이 보면 안되고 보내는 데이터가 많으므로 POST 방식이 적합함

또한 회원 정보 수정도 마찬가지

그 외에도 글 쓰기, 글 수정하기 등 다양한 상황에서 POST 방식을 사용함


<< 상황3. 보내는 데이터에 파일이 포함되있다. >>

GET 방식으로는 파일을 서버로 보낼 수 없음

파일을 서버로 보내려면 반드시 POST 방식을 사용해야함

 

파일을 서버로 보내는 상황이 어떤 상황일까?

프로필 이미지를 등록할 때, 내가 등록할 프로필 이미지를 서버로 보내는 것임

게시판에 파일을 첨부할 때, 첨부한 파일을 서버로 보내는 것임

등...

 

앞서 얘기했듯 좋은 방식, 나쁜 방식이라는건 없음

상황에 맞는 방식이 있는것임

728x90
LIST