본문 바로가기

Java/Servlet + JSP

(5)
[Servlet/JSP] Servlet 정리 서블릿이란? - 서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다. - 서블릿은 자바로 작성되어 있으므로 자바의 일반적인 특징을 모두 가집니다. - 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 Tomcat과 같은 JSP/Servlet 컨테이너에서 실행된다는 점에서 차이가 있다. - 서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송한다. - 서버에서 실행되므로 보안과 관련된 기능도 훨씬 안전하게 수행할 수 있다. - 클라이언트가 웹 서버에 요청하면 웹 서버는 그 요청을 Tomcat과 같은 WAS에 위임한다. - WAS는 각 요청에 해당하는 서블릿을 실행한다. 그리고 서블릿은 요청에..
[Servlet/JSP] Apache와 Apache Tomcat 그리고 WebServer, WAS 1) Apache (Apache Http Server Project) - Apache Http Server는 오픈 소스 소프트웨어 그룹인 아파치 소프트웨어 재단에서 만드는 웹 서버 프로그램이다. - http 웹서버는 http 요청을 처리할 수 있는 웹서버이고, Apache Http Server는 http 요청을 처리하는 웹서버이다. (클라이언트가 GET/POST/DELETE 등의 기능을 이용해 요청을 하면 이 프로그램이 결과를 응답하는 기능을 한다.) - 정적인 데이터를 처리하는 웹서버이다. (정적인 HTML이나 이미지를 제공하는 서버를 웹서버라고 한다.) - 대표적인 웹서버에는 Apache와 NGINX와 Windows 전용 웹서버인 IIS가 있다. 2) Tomcat - Tomcat이 Apache의 기능..
[Servlet/JSP] Web Application 정리 정의 - 웹 애플리케이션(Web Application)이란 말 그대로 기존의 정적인 웹 애플리케이션의 기능을 그대로 사용하면서 서블릿(Servlet, 자바로 만든 CGI 프로그램), JSP, 자바 클래스들을 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램을 말한다. CGI menu CGI란 무엇인가? 1. Web server와 Client 사이의 통신2 CGI 일반적으로 서버는 CGI 프로그램들이 있는 위치(일반적으로 `cgi-bin'디렉토리)를 정해놓고 있는데, 웹 사용자가 CGI 프로그램이 내장되어 있는 문서나 양식을 작성하여 서버에게 그 CGI 프로그램을 실행할 것을 요청하게 된다. 이 때 서버는 그 문서에 내장된 CGI 프로그램을 이미 설정된 디렉토리에서 실행하게 된다.CGI 프로그램 실행시..
[Servlet/JSP] JSESSIONID??? 정리를 해보면 1) Client가 브라우저에 접속하면 서버에서 Session을 생성을 한다. (서버에 Session이 존재하지 않는다면) 2) 서버는 생성된 Session의 Id값을 Cookie Session(쿠키임)에 담아서 브라우저로 다시 전송한다. 3) 브라우저 메모리에 Session id값이 담긴 Cookie Session이 저장되는데, 이 Cookie의 이름이 바로 JSESSIONID + Tomcat을 통해서 실행되는 WAS가 발행하는 쿠키의 이름이다.
[Servlet/JSP] Cookie와 Session Session Tracking - HTTP 프로토콜 방식으로 통신하는 웹 페이지들은 서로 어떤 정보도 공유하지 않는다. - 사용자 입장에서 웹 페이지 사이의 정보를 공유하려면 SessionTracking이라는 웹페이지 기능을 구현해야한다. 예를 들어서 카트 기능을 사용하는 웹애플리케이션에서 클라이언트(사용자)는 multiple requests를 사용하여 카트에 물건을 담는다. 이 때, 모든 요청이 생성될 때 마다 서버는 물건이 담기는 사용자를 식별해야만 한다. 따라서 SessionTracking이 필요하다. - HTTP 프로토콜은 서버-클라이언트 통신 시 stateless 방식으로 통신을 한다. 즉, 브라우저에서 새 웹 페이지를 열면 기존의 웹 페이지나 서블릿에 관한 어떤 연결 정보도 새 웹페이지에서는 ..