Head First Servlet & Jsp라는 책을 공부하며 복습할 겸 내용을 정리하여 작성하겠습니다.
1. 웹 이란?
Servlet을 알아보기 전 웹 서버 & 웹 클라이언트가 어떤 것인지 정리하겠습니다.
서버란 간략하게 정리하면 물리적인 하드웨어 또는 서버 애플리케이션 소프트웨어 전체를 말합니다.
웹 서버의 역할은 웹 클라이언트가 보낸 요청을 받아, 받은 요청에 대한 결과를 웹 클라이언트에게 다시 전달해 주는 것이 웹 서버의 역할입니다.
웹 클라이언트 ---> 요청 ---> 웹서버 ---> 결과 ---> 웹 클라이언트
웹 클라이언트란 사용자라는 사람을 뜻하기도 하고, 브라우저라는 응용프로그램을 뜻하기도 합니다. 두 개다 해당되는 의미 이기도 하죠.
브라우저는 서버랑 통신하는 넷스케이프(Netscape) 나 모질라(Mozillar) 와 같은 소프트웨어를 말하며 주된 역할은 HTML 코드를 읽어(파싱) 화면에 보여주는 것입니다.
2. Http(HyperText Transfer Protocol)란?
위에서 언급한 웹 서버와 웹 클라리언트가 요청을 주고 받기위한 규약, 언어를 뜻 합니다.
쉽게 설명 하자면 클라이언트는 서버에게 HTML 페이지를 보여달라고 대화를 시도합니다. 이때 대화에 사용되는 언어가 http 이죠, 그럼 서버는 그 언어를 알아듣고 클라이언트가 요청한 HTML 페이지를 http언어를 사용하여 보내 줍니다.
3. Http 메소드(GET/POST)
http 메소드는 대표적으로 GET과 POST가 있습니다. 이 메소드 들의 역할은 클라리언트가 서버로 요청을 보낼 때 어떤 것들을 요청하는지 또는 필요한 데이터들을 보낼 때 사용되는 방식입니다.
먼저 GET 방식 같은 경우는 대체적으로 간단한 요청 즉 페이지 이동 같은 할 때 많이 사용됩니다.
-> 서버님 클릭한 페이지를 주세요~(GET)라고 말할 수 있죠
POST 방식 같은 경우 회원가입과 같이 요청 시 다양한 정보들을 보낼 때 사용됩니다.
-> 서버님 입력한 값을 같이 보냅니다~(POST)
위 글만 보면 GET 방식은 데이터를 보낼 수 없는 것처럼 보이지만 GET 방식도 데이터를 보낼 수 있습니다.
다만 GET 방식은 우리가 흔히 알고 있는 주소창에 정보를 그대로 적어서 보내기 때문에 글자 수 제한이 있을 뿐만 아니라 사용자의 비밀번호 등 개인정보가 노출될 수 있기 때문에 많은 데이터를 보내기 위해서는 메시지 바디(Message body)에 정보를 담아 보내는 POST 방식을 사용합니다.
4 웹 서버의 동적 서비스(Servlet)
기본 적으로 웹 서버는 이미 만들어져 있는 HTML 페이지를 보내는 정적 서비스만 제공할 수 있습니다. 그렇다면 동적으로 변하는 데이터 값들은 어떻게 해야 할까요?
웹 서버 혼자서는 동적인 서비스를 클라이언트에게 제공할 수 없기 때문에 도우미 애플리케이션을 이용하여 동적인 서비스를 제공합니다. 이 도우미 애플리케이션이 대표적으로 자바를 이용한 서블릿(Servlet)입니다.
클라이언트(동적 서비스 요청) --> 웹 서버 --> Servlet --> 웹 서버 --> 클라이언트
웹 서버는 클라이언트가 동적 서비스를 요청하면 도우미 애플리케이션인 Servlet으로 받은 요청을 보내고 Servlet은 요청에 맞게 데이터를 만들어서 최종적으로는 정적 페이지를 다시 웹 서버로 보내어 줍니다.
Servlet은 이러한 역할을 하며 다음 글에서 더욱 자세하게 알아봅시다.!!
'Servlet & Jsp' 카테고리의 다른 글
[sendRedirect 사용하기] - Head Frist Servlet & Jsp (0) | 2020.12.21 |
---|---|
[sendRedirect 사용하기] - Head Frist Servlet & Jsp (0) | 2020.12.21 |
[Selvet HttpResponse 사용하기] - Head Frist Servlet & Jsp (0) | 2020.12.21 |
[Servlet의 HttpRequest 사용하기] - Head Frist Servlet & Jsp (0) | 2020.12.21 |
[Servlet & 컨테이너] - Head Frist Servlet & Jsp (0) | 2020.12.19 |