상세 컨텐츠

본문 제목

[1강.웹과 자바]JSP프로그래밍

<개인공부>

by 데브수달 2022. 11. 12. 12:22

본문

728x90
반응형

 

1.웹은 인터넷 상에 분산된 전 세계적 정보 공간 또는 정보 공유 서비스를 의미한다.

2.웹 클라이언트와 요청하는 웹 문서는 정적인 웹 문서와 동적인 웹 문서로 구분된다.

3.웹 애플리케이션은 실행위치에 따라 서버 측/ 클라이언트 측 기술로 나뉘고,

구현방식에 따라 컴파일/비컴파일 방식으로 나뉜다.

4.JSP는 동적으로 웹 문서를 만들기 위한 서버 측 웹 프로그래밍 기술이다.

5.웹 애플리케이션 서버(WAS)는 동적으로 웹 페이지를 생성하기 위해 웹 애플리케이션을 실행하고 관리한다.

6.HTTP는 응용 계층의 프로토콜로서 웹 문서의 송수신을 위한 통신 규약이다.

 

 

웹 서비스의 제공과 구성 요소

1.웹 클라이언트 2.웹서버 3.웹 애플리케이션 서버 4.데이터베이스

 

클라이언트 측 실행

-웹 문서에 동적 요소를 포함 시켜 클라이언트에 전송

-웹 브라우저가 해석하여 페이지를 생성

-애플릿, JAVASCRIPT,플래시

-보안의 문제 (서버쪽 부담은 줄이나, 보안의 문제가 있다.)

 

서버 측 실행

-서버에서 실행되어 응답 문서를 동적으로 생성

-웹 애플리케이션 서버가 수행한 결과가 브라우저에 전송됨.

-서블릿, JSP,,ASP,PHP,CGI방식

-서버의 부담 (자원 사용의 부담)

 

컴파일 방식

-컴파일 과정을 통해 실행파일이나 바이트 코드가 만들어져 사용됨.

-자바서블릿, JSP

-PERL ,C, C++을 이용한 CGI방식

(동작 속도가 빨라서 실행속도 빠르다)

 

비컴파일 방식

-매 요청마다 스크립트를 해석하여 실행하는 방식

-자바스크립트는 크라이언트에서 실행되는 스크립트 방식

 

CGI

-동적으로 웹 페이지를 생성하기 위한 방식 중 하나 

-- 고급 언어 프로그램을 실행시켜 HTML 코드를 생성한 후 전달함

 

-클라이언트의 요청이 있으면 해당 프로그램을 실행시키기 위해 개별 프로세스를 생성함.

--동일한 CGI를 요청해도 요청의 개수만큼 프로세스를 생성하므로 웹 서버에 부하를 준다.

 

성능이 급격히 떨어질 수 있다.

 

WAS

-웹 애플리케이션을 실행하고 관리하는 별도의 전담 프로그램

-- 모든 요청에 대해 매번 프로세스를 생성하지 않고 하나의 자바 가상 기계 내에서 수행함.

--요청을 처리하기 위해 스레드를 생성하기 때문에 CGI 보다 효율적이다.

 

-웹 페이지 생성 외에도 많은 기능을 수행함.

--API제공, 부하 균형, 고장 조치 등

 

성능이 급격히 떨어지지 않는다.

 

웹 서버

-클라이언트로부터의 요청을 받고 결과를 전달하는 기능

(아파치 HTTP 서버, IIS , Nginx)

-HTTP 프로토콜을 사용하여 클라이언트와 통신함.

(HTTP는 클라이언트와 웹 서버 간 웹 문서를 전송하기 위한  통신 규약 , 웹 서버를 HTTP서버라고도 함.)

 

웹 서버의 구체적 기능

-클라이언트가 요청한 웹 문서를 찾아 전달

-클라이언트 요청에 대한 기본적 사용자 인증

-문제가 있으면 정해진 코드 값으로 응답

-프로그램 실행 요청이 있으면 처리 후 그 결과를 전달

 

웹 애플리케이션 서버

