12 장 웹 활용 기술 : cgi 와 asp
DESCRIPTION
12 장 웹 활용 기술 : CGI 와 ASP. 이 재 광 한남대학교 컴퓨터공학과. 12.1 HTML 문서에서 CGI 의 활용 12.1.1 CGI 의 작동원리 Common Gateway Interface 의 약자 웹 서버와 응용프로그램을 연결하기 위한 표준 CGI 의 동작과정. CGI 를 이용하면 사용자의 요구에 따라 웹 문서를 만들어 낼 수 있음 대표적인 예 : 웹 문서 검색 시스템 1. 사용자가 질의어를 입력 2. 웹 서버가 질의어를 CGI 프로그램에 전달 - PowerPoint PPT PresentationTRANSCRIPT
12 장 웹 활용 기술 : CGI 와 ASP
이 재 광한남대학교 컴퓨터공학과
2
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.1 HTML 문서에서 CGI 의 활용12.1.1 CGI 의 작동원리
• Common Gateway Interface 의 약자 • 웹 서버와 응용프로그램을 연결하기 위한 표준 • CGI 의 동작과정
3
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
• CGI 를 이용하면 사용자의 요구에 따라 웹 문서를 만들어 낼 수 있음 • 대표적인 예 : 웹 문서 검색 시스템
1. 사용자가 질의어를 입력
2. 웹 서버가 질의어를 CGI 프로그램에 전달
3. CGI 프로그램은 질의어를 데이터베이스 시스템에 서찾아냄
4. 결과에 따라 HTML 문서를 만들어냄
5. 브라우저를 통해 결과를 볼 수 있음
4
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.1.2 FORM 의 활용 Form 의 개요
<FORM>...</FORM>
•ACTION : 데이터가 전달될 URL ( 보통 CGI 프로그램 )
• METHOD : 메시지의 전달 방법 (GET 과 POST)
<INPUT>...</INPUT>
• TYPE : 입력 필드의 형식을 결정 (TEXT, PASSWORD, SUBMIT, RESET, CHECKBOX, RADIO)
• NAME : 입력 필드의 데이터가 CGI 프로그램으로 넘어 갈 때 입력필드의 이름 • VALUE : 해당 입력필드에 나타나는 기본값
5
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
텍스트와 암호 입력 양식
<INPUT TYPE="TEXT" MAXLENGTH="n" SIZE="n"> : 텍스트 입력 양식
<INPUT TYPE="PASSORD" MAXLENGTH="n” SIZE="n"> : 암호 입력 양식 • 이름이나 ID 를 입력받을때나 암호를 입력 받을 때 사용 • 암호 입력 양식은 입력된 내용을 '*' 로 표시함 • MAXLENGTH : 입력 받을 수 있는 최대 길이의 문자 수 • SIZE : 텍스트 박스의 수평크기로 문자 수로 결정
6
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
버튼
<IMG S<INPUT TYPE="SUBMIT" VALUE=" 버튼 이름 ">
<INPUT TYPE="RESET" VALUE=" 버튼 이름 ">
• SUBMIT 버튼은 양식 안에 입력된 내용을 <FORM> 태 그 안에서 지정된 곳으로 보냄
• RESET 버튼은 양식 안에 입력된 내용을 모두 지움
• VALUE 는 버튼 위에 보여지는 이름을 지정
7
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
라디오 버튼<INPUT TYPE="RADIO" NAME="..." VALUE="...">
• 여러 항목들 중에서 하나만 선택 가능한 버튼 • 같은 선택군의 같은 NAME 값을 갖고 각각의 항목은 고 유의 VALUE 값을 갖음
체크박스
<INPUT TYPE="CHECKBOX" NAME="...” VALUE="...">
• 라디오 버튼은 선택군에서 하나만 선택가능하지만 체 크박스는 여러개 선택 가능
• 같은 선택군의 같은 NAME 값을 갖고 각각의 항목은 고 유의 VALUE 값을 갖음
8
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
긴 텍스트 입력받기
<TEXTAREA NAME="..." ROWS="n” COLS="n">...</TEXTAREA>
• 위의 텍스트 입력 받기 보다 긴 텍스트를 입력 받을 때 사용
• NAME 은 지정된 곳 ( 보통 CGI 프로그램 ) 으로 넘어갈 때 필드의 이름
• ROWS : 입력 영역 행의 글자수
• COLS : 입력 영역 열의 글자수
9
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
선택 목록 만들기<SELECT NAME="...">...</SELECT> • 선택 목록은 풀 다운 메뉴 (Full Down Menu) 를 말함 • <SELECT> 와 </SELECT> 사이에 <OPTION> 태그 로 항목을 만든다 . • <SELECT> 태그의 속성
• NAME : 지정된 곳 ( 보통 CGI 프로그램 ) 으로 넘어 갈 때 필드의 이름• MULTIPLE : 하나 이상의 선택이 가능• SIZE : 드롭다운 항목에 표시되는 옵션의 수
• <OPTION> 태그의 속성• SELECTED : 그 항목이 초기 선택 값으로 결정
10
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.1.3 CGI 프로그램의 기초웹 서버의 종류에 따른 사용 가능한 CGI 프로그래밍 언어
• UNIX 계열 : Perl, C/C++, 쉘 스크립트 언어 • 윈도우즈 계열 : Perl, C/C++, 비주얼 베이직 • 매킨토시 계열 : Perl, C/C++, 애플 스크립트
HTML 문서에서 CGI 실행 시키기
<A HREF="CGI 프로그램 ?NAME=VALUE">...</A>
<FORM ACTION="CGI 프로그램 " ...>...</FORM>
11
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
데이터 받기
<FORM METHOD="GET 또는 POST" ...>...</FORM> • GET
QUERY_STRING 이라는 환경변수를 통해 입력 받음 길이의 제한이 있슴
• POST • 표준 입력방법에 따라 입력 받음• 길이의 제한이 없슴• 입력양식의 정보를 NAME=VALUE 의 형태로 보냄• 2 개 이상의 정보일 경우 '&' 로 연결• 공백 (Space) : '+' 로 변환• 'CR+LF' : % 아스키코드 로 변환• CGI 프로그램에서 다신 원래대로 변환 해야함
12
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
데이터 보내기
• 헤더
•웹 브라우저에게 어떤 종류의 데이터인지 명시
• HTML : content-type: text/html 텍스트 : text/plain MPEG : video/mpeg JPEG : image/jpeg
• Location: 문서의 위치와 이름 : 웹 브라우저에 출력할 문서를 직접 보여줌
• 헤더를 출력한 다음 한 줄을 띄어 헤더가 끝났음을 브라우저에게 알려야 함
• 데이터 : 헤더에서 정의된 문서의 종류에 따라 맞는 형식을 출력
13
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
환경 변수• 웹 서버에서 환경변수 설정• 환경 변수의 예
14
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.1.4 CGI 로 방명록 만들기 우선 방명록의 입력양식
이름 : 방문자의 이름 E-mail : 방문자의 저자 우편 (E-mail) 주소 홈페이지 : 방문자의 홈페이지 URL 남기고 싶은 말 : 방문자의 의견
입력양식으로부터 넘겨 받은 데이타를 파라메타 별로 나누고 원래의 데이터로 복원하는 작업이 필요 방문자의 기록을 HTML 문서 형태로 파일로 저장 방문자의 요구가 있을 경우 방문록 파일을 볼 수 있도록 함 데이터 베이스 시스템과 연계할 수 있다면 좀더 좋은 방명록 을 만들 수 있음
15
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.2 ASP 의 개요12.1.1 CGI 의 작동원리 Active Server Page 의 약자 사용자가 웹페이지를 인터랙티브하게 사용할 수 있도록 고안된
스크립트 언어 ASP 를 사용하기 위해서 Windows 기반 웹서버인 IIS(Internet Informa
tion Server) 가 필요 • Windows95/98/ME 에서는 IIS 를 지원하는 PWS(Personal Web Ser
ver) 를 추가로 설치하여 가상 서버 환경을 구축 • WindowsNT 에서는 Windows NT Server 4.0 Option Pack 을
설치하여 IIS 를 설치 • Windows2000 에서는 제어판의 프로그램 추가삭제 메뉴에서 설정을
변경하여 IIS 를 설치
16
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
서버측 스크립트• ASP 에서는 비주얼 베이직 스크립트나 자바스크립트를 사용하여
프로그램을 작성 • 서버에서 이러한 스크립트를 해석하여 HTML 태그로 변환하여
클라이언트에게 전송 • 따라서 소스코드의 보안성이 보장됨
• CGI 도 ASP 와 마찬가지로 서버측 스크립트이나 CGI 는 클라이언트의 요청마다 프로세스가 생성되어 서버에 부담을 줌
• ASP 는 쓰레드 (Thread) 를 이용하여 많은 사용자에도 서버에 부하가 적음
• ASP 는 ADO(ActiveX Data Object) 기능을 이용하여 ODBC 호환 데이터베이스를 사용할 수 있는 장점이 있음
17
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
CGI 와 ASP 작동원리의 차이점
18
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.1.2 ASP 의 기본 문법과 함수 비주얼베이직 스크립트와 자바스크립트 사용으로 객체지향 개념 사용 ASP 의 스크립트들은 HTML 문서내의 <% 와 %> 사이에 위치
ASP 스크립트의 처리과정
19
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
변수 및 논리 구문• 변수
• 다른 프로그래밍 언어와 마찬가지로 어떤 값을 저장하기 위한 곳
• 변수명은 첫글자는 항상 알파벳 문자이고 알파벳 또는 '_' 문자나 숫자를 포함한 255 이내의 문자로 구성
• 명시적 선언법 : <% %> 태그 안에 Dim 명령어를 사용 – <% Dim myVariable %>
• 묵시적 선언법 : <% %> 태그 안에 새 변수명을 사용하여 값을 부여
– <% myVariable = 1 %>• ASP 의 변수형은 Variant 로 설정되어 변수에 어떤 형태의 값이
주어지는가에 따라 변수형이 결정됨
20
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
• 논리 구문• If...Then 구문 : 가장 자주 사용되는 논리 구문
If 조건 Then 조건을 만족할 경우 실행 End If
혹은
If 조건 Then 조건을 만족할 경우 실행 Else 조건이 만족되지 않는 경우 실행 End If
21
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
• For...Next 구문 : 시작값과 종료값에 따라 변수를 증감시키며 스크립트들을 반복 실행
For 변수 = 시작값 To 종료값 [Step 증감값 ] 실행문 Next
22
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
VBScript 함수• 날짜와 시간에 관련된 함수
• VBScript 는 웹페이지에서 자주 쓰이는 날짜와 시간에 관련된 정보를 제공하는 다양한 함수를 제공
23
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
문자열에 관련된 함수• VBScript 는 사용자와 웹페이지 간에 교환되는 문자열들의 처리를
위해 다양한 함수를 제공 • 문자열 연결하기 : & 기호를 사용하여 간단히 연결
• <%text1 = " 인터넷 배움터 "text2 = " 입니다 "text3 = text1 & text3%>이와 같은 예에서 text3 에는 " 인터넷 배움터입니다 "란 문자열이 저장됨
• 문자열 나누기 : 문자열을 단어들로 나누어 배열에 각 단어를 저장 • HTML 의 Form 태그에서 Get 메쏘드를 이용했을 경우 인자로
넘어오는 문자열 집합의 처리등에 유용
24
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.1.2 ASP 의 기본 문법과 함수 ASP 는 객체 (Object) 를 이용하여 클라이언트 - 서버간 통신을 함 통신을 위해 총 12 개의 클라이언트 객체와 서버 객체를 사용
• 클라이언트 객체 : Window, Document, Frame, Form, Element, Location, Link 객체
• 서버 객체 : Request, Response, Application, Session, Server 객체 Request 객체
• Request 객체 : 사용자의 정보를 입력받아 처리하는 것이 주요 기능
• QueryString, Form, Cookies, ServerVariable등의 컬렉션을 가지고 있음
25
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
• QueryString 컬렉션• 서버가 클라이언트로부터 GET 방식으로 넘어오는 정보를 받기
위한 것 – GET 방식은 웹페이지간에 정보를 주고 받을때 URL뒤에
정보를 추가하여 넘기는 방식 • QueryString 은 URL 에 추가되어 전달되는 정보를 처리하여
반환하는 기능 • Form 컬렉션
• QueryString 컬렉션과 유사하나 이것은 POST 방식으로 정보를 주고 받을 때 사용
26
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
Response 객체• Response 객체 : 서버가 클라이언트 ( 사용자 ) 에게 정보를
전달하는 것이 주요 기능 • Write, Redirect, Flush, End, Clear등의 메쏘드을 가지고 있음 • Write 메쏘드
• 브라우저 화면에 어떤 값을 출력할때 쓰임 • <% Response.Write 출력할 내용 %> 과 같이 사용하며 간단히
<%= 출력할 내용 %> 으로 표현할 수도 있음 • Redirect 메쏘드
• 현재 페이지에서 다른 페이지로 화면전환을 할때 사용 • <% Response.Redirect "http://kr.yahoo.com" %> 와 같이 사용
27
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
Application 객체와 Session 객체• Application 객체 : 한 웹사이트에 관한 모든 정보를 관리하는 역할 • Session 객체 : 웹사이트에 액세스하는 각 사용자의 정보를 관리하는 역할
• Application 객체의 OnStart/OnEnd 이벤트• OnStart 이벤트 : 사용자가 웹사이트를 처음 방문했을 때 발생 • OnEnd 이벤트 : 마지막 사용자가 웹사이트를 떠났을 때 발생
• Session 객체의 OnStart/OnEnd 이벤트• OnStart 이벤트 : 각각의 사용자에 대해서 웹사이트를 방문했을
때 발생 • OnEnd 이벤트 : 각각의 사용자가 웹사이트를 떠났을 때 발생 • Session 은 기본적으로 사용자가 웹사이트를 떠나고 20분후에
종료
28
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
Application 객체와 Session 객체의 OnStart/OnEnd 이벤트
29
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
Server 객체• Server 객체 : 다른 Server 객체를 생성하는 역할
• 예 : 데이터베이스 Server 객체를 생성하여 손쉽게 데이터베이스를 액세스
• CreateObject, MapPath, ScriptTimeout등의 메쏘드를 가지고 있음 • CreateObject : 가장 자주 쓰이는 메쏘드로써 새로운 객체를 생성함
• 다음은 서버의 Database Access 컴포넌트를 사용하기 위해 ADO(ActiveX Data Object) 인스턴스를 생성하는 구문
• Set myDB = Server.CreateObject("ADODB.Connection")
• myDB 는 ADO 의 인스턴스로 myDB.Open 과 같은 메쏘드로 데이터베이스를 자유롭게 이용할 수 있음
• ASP 는 ADO 를 이용해서 ODBC(Open Database Connectivity) 를 통해 다양한 데이터베이스를 이용할 수 있는 장점을 가짐
30
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
ADO 를 통한 데이터베이스의 연결
31
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.1.4 ASP 프로그램의 예 Application/Seesion 객체의 이벤트와 Server 객체의 CreateObject
메쏘드를 이용한 간단한 ASP 카운터 작성 기본원리 : Application/Session 객체의 이벤트시 수행되는 Global.asa
파일을 이용하여 카운트 값을 증가시킴 주의사항 : 카운터 파일의 입출력시에 다수의 사용자가 동시에 파일에
접근 할 수 있으므로 Application.lock/unlock 으로 한번에 한 사용자만 파일에 접근이 가능하도록 하고 파일의 입출력이 끝나면 close 명령으로 파일을 닫는것이 좋다 .
32
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
Application 객체 이벤트• Sub Application_OnStart
• 첫 사용자가 서버에 접속하였을때 한번 실행됨• szFilename = "c:\Inetpub\wwwroot\counter.txt"
• 사용자가 접속할 때 마다 카운트가 증가되고 이 카운트 값을 파일로 저장하기 위해 경로를 지정
• Set objFile = Server.CreateObject("Scripting.FileSystemObject")
• 카운터 값이 저장된 파일을 사용하기 위하여 파일시스템 인스턴스를 생성
• Set objOut = objFile.OpenTextFile(szFilename, 1) • 생성된 파일시스템 인스턴스를 사용하여 위에서 지정된 파일을 읽기 모드로 열어 카운터 값이 저장된 파일의 내용을 읽을 수 있도록 한다 . 파일을 열 때 첫 번째 인자로 파일의 위치를 지정하고 두 번째 인자로 읽기 모드를 뜻하는 1 을 넘겨줌
33
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
• Application("count") = objOut.ReadLine
• ReadLine 은 파일의 한줄을 읽어 반환을 하는데 여기서는 count라는 application 전역 변수에 카운트 파일의 내용인 방문횟수를 읽어 저장함
• Application("filename") = szFilename
• Session 함수에서 증가된 카운터 값을 저장하기 위해 다시 카운터 파일의 경로가 필요함으로 filename 이라는 application 전역 변수에 파일의 경로를 저장
34
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
Session 객체 이벤트• Sub Session_OnStart
• 각각의 사용자가 서버에 접속할때 마다 실행됨• Application("count") = Application("count") + 1
• count 전역 변수의 값을 1 만큼 증가• Set objFile = Server.CreateObject("Scripting.FileSystemObject")
• Application_OnStart 에서와 마찬가지로 파일 시스템 인스턴스를 생성• Set objOut = objFile.CreateTextFile(Application("filename"), 8)
• 여기서는 카운터 파일에 증가된 카운터 값을 저장하기 때문에 쓰기 모드를 뜻하는 8 을 인자로 넘겨줌
• objOut.WriteLine(Application("count")) • WriteLine 은 인자로 넘어온 값을 파일에 한줄 쓰는 역할을 한다 . 즉
1 만큼 증가된 카운터 값을 파일에 갱신
35
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
화면 출력• Global 에서 지정된 경로에 counter.txt란 파일을 생성하고 원하는
초기값을 지정 • ASP 파일의 적당한 곳에 <%= Application("count") %> 코드를 넣어 카운트값을 출력
• 한 사용자가 카운트 값을 증가하기 위해서는 새로운 Session 을 받아야 하므로 새로운 브라우저로 접속하거나 세션이 종료되길 기다려 재접속해야 함
36
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
12.3 PHP 와 JSP PHP
• PHP(PHP : Hypertext Preprocessor) 는 ASP 나 CGI 와 마찬가지로 서버측 스크립트 언어
• Windows 용 Apache 서버나 Apache 서버를 사용하는 UNIX 또는 Linux 환경에서 사용됨
• Perl 이나 C 와 유사한 문법을 가지며 Class 개념을 가지고 있어 객체지향적 프로그래밍 언어의 특성을 가짐
• ODBC, Oracle, Informix, Sybase, MySQL 과 같은 다양한 데이터베이스를 지원하고 쉬운 인터페이스를 제공함
• 그래픽 라이브러리인 GD Library 를 지원하여 그래픽 이미지의 생성이 가능하고 여러 효과를 줄 수있는 기능을 가짐
37
1212 장 웹 활용 기술 장 웹 활용 기술 : CGI: CGI 와 와 ASPASP
JSP
• JSP(Java Server Page) 는 ASP 와 유사한 서버측 스크립트 언어 • JSWDK(Java Server Web Development Kit) 라는 자바 서버를
사용하여 플랫폼에 독립적 • ASP 와 마찬가지로 <% %> 내에 스크립트 언어를 사용하며 VBScr
ipt 대신 Java 를 사용함 • JavaBeans 라는 컴포넌트를 이용하여 다양한 기능을 수행 • JDBC 라는 Sun Microsystems 사에서 개발한 SQL 데이터베이스
인터페이스로 데이터베이스를 액세스 할 수 있음