출처 : 위키백과
액티브 서버 페이지(Active Server Page, 줄여서 ASP)는 마이크로소프트사에서 동적으로 웹 페이지들을 생성하기 위해 개발한 서버 측 스크립트 엔진이다. 최초 버전은 Windows NT 4.0 옵션 팩(1998 상반기)에 포함하여 인터넷 정보 서비스(IIS)에 추가되는 식으로 출시되었고, 나중에 윈도 서버(윈도 2000 서버의 최초 버전 이후로)의 무료 구성 요소로 포함되었다. ASP.NET이 ASP를 대체하고 있다.
ASP 2.0은 6개의 내장 객체들을 제공한다: Application, ASPError, Request, Response, Server, Session. 예를 들어, Session은 페이지 간의 변수의 상태를 유지하는 쿠키 기반의 세션을 나타낸다. 동적 스크립팅 엔진의 컴포넌트 객체 모델(COM) 지원은 ASP 웹사이트들이 DLL들 같은 컴파일 된 라이브러리들을 함수처럼 접근 가능하게 해 준다.
.asp 파일 확장자를 가진 웹페이지는 ASP를 사용하지만, 몇개의 웹 사이트들은 보안 목적으로 스크립팅 언어를 숨기는 경우도 있다 (예를들면 더 일반적인 .htm 또는 .html 확장자를 사용하기). .aspx 확장자를 가진 페이지들은, ASP에서 서버측 스크립팅 보다 더 빠르고 강력하게 해주는, ( 마이크로소프트의 .NET 프레임워크 기반의) ASP.NET으로 컴파일되었고, 구동 시에 해석되지만; ASP.NET 페이지들은 여전히 일부 ASP 스크립팅을 포함하고 있을 것이다. ASP.NET의 도입은 원천 기술에 대해서는 오랜 ASP용어를 사용하였다. 프로그래머들은 대부분의 ASP페이지를 VBScript를 사용하여 작성하였지만, 그 외에도 동적 스크립팅 엔진은 @Language 지시문이나 <script language="language" runat="server"> 구문으로 선택하여 사용 할 수 있다. JScript(마이크로소프트가 구현한 ECMAScript)가 보통 사용가능한 다른 언어이다. PerlScript(Perl의 파생언어)와 다른 것들도 타사 제공 형태로 동적 스크립팅 엔진에 설치해서 사용 가능하다.
마이크로소프트의 액티브 스크립팅 표준과 호환되는 어떠한 스크립팅 언어라도 ASP에서 사용할 수 있다. 기본 스크립팅 언어(고전 ASP에서)는 VB스크립트이다.: 브라우저가 웹 서버에서 ASP 파일을 요청하면 서버는 프로세서를 호출하고, 프로세서는 요청된 파일을 읽고 스크립트 명령을 실행하여 결과를 웹페이지 형태로 브라우저에 전송한다.
1 <html>
2 <body>
3 <% Response.Write "Hello World!" %>
4 </body>
5 </html>
더 단순한 형태로는 다음과 같다.
1 <html>
2 <body>
3 <%= "Hello World!" %>
4 </body>
5 </html>
이 예는 "Hello World!"를 HTML 문서의 body로 출력한다.
여기에는 액세스 데이터베이스로 연결하는 방법에 대한 한 예가 있다.
<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")
Set rsUsers = Server.CreateObject("ADODB.Recordset")
rsUsers.Open "SELECT UserID FROM Users", oConn,1,3
%>
ASP.NET
ASP 란 'Active Server Pages' 의 약자이며, 우리 말로 번역하자면
'동적으로 서버에서 작동하는 페이지' 정도로 해석될 수 있을 것 같습니다.
동적(動的, Active) 이라.. 그렇다면 반대로 '정적(靜的, static)' 인 페이지도 있다는 뜻일까요?
맞습니다. 정적인 페이지도 있습니다. 우리가 알고 있는 HTML 이 바로 그것입니다.
'다 좋은데.. 정적인건 뭐고 동적인건 뭔지 말을 해줘야 할거 아냐!!'
라고 외치시는 분들을 위해(한문 공부를 하십셔~) 잠시 그 개념의 차이를 말씀 드리겠습니다.
아주 간단하지만 의미 있는 예를 하나 들어보도록 하지요.
페이지를 하나 만들어서.. 이 페이지를 보고 있는 '현재 시간' 을 보여주려고 합니다.
이것을 HTML 과 ASP 페이지로 하나씩 만들어 보도록 하겠습니다.
두 페이지의 '새로고침' 링크를 살포~시 클릭하시면 그 차이를 발견하실 수가 있습니다.
어때요? 발견하셨나요?
그렇습니다. HTML 페이지에서는 새로고침을 아무리 눌러도 현재 시간이 변하지 않습니다만,
ASP 페이지에서는 새로고침을 누를때마다 현재 시간이 바뀌는 것을 보실 수가 있습니다.
이유는 간단합니다.
HTML 은 언제 어느곳에서 보더라도 우리가 작성한 모습 그대로일 수 밖에 없습니다.
다시 말해, HTML 페이지 안에는 시간을 '2003-04-15 오전 10:08:07 입니다.'
라고 직접 입력할 수밖에 없다는 말씀입니다.
이렇게 하면 화면에 보여지는 시간이 현재 시간인 것처럼 보여지지만,
실제로는 미리 입력되어 있는 '이미 작성된 문자열' 에 불과하다는 것을 알 수 있습니다.
그렇기 때문에 HTML 을 변하지 않는, '정적(靜的, static)' 이라고 표현하는 것이지요.
좋습니다.. 그렇다면 ASP 는 과연 무언가 다른걸까요?
그렇습니다. ASP 는 HTML 과는 확실히 다릅니다. (두둥~~)
ASP 는 어떤 특별한 과정을 거쳐서, 작성자의 의도대로 HTML 을 바꿀 수 있는 것입니다.
우리는 지난 시간에 '서버' 와 '클라이언트' 를 공부하면서 HTML 의 작동 원리에 대해서 잠시 생각해 보았습니다. 기억이 나시는지요? (안나신다굽쇼? -_-a)
좋습니다. 친절한 설명을 위해서 HTML 의 실행 과정 그림을 한번 보도록 하겠습니다.
ASP 도 HTML 과 비슷한 과정을 거칩니다만.. 중요한 하나의 과정이 중간에 추가됩니다.
다음 그림을 보면서 말씀드리도록 하겠습니다.
그런데 HTML 이 아닌 ASP 페이지를 요구하는 경우, 서버에서는 이것을 HTML 처럼 바로 돌려보내 주는 것이 아니라 ASP.DLL 이라는 특이한 친구를 실행시키고 나서,
그 결과물(그 결과로 작성된 HTML)을 클라이언트에게 돌려보내 준다는 것입니다.
이 한 가지의 과정의 추가로 인해서 HTML 과 ASP 는 엄청난 차이를 가지게 됩니다.
음.. 아직 잘 이해가 안가시나요...? 좋습니다.
그렇다면 앞에서 예를 들었던 '현재 시간' 을 표시하는 두 페이지의 소스를 비교해 보겠습니다.
다음의 내용을 유심히 보시기 바랍니다.
|
|
전체 소스가 아닌 일부분의 소스만 올려놓았습니다. 그 이유는 HTML 과 ASP 의 차이를 말씀드리려는 데에는 이 소스만으로도 충분할 것 같네요. (사..사실은 귀찮아서... -_-a)
HTML 페이지에서는 보시다시피 시간을 직접 입력 해버렸습니다.
그러므로 위에서 말씀드렸던 것처럼 백날~ 새로고침을 해도 시간은 바뀌지 않습니다.
하지만 ASP 는 <%=now%> 라는 약간 낯선 형태의 무언가가 등장했습니다.
자세한 설명은 다음에 드릴 예정입니다만 이것의 의미를 간략하게 말씀드리자면,
'ASP 안에서 현재 시간을 의미하는 now 라는 함수를 호출하여 출력하세요' 라는 뜻이 됩니다.
(모든 HTML 태그가 '<' 로 열고 '>' 로 닫는 것과 마찬가지로, ASP 는 '<%' 로 열고 '%>' 로 닫아야 합니다. 이것은 ASP 문법의 기본이므로 반드시 알아두시기 바랍니다.)
때문에 페이지를 '새로 고침' 하면, HTML 페이지는 단순히 입력된 내용만을 전달해 주지만,
ASP 페이지는 페이지 안에 있는 ASP 소스(<%=now>)를 'ASP.DLL' 에 통과시킨 다음,
그 결과(현재 시간)를 HTML 형식으로 받아서 클라이언트에게 출력해 주게 되는 것입니다.
이 과정을 그림으로 표현하자면 다음과 같습니다.
어떻습니까? 이제 ASP 라는 친구가 조금은 친숙해 지셨나요?
그렇다면.. 이제 ASP 의 탄생 배경에 대해서 잠시 살펴보도록 하겠습니다.
(솔직히 이런 역사 시간 같은 이야기는 지루한 게 사실이지만, 그래도 언제, 누가, 어떻게 만들었는지 정도는 상식으로 알아두시는 것도 좋지 않을까요? ^^)
ASP는 마이크로소프트(Microsoft) 사에 의해서 1996년 7월 16일에 데날리(Denali) 라는 코드명으로 공식적으로 발표되었습니다. 이것의 베타 버전은 1996년 11월에 배포되었고, ASP 정식 버전 1.0 이 세상에 선보이게 된 것은 1996년 12월 12일이었습니다.
마이크로소프트 사에서 1997년 3월에 IIS 웹서버를 제공하면서부터 ASP 는 더욱 많이 알려지게 되었으며, 98년에는 IIS 4.0 과 퍼스널 웹 서버 4.0 (PWS 4.0)을 발표하게 됩니다.
이 둘은 ASP 버전 2.0을 지원했으며, ASP 1.0 에 비해 많은 성능 향상을 가져오게 됩니다.
(실제로 우리 나라에서 많은 개발자들이 ASP 에 관심을 가지게 된 때가 바로 이때였습니다.)
Windows 2000 이 배포되면서 마이크로소프트 사는 그 안에 IIS 5.0 과 ASP 3.0 을 포함하였습니다. 또한 IIS 5.0 은 Windows 2000 운영체제 안에 자연스럽게 통합 되었습니다.
(그래서 Windows 2000 을 설치하셨다면 좀 더 편하게 ASP 를 공부하실 수가 있습니다.)
2. ASP 는 어디에 쓰이는 물건인가?
도대체 이 ASP 를 가지고 무엇을 할 수가 있을까요?
'이 홈페이지 너무 멋진데요' 라고 한마디 써주고 싶은데, HTML 로 만든 페이지에서는 아쉽게도 그것이 불가능한 것이지요. ASP 의 필요성은 바로 여기서 나타납니다.
ASP 페이지에서는 방문한 사람들(클라이언트)에게 글을 입력받아서 그것을 저장소 - 이것을 '데이터베이스' 라고 합니다 - 에 차곡차곡 저장한 후에, 클라이언트들이 그 페이지를 보여달라고 요청할때 그 저장소(데이터베이스)에 저장되어 있는 내용을 꺼내와서 보여주게 됩니다.
그렇기 때문에 ASP 로 만든 페이지에서는 새로운(최근에 작성된) 글을 보는 것이 가능합니다.
이런 '게시판' 기능 뿐 아니라.. ASP 가 할 수 있는 일은 상당히 다양합니다.
다음이나 세이클럽 같은 사이트에 가서 여러분은 아이디와 비밀번호를 입력하고,
그것이 맞을 때에는 사이트 안으로 로그인 해서 들어갈 수가 있습니다.
이런 회원 인증을 담당하는 페이지 역시 ASP 로 작성 가능합니다.
http://blog.daum.net/ssc1978/13852608
'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글
HTML 기초 (0) | 2016.02.21 |
---|---|
비즈니스 로직(Business logic)? (0) | 2016.02.14 |
웹서버(Web Server) / 웹 서버 어플리케이션(WSA) (0) | 2016.02.14 |
웹 프로그래밍 기초 (0) | 2016.02.14 |
ASP(Active Server Page) (0) | 2016.01.28 |
IIS란? (0) | 2016.01.25 |
댓글을 달아 주세요