WWW
- 분산 클라이언트-서버 서비스
- 브라우저를 사용하는 클라이언트가 서버와 연결하여 서비스 제공 받는다
- 제공되는 서비스는 사이트라고 하는 여러 장소에 분산되어 있다
- 각 사이트는 웹 페이지라고 불리는 하나 또는 그 이상의 문서들을 유지
- 웹페이지
-
- 웹페이지는 이름과 주소를 갖춘 파일
- 단일 웹 페이지 : 다른 웹페이지로의 연결이 없음
- 복합 웹 페이지 : 다른 웹페이지로 하나 혹은 그 이상의 연결을 가진다
단일 웹 페이지 예제
- 유명한 인물의 사진과 이력이 포함된 웹페이지 접근
- 사진들을 분리된 파일로 저장하지 않은 경우 -> 전체문서가 단일 웹페이지
복합 웹페이지 예제
- 과학문서를 검색하는 경우
- 문서는 다른 텍스트 파일과 큰 이미지에 대한 참조 포함 -> 복합 웹페이지
클라이언트(브라우저)
- 다양한 상용 브라우저 존재 -> 그러나 구조는 거의 동일
- 세 부분으로 구성
-
- 제어기 -> 키보드나 마우스로 입력을 받아 클라이언트 프로토콜을 이용하여 서버의 문서에 접근
- 클라이언트 프로토콜 -> HTTP, FTP, TELNET 등 프로토콜
- 해석기 -> 문서 획득 후, 제어기는 해석기 중 하나를 사용하여 문서를 화면에 표현
웹서버
- 웹 페이지를 저장하는 컴퓨터
- 속도 향상을 위해 요청된 파일을 메모리의 캐시에 저장
- 효율을 위해 다중 쓰레드나 다중 프로세스 사용
-
- 한번에 하나 이상의 요청에 응답
- 유명한 웹 서버
-
- 아파치
- Microsoft Internet information service(IIS)
균일한 위치 지정자(URL : Uniform Resource Locator)
- 클라이언트가 웹 페이지를 액세스하기 위한 주소
- HTTP는 위치 지정자라는 개념 사용
- URL은 인터넷에서 어떤 종류의 정보의 위치도 지정할 수 있는 표준
- URL = 프로토콜 + 호스트 컴퓨터 + 포트+ 경로로 구성
-
- 프로토콜 : 문서를 불러오는데 사용되는 클라이언트/서버 응용, ex) 고퍼, FTP, HTTP, News, Telnet
- 호스트 : 정보가 위치하고 있는 서버의 도메인네임
- 포트번호
- 경로 : 정보가 위치하고 있는 파일의 경로 이름
- Protocol://Host:Port/Path
웹 문서의 분류 - 문서의 내용이 결정되는 순간을 기반
-
정적 문서
-
-
서버에서 생성되어 저장된 고정 내용 문서
-
클라이언트가 문서를 접근할 때 문서의 복사본이 전송
-
파일의 내용이 파일이 사용될 때가 아닌 생성될 때 결정
-
다음의 여러 언어 중 하나를 사용
-
- HTML(Hypertext Markup Language)
-
- 웹페이지를 만드는 언어
- 마크업 랭귀지
-
- 출판사로부터 유래
- 책이 조판되고 인쇄기 전에, 원고 편집자들이 원고를 읽고 표기를 함
- 이러한 표기들은 식자공으로 하여금 원문의 판형을 어떻게 짜야 하는지를 알려줌
- 예 : 물결 모양의 선 -> 굵은 체로 인쇄
-
- 유사한 형태로, 웹 페이지에 대한 브라우저의 해석 가능
- XML
- XSL
- XHTML
-
-
동적 문서
-
-
브라우저가 문서를 요청할 때마다 웹서버에 의해 생성
-
- 요청이 들어오면, 웹서버는 동적 문서를 만드는 응용 프로그램이나 스크립트를 수행
- 서버는 프로그램의 출력이나 스크립트를 그 문서를 요청한 브라우저에게 응답으로 반환
- 각 요청에 대해, 새로운 문서가 생성되기 때문에, 동적 문서의 내용은 각각의 요청에 따라 달라질 수있음
-
ex) 서버로부터 날짜와 시간을 받는것
- 공통 게이트웨이 인터페이스(CGI)
-
- 동적 문서를 생성하고 처리하는 기술
- 1) 동적 문서가 어떻게 작성되어야 하는지 2) 입력 데이터가 어떻게 프로그램에 제공되어야 하는지 3) 그리고 출력 결과가 어떻게 사용되어야 하는지를 정의
-
-
- CGI는 새로운 언어가 아님
- 프로그래머가 C, C++과 같은 언어 중 하나를 사용할 수 있도록 해줌
- CGI는 프로그래머가 따라야 할 규칙과 용어들의 집합만 정의
- “Common”의 의미
-
- 어떤 언어나 플랫폼에도 공통적으로 적용되는 규칙의 집합임을 의미
- “Gateway”의 의미
-
- CGI프로그램이 데이터베이스, 그래픽 패키지 등과 같은 다른 자원을 액세스하기 위해 사용될 수있음을 의미
- “Interface”의 의미
-
- 임의이 CGI프로그램에서도 사용될 수 있는 미리 정의된 용어, 변수, 함수 등의 집합이 존재함을 의미
- 입력(Input) : 클라이언트로부터 서버로의 입력
-
- URL에서 물음표 앞의 부분은 수행될 프로그램이고, 뒤의 부분은 프로그램에 대한 입력으로 해석
- 예: http://www.deanza.edu/cgi-bin/prog.pl?23
- 출력(output)
-
- 플레인 텍스트, HTML 구조를 갖는 텍스트
- 그래픽, 이진 데이터
- 상태 코드,
- 결과를 캐시하기 위한 브라우저로의 명령어들 또는 실제 출력 대신 기존의 문서를 전송하기 위한 서버에 대한 명령어들
CGI 기술의 문제점
- 생성된 동적 문서의 일부가 고정되어 있고, 요청시마다 변경되지 않는 경우에 발생하는 비효율성
- 예)
-
- 특정 차종에 대한 재고 부품의 목록, 여유분, 가격 등을 포함하는 문서
- -> 여유분과 가격은 매번 바뀜
- 그러나 부품의 이름, 설명 및 사진 등은 고정
- 전체 문서를 항상 동적으로 생성한다면 비효율성 발생
- 해결방법
-
- 문서의 고정부분 -> HTML 생성
- 분서의 변화 부분 -> 서버에서 수행될 수 있는 스크립트, 즉 소스 코드를 내장하도록 함
스크립트를 사용하여 동적 문서를 생성하는 기술 예
- Perl 언어를 사용하는 PHP
- 자바 언어를 사용하는 JSP
- 비쥬얼 베이직 언어을 사용하는 ASP
- HTML 문서에 SQL 데이터베이스 질의를 내장한 ColdFusion
-
-
-
액티브 문서
-
-
클라이언트 사이드에서 수행될 프로그램이나 스크립트가 포함된 문서
-
예)
-
- 화면세어 움직이는 그림들을 생성하거나 사용자와 상호작용하는 프로그램
- 이 프로그램은 클라이언트 사이드에서 수행될 필요
-
사용 절차
-
- 브라우저가 액티브 문서를 요청
- 서버는 문서의 복사본이나 스크립트를 전송
- 문서는 클라이언트 사이드에서 수행
-
자바 애플릿
-
- 애플릿 -> 서버에서 자바로 작성된 프로그램, 컴파일되어 수행될 준비가 되어 있는 바이트코드 형태
- 브라우저는 이 애플릿의 인스턴스르 생성하고 이를 수행
-
- 방법1 : 브라우저가 URL에 직접 자바 애플릿 프로그램을 요청하고 바이너리 형태로 애플릿을 수신하여 실행
- 방법2 : 브라우저가 애플릿의 주소를 태그로 내장한 HTML 파일을 읽어와서 실행
-
자바 스크립트
-
-
동적 문서에서의 스크립트 개념이 액티브 문서에서도 사용 가능
-
- 문서의 액티브 부분이 작으면 스크립트 언어로 작성되어 클라이언트에 의해 해석/실행
스크립트 -> 소스코드 로서 바이너리 형태 아님
자바스크립트 -> 자바와 닮은 점이 있는 스크립트 언어
-
-