🔯 Web 프로그래밍의 개요
데이터가 실시간으로 변화하는것을 처리하거나 저장하기에는 불가해서
동적으로 변화하는 데이터를 처리하고 표시하기 위해서 개발된 것이 CGI, ASP, PHP, JSP
웹 프로그래밍은 기본적으로 Client / Server 방식
Client / Server 구조
웹 브라우저가 있는 클라이언트가 자료를 요청(request)하면,
웹 서버가 있는 서버는 요청에 응답(response)하는 구조.
🔯 Web 서버
🖤 역할
- Web서버는 Web의 HTTP를 사용하여 클라이언트의 요청에 응답하는 프로그램이다.
- 이 웹서버는 서버의 역할을 수행하기 위해 항상 실행되어 있어야 하며 클라이언트가 요청한 페이지 또는 프로그램을 실행하여 파일이나 그 결과를 사용자들에게 제공한다. ( = Tomcat,IIS,아파치 )
🖤 정적 웹 서비스
- 특정 폴더에 HTML이나 다양한 미디어의 자원 파일을 저장한 후 클라이언트의 요청에 그대도 파일을 서비스하는 방법
🖤 동적 웹 서비스
- 같은 요청이라도 클라이언트에 따라 다른 결과의 서비스를 해주는 방법
🔯 URL(Uniform Resource Locator)
🖤 구성
http://www.books.com/search?category=it&word=java
|
- URL은 웹 어플리케이션에 요청을 구분하기 위한 용도로 사용됨.
다시 말해 인터넷에 있는 자원의 위치를 나타내기 위한 규약이다.
🔯 Web 프로그래밍 언어의 종류
CGI (Common Gateway Interface)
- Web서버와 동적 콘텐츠 생성을 맡은 프로그램 사이에서 정보를 주고 받는 인터페이스
- 개발 언어: UNIX플랫폼 - Perl, Windows 플랫폼(Platform) - 비주얼 베이직(Visual Basic), C/C++
- 하나의 요청에 대해 1개의 프로세스가 생성이 되어서 그 요청을 처리한 뒤 종료
- 서버의 자원을 과도하게 사용하는 문제점 때문에 UNIX 플랫폼 이외에는 거의 사용되지 않음
ASP (Active Server Pages)
- 스크립트 방식으로 종적인 웹페이지를 작성할 수 있도록 지원하는 기술
- VBScript를 HTML문서에 직접 코딩하여 동적인 웹 페이지를 구현하는 기술
- 특정 플랫폼과 특정 웹 서버에서만 동작
- Windows 플랫폼에서 웹 서버로 IIS (Internet Information Server)만을 사용
PHP (Personal Home Page Tools)
- C언어와 유사한 문법을 사용하며, 적은 명령어로 서버 프로그래밍이 가능한 방식이다
- 오픈소스 프로젝트로 다양한 운영체제와 웹서버를 지원한다.
- 빠른 처리속도와 메일, 데이터베이스 연동 기능 등을 제공한다.
Servlet (서블릿)
- ServletS은 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 프로그램이다
- 서버에서 실행되면서 클라이언트 요청을 수락하고 그 요청에 맞는 동적 응답을 생성하는 자바 프로그램
- 단점 : 자바 프로그램에 표현 부분인 HTML 코드를 모두 포함해야 하므로 로직 처리와 디자인 처리를 분리하기 어려움
JSP (JavaServer Pages )
- HTML 태그 내에 자바 소스 코드를 삽입하고 컴파일시켜 서블릿으로 변환하는 방식
- 자바 기반의 문법을 이용하여 어려운 자바 소스 대신에 태그를 사용해 자바 객체를 사용한다.
🔯 Web 애플리케이션의 구조
🖤 웹 애플리케이션
- 웹을 기반으로 실행되는 프로그램을 의미
- 웹 프로그램밍을 통해 구현
🖤 웹 애플리케이션의 구조
Web 애플리케이션의 구성 요소
- Web 브라우저 : 클라이언트이며, 사용자의 작업 창
- Web 서버 : 웹 브라우저의 요청을 받아들이는 곳
- Web 애플리케이션 서버 (WAS) : 요청된 페이지의 로직 및 데이터베이스와의 연동을 처리하는 부분
- 데이터베이스 : 데이터의 저장소
'Language > JSP (Java Server Pages)' 카테고리의 다른 글
JSP 내장 객체 (0) | 2022.07.25 |
---|---|
JSP 기본 문법 (0) | 2022.07.10 |
쿠키와 세션(cookie and session) (0) | 2022.07.06 |
Servlet (서블릿) (0) | 2022.06.26 |
JSTL 표준 커스텀 태그 (0) | 2022.06.15 |