-서버의 성능을 개선하기 위해 웹 서버의 기능을 분리

-웹 서비스의 처리를 위해 동적 페이지를 만들거나 비즈니스 로직을 처리

 

 

JSP가 이제 서블릿으로 변환되어 처리된다,

 

서블릿- 서버+애플릿

-웹 페이지를 동적으로 생성하기 위한 서버 측 JAVA 클래스

- JAVA언어에 기초한 웹 프로그램의 개발 기술

 

-JAVA언어로 서블릿 클래스를 만들고 , 컴파일된 바이트 코드를 서버에 탑재하여 웹 서비스를 제공

(소스를 수정하면 다시 컴파일하여 서버에 탐재해야 함.)

 

JSP(자바서버 페이지)

-서블릿 대신에 사용할 수 있는 스크립트 형식의 언어( HTML 페이지 내에 삽입됨)

-JSP페이지는 서블릿으로 변환됨

(웹 애플리케이션 서버가 자동으로 JSP페이지를 변환하고 컴파일하여 웹 서비스를 제공함)

 

-JAVA EE를 구성하는 기술 중 하나

 

=>특징

-스크립트 언어로 HTML페이지에 삽입됨

-JAVA언어의 특성을 활용

-표현 언어, 표현식, 액션 태그 등의 스크립트적 요소를 제공

-다양한 개발 환경이 오픈 소스로 제공됨

-JSP기술은 플랫폼에 독립적 

(폐쇄적이지 않고 개방적이다. )

 

웹 컨테이너=서블릿 컨테이너라고도 함

-웹 컴포넌트를 저장하고 서블릿의 생명주기를 관리 

(클라이언트의 서블릿 요청을 실행시키는 역할)

-서블릿 컨테이너

(JAVA로 구현된 서블릿 엔진 / JSP를 서블릿으로 변환하는 기능 포함)

-Tomcat, WildFLY, WEBLOGIC

 

-웹 서버에서 서블릿이 실행되기 위한 환경

(웹서버, JDK,서블릿 컨테이너 (TOMCAT))

 

-JSP컨테이너

(JSP페이지를 서블릿 프로그램으로 변환, 대부분의 서블릿 컨테이너는 JSP컨테이너 기능을 포함함, JSP컨테이너 자체가 서블릿으로 구현되어 있음. 결국 서블릿 컨테이너에 의해서 실행된다고 볼 수 있다.)

 

 

HTTP프로토콜

 

-웹 서버와 클라이언트가 통신하는 규약

(TCP프로토콜에 기초한 애플리케이션 계층 프로토콜)

-Connection oriented & Stateless 특성

(요청을 위해 접속, 서버가 응답한 후에 서버는 클라이언트의 상태를 유지 x ,웹 서버의 부담이 줄어드나 상태 관리를 위해 쿠키나 세션 등이 필요하다.)

-HTTP 요청과 응답 절차

(TCP 접속 -서버의 어떤 특정 포트에 연결 설정, 요청 메시지 전송, 응답 메시지 전송, 연결 끊기)

 

HTTP 요청 메시지 구조 

-시작 라인 

(요청 방식, URI , 버전 번호)

-요청 헤더

(한 라인에 하나씩 헤더 정보 기술, 각 라인은 "헤더필드이름:값" 형식, 요청 헤더의 끝에 공백 라인을 둠)

-요청메시지의 몸체

(POST요청방식에만 의미 ,HTML폼에서 작성한 데이터를 POST방식으로 전송됨)

 

더보기

서버의 응답 코드와 설명

200 OK -클라이언트 요청이 성공적을 끝남

400 Bad Request- 잘못된 요청

401 Unauthorized-인증 오류

403 Forbidden -사용자 허가 모드 오류

404 Not Found-요청한 문서가 존재하지 않음

405 Method Not Allowed-요청한 방식을 지원하지 않음

500 Internal Server Error-서버에서의 실행 오류

503 Server Unavailable-일시적으로 요청을 처리할 수 없음

 

,

 

 

 

728x90
반응형

관련글 더보기