Servlet은 Server와 Applet 의 합성어이다. 여기서 Applet은 플러그인의 하나로
전용 위젯 엔진이나 더 큰 프로그램 범위 내에서 실행되는 특정한 작업을 수행하는 조그마한 응용 프로그램을 말한다.
애플릿의 예로는 자바 애플릿을 들 수 있다.
서블릿은 이 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술이다.
이를 이용해 웹페이지를 동적으로 생성할 수 있는데,
이는 사용자의 요청이 오면 알맞은 프로그램을 실행하여 응답을 만들고 제공하는 서버인 WAS(Web Application Server)
와 상호작용하는 것이다.
그렇다면 Servlet의 파라미터들에 대해 알아보자.
Servlet의 파라미터에는 우선 GET과 POST가 있다.
이는 사용자 데이터를 전송하는 방식에 따라 분류된 방식인데,
get방식의 경우에는 query string이 URL에 포함되어 전송된다.
이 방식을 이용할 경우, 예를 들어 개인의 정보가 URL에 포함되어 전송될 수도 있기 때문에 보안에 취약하다.
또한 URL의 길이 제한이 있어, 전송가능한 데이터의 길이가 URL maximum characters 2048이라 제한적이고,
ASCII 문자만 전송이 가능하다.
반대로 post 방식의 경우 HTTP header의 body에 파라미터를 포함하여 전송하기 때문에
get 방식에 비해 좀 더 보안 안전적이며, 데이터의 길이에 대한 제한이 없다.
매개변수가 브라우저나 웹 서버에 저장되지도 않는다.
ASCII 문자만 전송 가능한 get 방식과는 다르게 바이너리 데이터도 허용하는 등, 제한이 없다.
그렇다면 위에서 언급한 URL의 구성요소에 대해 알아보자.
https://www.google.com 구글 주소이다.
여기서 https는 프로토콜로 절차를 포함한 통신규약을 의미한다.
https는 http에 데이터 암호화가 추가된 프로토콜 정도로 생각하고 넘어가자.
www.google.com 은 서버를 의미한다. 웹 페이지를 요청할 서버의 주소, 실제 IP 주소나 도메인을 입력할 수 있다.
여기서 이 뒤에 경로와 쿼리 스트링을 작성할 수 있다.
경로는 서버 내의 상세 경로이고,
쿼리 스트링은 서버로 데이터를 전송하기 위해서 사용하는 문장을 뜻한다.
'?' 를 기입하면서 시작하고, 파라미터=값 형태로 작성하며, 입력할 파라미터가 여러 개일 경우 '&'로 구분해서 작성한다.
예를 들어 https://www.google.com/path?action=regist
이 경우에는 구글 서버 path 경로 내에서 action의 값이 regist인 곳으로 넘어간다는 것을 의미한다.
라고 이해했다.