인터넷과 웹은 같은 의미일까?
먼저, 인터넷은 전 세계의 컴퓨터 네트워크이다.
컴퓨터는 서로 연결되어 있고, TCP/IP 통신 프로토콜로 정보를 주고 받는다.
*프로토콜 : 통신할 때의 규칙 같은 것.
인터넷을 통한 여러 서비스가 존재하는데, 그 서비스 중 하나가 웹(World Wide Web)이다.
웹이란, 인터넷에 연결된 컴퓨터를 사용하는 사람들끼리 정보를 공유하는 공간이다.
웹은 인터넷에서 무척 중요하게 쓰이므로 두 단어를 혼용해서 쓰는 것이다.
* 인터넷 안에 이메일, 웹, 파일 송수신, 텔넷 등등의서비스 존재
* 웹에서 사용하는 프로토콜이 HTTP
+) HTTP는 특이한 프로토콜임. 클라이언트가 1번 요청을 보낼 때, 연결(커넥션)이 되고, 서버에서 해당 페이지를 만들어서 클라이언트에게 보내어 응답하면, 연결(커넥션)을 끊음.
+) DBMS의 경우에는 한 번 연결(커넥션)을 하면 오래 감. 클라이언트가 연결을 끊을 때까지.
→ 한 번에 접속할 수 있는 사람이 10명이라고 가정. 10명이 들어가면 다른 사람 못 들어감.
→ 누군가 커넥션을 선점해버리면, 다른 사람들은 접속을 할 수 없게 됨.
→ 그래서 HTTP가 등장함. 한 번 연결하면 연결이 끊어지므로 다른 사람이 접속 가능함. 공평하게 더 많은 사람들에게 서비스하기 위한 프로토콜.
.
.
.
그렇다면 웹은 어떻게 동작할까?
웹은 클라이언트/서버 방식으로 동작한다.
여기서 클라이언트는 웹 브라우저,서버는 웹 서버를 뜻 한다.
사용자가 웹브라우저에 원하는 서버 주소를 입력하는 것이 요청한다고 하고
웹 서버가 그에 맞는 페이지를 찾아 웹 브라우저로 해당 웹 페이지제공하는 것을 응답한다고 한다.
*유명한 웹 서버 : 아파치, 톰캣, IIS 등이 있음
+) 톰캣 : 자바 서블릿, JSP를 지원
.
.
.
그렇다면 이제 웹 페이지에 대해 알아보자.
웹 페이지는 정적 또는 동적 페이지로 나뉘게 됨.
정적 웹 페이지는 컴퓨터에 저장된 텍스트 파일을 그대로 보는 것 - HTML
동적 웹 페이지는 저장된 내용을 다른 변수로 가공 처리하여 보는 것 - PHP, ASP, JSP, JAVA SCRIPT / 실시간 뉴스, 날짜
일단 정적 웹 페이지인 HTML에 대해 좀 더 자세히 알아보자.
HTML 1.사용자가 웹 브라우저에 URL 입력(요청) 2. 해당 URL 웹 서버에서 검색 3. 서버에 저장되어 있었던 HTML문서를 크라이언트로 전송 4. 웹 브라우저가 HTML문서 보여줌
*HTML은 txt 문서이다.
→ 구축 쉬움, 속도 빠름 등
→ 변화X, 수정X 등
JSP 1.사용자가 웹 브라우저에 URL입력(요청) 2. 해당 URL 웹 서버에서 요청을 분석 3.데이터베이스 연동된 것 처리 4. 처리된 결과를 웹 서버에서 HTML문서로 생성 5. HTML을 클라이언트에게 전송 6. 웹 브라우저가 HTML문서를 보여줌
*JSP 프로그램의 결과물은 HTML 태그로만 이루어진 HTML파일임.
*동적인 웹페이지를 만들 때, 그냥 HTML문서를 주는 것이 아님. 프로그램의 결과물로 HTML문서가 나오면 그 문서를 전달
.
.
.
동적 웹 페이지를 만드는 언어는 위에서도 말했듯이 PHP, ASP, JSP, JAVA SCRIPT 등이 있다. 이 언어를 또 2가지로 분류할 수 있다. 바로 클라이언트 측 실행언어와 서버 측 실행 언어이다.
클라이언트 측 언어로는 JAVASCRIPT가 있다.
서버 측 웹 언어로는 서블릿과 JSP, ASP, PHP가 있다
* 클라이언트 측 언어는 클라이언트 측의 자원(전기, CPU등)사용. 서버 측 언어는 서버 측의 자원 사용.
→ 그럼 클라이언트 측 언어로만 사용하면 되지 않는가? 안됨.
→ HTTP는 페이지 소스보기로 모든 코드가 공개됨. 자바스크립트도 공개될 것임. 개발자의 노하우, 재산권 등을 공짜로 퍼주는것임.
→ 그래서 JAVA SCRIPT는 사용자 인터페이스를 만들고, 저작권 등 중요한 내용은 JSP로 만듦.
.
.
.
우리가 다뤄볼 서블릿과 JSP에 대해 알아보자.
- 서블릿
자바로 웹 페이지를 동적으로 생성하는 서버 측 언어
→ 웹 서버의 성능을 향상시키기 위한 자바 클래스의 일종
→ JSP는 HTML문서 안에 JAVA코드를 포함 / 서블릿은 JAVA코드 안에서 HTML 포함
서블릿의 동작과정은?
→ JAVA를 통하여 결과물이 HTML이 생성되고 그것을 전달함.
- JSP (Java Server Pages/Jakarta Server Pages)
자바 언어를 기반으로 하는 스크립트 언어
HTML 내에 자바코드를 삽입하여, 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에서 전달하는 서버측 언어임.
JSP의 동작과정은?
→ JSP 파일 생성 ex. TEST_jsp
→ 하나의 서블릿 프로그램으로 변환되어 실행 ex. TEST_jsp → TEST_jsp.java
→ 서블릿 프로그램은 컴파일 되어 클래스로 생성됨. ex. TEST_jsp.java → TEST_jsp.class
→ 웹 서버는 실행 결과를 웹 브라우저에 전달(응답)
→ 웹 브라우저는 동적 처리된 결과를 사용자에게 보여줌
JSP의 생명주기는?
jsp 파일 받으면 Tomcat에서 번역하여 서블릿 파일로 변환, 컴파일 후, Hello.class로 컴파일됨. 그 후, 로딩 초기화, 실행, 소멸됨.
* 웹 서버 vs 웹 컨테이서 vs 웹 애플리케이션 서버
웹 서버란, HTTP프로토콜로 클라이언트의 요청 받고, HTML을 전달.
웹 컨테이너(=서블릿 컨테이너=JSP 컨테이너)란, JSP와 서블릿을 실행하는 프로그램.
웹 애플리케이션 서버란, 웹 서버와 웹 컨테이너를 결합한 서버임