브라우저에서 요청 정보를 HTTP 객체에 담아 전송한다.

전달받은 HTTP객체를 서버(=Tomcat)이 해석하여 요청을 처리할 서블릿을 호출한다. 서블릿의 service() 메소드에서는 request, response 요청 정보를 가지고 처리 로직을 거쳐 응답한다.
URL창에 “ ? “ 뒤에 데이터를 입력하는 방법(= 쿼리스트링)으로 전송한다.
전송 데이터가 여러 개이면 **&**로 묶어서 보낸다.
URL 쿼리스트링 예시
<http://localhost:8080/sendMessage?message=abc&code=20>
request header의 내용으로 데이터를 전송한다.
데이터 검색에 주로 사용되며, 데이터 크기 한계가 있고(웹 브라우저에 따라 다름) 보안에 취약하다.
서블릿이 get/post의 두 방식 중 하나로 요청 정보를 전달 받으면, request와 response를 전달하면서 해당하는 처리 메소드(doGet() 메소드 또는 doPost() 메소드)를 호출한다.
→ 즉, 톰캣 서블릿 컨테이너가 요청 url로 매핑된 서블릿 클래스의 인스턴스를 생성하여 service method를 호출하고 HttpServlet을 상속받아 오버라이딩한 현재 클래스의 doGet() 또는 doPost() 메소드가 동적바인딩에 의해 호출된다.
⇒ 이때, 서블릿 메소드에 대하여 반드시 ServletException 처리를 해야 한다.
HTML에서 method 속성을 이용해 방식을 결정하며, default는 get 방식이다.
클라이언트에서 데이터 전송 방식을 get으로 전송하면 호출되는 메소드이다.
GET 방식의 데이터는 HTML charset에 기술된 인코딩 방식으로 브라우저가 한글을 이해하고, ‘%’ 문자로 URLEncoder를 이용해 변환 후 url 요청으로 전송한다.
이때 header의 내용은 ascii 코드로 전송되므로 어떤 언어든 서버의 설정 인코딩 방식과 맞기만 하면 해석하는데 문제가 없으므로 한글이 깨지지 않는다.
GET 요청은 보통 서버의 리소스를 가져오는 행위를 요청하는 http 요청 방식이기에 별도의 데이터가 필요 없어 요청 본문(= 페이로드)는 해석하지 않는다.