백엔드/웹개발

[웹개발] get방식 post방식

김곰댕 2022. 2. 21. 11:52
728x90

웹 브라우저에서 서블릿으로 전송하는 방법은 크게 GET방식과 POST방식이 있다. 두 방식 모두, 서버에 요청을 하는 메서드로 요청에 따른 자원을 보내야 하는 상황에 사용된다. GET방식과 POST방식의 차이에 대해 알아보자.

 

get방식 사용

위의 주소창을 자세히 보면 물음표(?) 뒤에 입력된 값, 외화 종류 그리고 요청을 나타내는 문자열이 서블릿 매핑 이름 뒤에 붙어서 나오게 된다. 이렇게 URL 주소에 데이터를 붙여서 전송하는 방식을 GET 방식이라 한다. 따라서 이러한 방식으로 데이터를 전송하게 될 경우 전송하는 데이터가 노출되므로 보안에 취약하다.

 

하지만 POST 방식은 위에서 보이는 바와 같이 전송하는 데이터를 숨겨서 전송하므로 보안성이 좋다.

 

GET 방식 POST 방식
서블릿에 데이터를 전송할 때는 데이터가 URL 뒤에 name=value 형태로 전송된다. URL에 데이터를 붙여서 보내는 GET 방식과는 달리 서블릿에 데이터를 전송할 때는 TCP/IP 프로토콜 데이터의 body 영역에 데이터가 숨겨진 채 전송된다.
여러 개의 데이터를 전송할 때는 '&'로 구분해서 전송된다. 보안에 유리하다.
보안이 취약하다. 전송 데이터 용량이 무제한이다.
간단한 데이터를 넣도록 설계되어, 전송할 수 있는 데이터는 최대 255자이다. 전송 시 서블릿에서는 또다시 가져오는 작업을 해야 하므로 처리속도가 GET 방식보다 느리다.
기본 전송 방식이고 사용이 쉽다. 서블릿에서는 doPost()를 이용해 데이터를 처리한다.
웹 브라우저에 직접 입력해서 전송할 수 있다.  
서블릿에서는 do Get()을 이용해 데이터를 처리한다.  
GET 방식에서는 BODY에 특별한 내용을 넣을 것이 없어 BODY가 빈상태로 보내진다.  
GET방식의 요청은 캐싱(한번 접근 후, 또 요청할 시 빠르게 접근하기 위해 데이터를 미리 저장해놓는 방법) 때문에 속도가 빠르다.  
POST와 GET 모두 보내는 데이터는 전부 클라이언트측에서 볼 수 있으며, 단지 GET방식은 URL에 데이터가 표시되어 별다른 노력없이 바로 데이터를 볼 수 있기 때문에 보안에 더 취약하다. 하지만 두 방식 모두 보안을 생각한다면 암호화를 해주어야 한다.
728x90