1 / 37

12 장 웹 활용 기술 : CGI 와 ASP

12 장 웹 활용 기술 : CGI 와 ASP. 이 재 광 한남대학교 컴퓨터공학과. 12.1 HTML 문서에서 CGI 의 활용 12.1.1 CGI 의 작동원리 Common Gateway Interface 의 약자 웹 서버와 응용프로그램을 연결하기 위한 표준 CGI 의 동작과정. CGI 를 이용하면 사용자의 요구에 따라 웹 문서를 만들어 낼 수 있음 대표적인 예 : 웹 문서 검색 시스템 1. 사용자가 질의어를 입력 2. 웹 서버가 질의어를 CGI 프로그램에 전달

orrick
Download Presentation

12 장 웹 활용 기술 : CGI 와 ASP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 12장 웹 활용 기술 : CGI와 ASP 이 재 광 한남대학교 컴퓨터공학과

  2. 12.1 HTML 문서에서 CGI의 활용 • 12.1.1 CGI의 작동원리 • Common Gateway Interface의 약자 • 웹 서버와 응용프로그램을 연결하기 위한 표준 • CGI의 동작과정 2

  3. CGI를 이용하면 사용자의 요구에 따라 웹 문서를 만들어 낼 수 있음 • 대표적인 예 : 웹 문서 검색 시스템 • 1. 사용자가 질의어를 입력 • 2. 웹 서버가 질의어를 CGI 프로그램에 전달 • 3. CGI 프로그램은 질의어를 데이터베이스 시스템에 서찾아냄 • 4. 결과에 따라 HTML 문서를 만들어냄 • 5. 브라우저를 통해 결과를 볼 수 있음 3

  4. 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 : 해당 입력필드에 나타나는 기본값 4

  5. 텍스트와 암호 입력 양식 • <INPUT TYPE="TEXT" MAXLENGTH="n" SIZE="n"> : 텍스트 입력 양식 • <INPUT TYPE="PASSORD" MAXLENGTH="n” SIZE="n"> : 암호 입력 양식 • 이름이나 ID를 입력받을때나 암호를 입력 받을 때 사용 • 암호 입력 양식은 입력된 내용을 '*'로 표시함 • MAXLENGTH : 입력 받을 수 있는 최대 길이의 문자 수 • SIZE : 텍스트 박스의 수평크기로 문자 수로 결정 5

  6. 버튼 • <IMG S<INPUT TYPE="SUBMIT" VALUE="버튼 이름"> • <INPUT TYPE="RESET" VALUE="버튼 이름"> • SUBMIT 버튼은 양식 안에 입력된 내용을 <FORM>태 그 안에서 지정된 곳으로 보냄 • RESET 버튼은 양식 안에 입력된 내용을 모두 지움 • VALUE는 버튼 위에 보여지는 이름을 지정 6

  7. 라디오 버튼 • <INPUT TYPE="RADIO" NAME="..." VALUE="..."> • 여러 항목들 중에서 하나만 선택 가능한 버튼 • 같은 선택군의 같은 NAME 값을 갖고 각각의 항목은 고 유의 VALUE값을 갖음 • 체크박스 • <INPUT TYPE="CHECKBOX" NAME="...” VALUE="..."> • 라디오 버튼은 선택군에서 하나만 선택가능하지만 체 크박스는 여러개 선택 가능 • 같은 선택군의 같은 NAME 값을 갖고 각각의 항목은 고 유의 VALUE값을 갖음 7

  8. 긴 텍스트 입력받기 • <TEXTAREA NAME="..." ROWS="n” COLS="n">...</TEXTAREA> • 위의 텍스트 입력 받기 보다 긴 텍스트를 입력 받을 때 사용 • NAME은 지정된 곳(보통 CGI프로그램)으로 넘어갈 때 필드의 이름 • ROWS : 입력 영역 행의 글자수 • COLS : 입력 영역 열의 글자수 8

  9. 선택 목록 만들기 • <SELECT NAME="...">...</SELECT> • 선택 목록은 풀 다운 메뉴(Full Down Menu)를 말함 • <SELECT> 와 </SELECT>사이에 <OPTION> 태그 로 항목을 만든다. • <SELECT> 태그의 속성 • NAME : 지정된 곳(보통 CGI프로그램)으로 넘어 갈 때 필드의 이름 • MULTIPLE : 하나 이상의 선택이 가능 • SIZE : 드롭다운 항목에 표시되는 옵션의 수 • <OPTION> 태그의 속성 • SELECTED : 그 항목이 초기 선택 값으로 결정 9

  10. 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> 10

  11. 데이터 받기 • <FORM METHOD="GET 또는 POST" ...>...</FORM> • GET • QUERY_STRING 이라는 환경변수를 통해 입력 받음 길이의 제한이 있슴 • POST • 표준 입력방법에 따라 입력 받음 • 길이의 제한이 없슴 • 입력양식의 정보를 NAME=VALUE 의 형태로 보냄 • 2개 이상의 정보일 경우 '&'로 연결 • 공백(Space) : '+'로 변환 • 'CR+LF' : %아스키코드 로 변환 • CGI 프로그램에서 다신 원래대로 변환 해야함 11

  12. 데이터 보내기 • 헤더 • 웹 브라우저에게 어떤 종류의 데이터인지 명시 • HTML : content-type: text/html텍스트 : text/plain MPEG : video/mpeg JPEG : image/jpeg • Location: 문서의 위치와 이름 : 웹 브라우저에 출력할 문서를 직접 보여줌 • 헤더를 출력한 다음 한 줄을 띄어 헤더가 끝났음을 브라우저에게 알려야 함 • 데이터 : 헤더에서 정의된 문서의 종류에 따라 맞는 형식을 출력 12

  13. 환경 변수 • 웹 서버에서 환경변수 설정 • 환경 변수의 예 13

  14. 12.1.4 CGI로 방명록 만들기 • 우선 방명록의 입력양식 • 이름 : 방문자의 이름 E-mail : 방문자의 저자 우편(E-mail)주소 홈페이지: 방문자의 홈페이지 URL 남기고 싶은 말 : 방문자의 의견 • 입력양식으로부터 넘겨 받은 데이타를 파라메타 별로 나누고 원래의 데이터로 복원하는 작업이 필요 • 방문자의 기록을 HTML 문서 형태로 파일로 저장 • 방문자의 요구가 있을 경우 방문록 파일을 볼 수 있도록 함 • 데이터 베이스 시스템과 연계할 수 있다면 좀더 좋은 방명록 을 만들 수 있음 14

  15. 12.2 ASP의 개요 12.1.1 CGI의 작동원리 • Active Server Page의 약자 • 사용자가 웹페이지를 인터랙티브하게 사용할 수 있도록 고안된 스크립트 언어 • ASP를 사용하기 위해서 Windows 기반 웹서버인 IIS(Internet Information Server)가 필요 • Windows95/98/ME에서는 IIS를 지원하는 PWS(Personal Web Server)를 추가로 설치하여 가상 서버 환경을 구축 • WindowsNT에서는 Windows NT Server 4.0 Option Pack을 설치하여 IIS를 설치 • Windows2000에서는 제어판의 프로그램 추가삭제 메뉴에서 설정을 변경하여 IIS를 설치 15

  16. 서버측 스크립트 • ASP에서는 비주얼 베이직 스크립트나 자바스크립트를 사용하여 프로그램을 작성 • 서버에서 이러한 스크립트를 해석하여 HTML 태그로 변환하여 클라이언트에게 전송 • 따라서 소스코드의 보안성이 보장됨 • CGI도 ASP와 마찬가지로 서버측 스크립트이나 CGI는 클라이언트의 요청마다 프로세스가 생성되어 서버에 부담을 줌 • ASP는 쓰레드(Thread)를 이용하여 많은 사용자에도 서버에 부하가 적음 • ASP는 ADO(ActiveX Data Object)기능을 이용하여 ODBC 호환 데이터베이스를 사용할 수 있는 장점이 있음 16

  17. CGI와 ASP 작동원리의 차이점 17

  18. 12.1.2 ASP의 기본 문법과 함수 • 비주얼베이직 스크립트와 자바스크립트 사용으로 객체지향 개념 사용 • ASP의 스크립트들은HTML문서내의 <%와 %>사이에 위치 ASP 스크립트의 처리과정 18

  19. 변수 및 논리 구문 • 변수 • 다른 프로그래밍 언어와 마찬가지로 어떤 값을 저장하기 위한 곳 • 변수명은 첫글자는 항상 알파벳 문자이고 알파벳 또는 '_' 문자나 숫자를 포함한 255이내의 문자로 구성 • 명시적 선언법 : <% %>태그 안에 Dim 명령어를 사용 • <% Dim myVariable %> • 묵시적 선언법 : <% %>태그 안에 새 변수명을 사용하여 값을 부여 • <% myVariable = 1 %> • ASP의 변수형은 Variant로 설정되어 변수에 어떤 형태의 값이 주어지는가에 따라 변수형이 결정됨 19

  20. 논리 구문 • If...Then 구문 : 가장 자주 사용되는 논리 구문If 조건 Then조건을 만족할 경우 실행End If혹은 If 조건 Then조건을 만족할 경우 실행Else조건이 만족되지 않는 경우 실행End If 20

  21. For...Next 구문 : 시작값과 종료값에 따라 변수를 증감시키며 스크립트들을 반복 실행For 변수 = 시작값 To 종료값 [Step 증감값]실행문Next 21

  22. VBScript 함수 • 날짜와 시간에 관련된 함수 • VBScript는 웹페이지에서 자주 쓰이는 날짜와 시간에 관련된 정보를 제공하는 다양한 함수를 제공 22

  23. 문자열에 관련된 함수 • VBScript는 사용자와 웹페이지 간에 교환되는 문자열들의 처리를 위해 다양한 함수를 제공 • 문자열 연결하기 : & 기호를 사용하여 간단히 연결 • <%text1 = "인터넷 배움터"text2 = "입니다"text3 = text1 & text3%>이와 같은 예에서 text3에는 "인터넷 배움터입니다"란 문자열이 저장됨 • 문자열 나누기 : 문자열을 단어들로 나누어 배열에 각 단어를 저장 • HTML의 Form 태그에서 Get 메쏘드를 이용했을 경우 인자로 넘어오는 문자열 집합의 처리등에 유용 23

  24. 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등의 컬렉션을 가지고 있음 24

  25. QueryString 컬렉션 • 서버가 클라이언트로부터 GET방식으로 넘어오는 정보를 받기 위한 것 • GET방식은 웹페이지간에 정보를 주고 받을때 URL뒤에 정보를 추가하여 넘기는 방식 • QueryString은 URL에 추가되어 전달되는 정보를 처리하여 반환하는 기능 • Form 컬렉션 • QueryString 컬렉션과 유사하나 이것은 POST방식으로 정보를 주고 받을 때 사용 25

  26. Response 객체 • Response 객체 : 서버가 클라이언트(사용자)에게 정보를 전달하는 것이 주요 기능 • Write, Redirect, Flush, End, Clear등의 메쏘드을 가지고 있음 • Write 메쏘드 • 브라우저 화면에 어떤 값을 출력할때 쓰임 • <% Response.Write 출력할 내용 %>과 같이 사용하며 간단히 <%= 출력할 내용%>으로 표현할 수도 있음 • Redirect 메쏘드 • 현재 페이지에서 다른 페이지로 화면전환을 할때 사용 • <% Response.Redirect "http://kr.yahoo.com" %>와 같이 사용 26

  27. Application 객체와 Session 객체 • Application 객체 : 한 웹사이트에 관한 모든 정보를 관리하는 역할 • Session 객체 : 웹사이트에 액세스하는 각 사용자의 정보를 관리하는 역할 • Application 객체의 OnStart/OnEnd 이벤트 • OnStart 이벤트 : 사용자가 웹사이트를 처음 방문했을 때 발생 • OnEnd 이벤트 : 마지막 사용자가 웹사이트를 떠났을 때 발생 • Session 객체의 OnStart/OnEnd 이벤트 • OnStart 이벤트 : 각각의 사용자에 대해서 웹사이트를 방문했을 때 발생 • OnEnd 이벤트 : 각각의 사용자가 웹사이트를 떠났을 때 발생 • Session은 기본적으로 사용자가 웹사이트를 떠나고 20분후에 종료 27

  28. Application 객체와 Session 객체의 OnStart/OnEnd 이벤트 28

  29. 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)를 통해 다양한 데이터베이스를 이용할 수 있는 장점을 가짐 29

  30. ADO를 통한 데이터베이스의 연결 30

  31. 12.1.4 ASP 프로그램의 예 • Application/Seesion 객체의 이벤트와 Server 객체의 CreateObject 메쏘드를 이용한 간단한 ASP 카운터 작성 • 기본원리 : Application/Session 객체의 이벤트시 수행되는 Global.asa 파일을 이용하여 카운트 값을 증가시킴 • 주의사항 : 카운터 파일의 입출력시에 다수의 사용자가 동시에 파일에 접근 할 수 있으므로 Application.lock/unlock으로 한번에 한 사용자만 파일에 접근이 가능하도록 하고 파일의 입출력이 끝나면 close 명령으로 파일을 닫는것이 좋다. 31

  32. Application 객체 이벤트 • Sub Application_OnStart • 첫 사용자가 서버에 접속하였을때 한번 실행됨 • szFilename = "c:\Inetpub\wwwroot\counter.txt" • 사용자가 접속할 때 마다 카운트가 증가되고 이 카운트 값을 파일로 저장하기 위해 경로를 지정 • Set objFile = Server.CreateObject("Scripting.FileSystemObject") • 카운터 값이 저장된 파일을 사용하기 위하여 파일시스템 인스턴스를 생성 • Set objOut = objFile.OpenTextFile(szFilename, 1) • 생성된 파일시스템 인스턴스를 사용하여 위에서 지정된 파일을 읽기 모드로 열어 카운터 값이 저장된 파일의 내용을 읽을 수 있도록 한다. 파일을 열 때 첫 번째 인자로 파일의 위치를 지정하고 두 번째 인자로 읽기 모드를 뜻하는 1을 넘겨줌 32

  33. Application("count") = objOut.ReadLine • ReadLine은 파일의 한줄을 읽어 반환을 하는데 여기서는 count라는 application 전역 변수에 카운트 파일의 내용인 방문횟수를 읽어 저장함 • Application("filename") = szFilename • Session 함수에서 증가된 카운터 값을 저장하기 위해 다시 카운터 파일의 경로가 필요함으로 filename이라는 application 전역 변수에 파일의 경로를 저장 33

  34. 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만큼 증가된 카운터 값을 파일에 갱신 34

  35. 화면 출력 • Global에서 지정된 경로에 counter.txt란 파일을 생성하고 원하는 초기값을 지정 • ASP 파일의 적당한 곳에 <%= Application("count") %> 코드를 넣어 카운트값을 출력 • 한 사용자가 카운트 값을 증가하기 위해서는 새로운 Session을 받아야 하므로 새로운 브라우저로 접속하거나 세션이 종료되길 기다려 재접속해야 함 35

  36. 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를 지원하여 그래픽 이미지의 생성이 가능하고 여러 효과를 줄 수있는 기능을 가짐 36

  37. JSP • JSP(Java Server Page)는 ASP와 유사한 서버측 스크립트 언어 • JSWDK(Java Server Web Development Kit)라는 자바 서버를 사용하여 플랫폼에 독립적 • ASP와 마찬가지로 <% %>내에 스크립트 언어를 사용하며 VBScript대신 Java를 사용함 • JavaBeans라는 컴포넌트를 이용하여 다양한 기능을 수행 • JDBC라는 Sun Microsystems사에서 개발한 SQL 데이터베이스 인터페이스로 데이터베이스를 액세스 할 수 있음 37

More Related