웹 어플리케이션 ?

웹 브라우저의 요청에 대하여 처리해서 결과를 보여주는 프로그램을 의미한다.

 

웹 어플리케이션 구성요소

1) 웹 브라우저 : 사용자에게 화면(User Interface)을 제공한다.

2) 웹 서버 : HTTP를 통해 웹 브라우저와 같은 클라이언트에서 요청하는 HTML 문서나 CSS, JavaScript, 오브젝트(image 등) 등의 웹 페이지를 전송해주는 서비스 프로그램

3) WAS ( Web Application Server) : 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로, Server 단에서 Application을 동작할 수 있도록 지원한다.

4) 데이터베이스 : 웹 어플리케이션이 필요로 하는 데이터를 저장한다.

 

웹 어플리케이션 종류

1) CGI(Common Gateway Interface) 

2) ASP (Active Server Page)와 ASP.NET

3) PHP (Hypertext Preprocessor)

4) Servlet

- 서버에서 웹 페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바(Java)로 작성된 프로그램

- 자바 서블릿은 서버 측 기능을 확장시킨 자바 프로그램으로, 자바 EE(JavaEE, Java Platform Enterprise Edition)의 한 기능이다.

- 서블릿은 자바 코드 안에 HTML을 포함하고 있어서 그 효율성이 떨어진다.

5) JSP(Java Server Pages)

- JSP는 HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다.

- JavaEE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다.

 

HTTP(HyperText Transfer Protocol)

1) 개요

- 인터넷에서 하이퍼텍스트(hypertext) 문서를 교환하기 위해 사용되는 통신규약.

- HTTP는 TCP/IP 위에서 작동하며, 서버/클라이언트 모델을 따른다. 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)한다.

- HTTP는 connection less방식(stateless)이다. 클라이언트의 요청에 서버가 응답한 후 클라이언트와 연결을 끊는 구조로 network 속도가 느린 단점을 가지고 있다. 이를 개선하기 위해 HTTP 1.1 부터는 Keep Alive 기능을 지원한다. Keep Alive 기능은 일정한 시간(timeout)동안 접속을 유지하는 기능이다.

- 클라이언트가 서버에 접속하여 어떠한 요청을 하면, 서버는 세 자리 수로 된 응답 코드와 함께 응답한다.

- 응답코드는 응답헤더의 첫 번째 줄에 위치하여, 주요 응답 코드는 다음과 같다.

HTTP/1.1 200 : OK, HTTP/1.1 404 : Not Found, HTTP/1.1 500 : Internal error

- HTTP URL은 "http://"로 시작하며, 기본 포트번호는 80이다.

 

2) HTTP요청(request)과 응답(response)주요 구성 요소

(1) HTTP 요청(request) 주요 구성 요소

- HTTP 메소드

- 접근하고자 하는 URL

- 폼 파라미터

(2) HTTP 응답(response) 주요 구성 요소

- 상태 코드(요청 처리에 대한 성공 여부)

- 컨텐츠 타입(text/html, text/css, text/xml 등)

- 컨텐츠(HTML 소스, 이미지 등)

(3) HTTP 메소드

- HTTP 프로토콜을 사용하여 서버로 요청을 보내는 방법을 Method라 한다.

- 종류 

GET : 정보를 요청하기 위하여 사용한다. (SELECT)

POST : 클라이언트가 웹 서버에 데이터를 전달할 때 사용한다. (INSERT)

PUT : 정보를 업뎅트하기 위해서 사용한다. HTML 5는 지원하지 않음(UPDATE)

DELETE : 정보를 삭제하기 위해서 사용한다. HTML 5는 지원하지 않음(DELETE)

HEAD : (HTTP) 헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.

OPTIONS : 웹 서버가 지원하는 메소드의 종류를 요청한다.

TRACE : 클라이언트의 요청을 그대로 반환한다. echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.

- 보통 웹 서비스들은 GET과 POST만을 이용해서 개발한다.

 

HTTPS(HyperText Transfer Protocol over Secure Socket Layer)

- HTTP는 기본적으로 평문 데이터 전송을 원칙으로 하기 때문에 개인의 프라이버시가 오가는 서비스들(전자상거래, 전자메일, 사내문서)에 사용하기 힘들다.

- HTTP는 SSL 레이어 위에 HTTP를 통과 시키는 방식이다. 즉 평문의 HTTP 문서는 SSL 레이어를 통과하면서 암호화 돼서 목적지에 도착하고, 목적지에서는 SSL 레이어를 통과하면서 복호화돼서 웹 브라우저에 전달된다.

- SSL은 전자상거래에서의 데이터 보안을 위해서 개발한 통신 레이어다. SSL은 표현계층의 프로토콜로 응용 계층 아래에 있기 때문에, 어떤 응용 계층의 데이터라도 암호화해서 보낼 수 있다.

- HTTPS는 인증서를 이용해서, 접속 사이트를 신뢰할 수 있는지 평가할 수 있다.

- 일반적으로 HTPS는 HTTP에 비해서 느리다. 많은 양의 데이터를 처리할 경우 성능의 차이를 체감할 수 있다.

- HTTPS URL은 "https://"로 시작한다.

- 기본 포트번호는 443이다.

 

URL과 URI

URL(Uniform Resource Locator)

- 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.

- URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있으며, 해당 URL에 맞는 프로토콜을 이용하여 접속한다.

- URL은 인터넷 도메인 이름이나 IP주소, 이메일, 파일 전송과 같이 컴퓨터 네트워크 정보자원을 이용하는 모든 형태에 적용된다.

- 하위 개념으로 URL(Uniform Resource Locator), URN(Uniform Resource Name)이 있다.

 

웹 컨테이너(Web Container) ?

- JSP와 서블릿을 실행할 수 있는 소프트웨어를 웹 컨테이너(Web Container) 또는 서블릿 컨테이너(Servlet Container)라고 한다.

- 순수 서블릿을 처리하는 경우 서블릿 컨테이너라 부르는데, 서블릿 컨테이너를 포함한 JSP, HTTP 서버로서의 기능을 포함하기 때문에 웹 컨테이너라고 부르기도 한다.

- Apache Tomcat, IBM Web Sphere 어플리케이션 서버, Resin, 티맥스의 JEUS, 이클립스 재단의 jetty 등이 있다.

 

웹 컨테이너(Web Container)의 역할 및 특징

- 서블릿의 생명주기를 관리하고, URL과 특정 서블릿을 맵핑하며 URL 요청이 올바른 접근 권한을 갖도록 보장한다.

- 서블릿, JSP 등에 대한 요청을 다룬다.

- 서블릿 객체의 생성 및 초기화, 요청과 응답 객체 생성 및 관리 등의 작업을 수행한다.

- 웹 응용 프로그램의 보안, 병행성, 생명주기 관리 등의 서비스를 제공한다.

 

Apache Tomcat

- 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너만 있는 웹 애플리케이션 서버(WAS)

- 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행될 수 있는 환경을 제공한다.

 

+ Recent posts