출처 : 위키백과 



액티브 서버 페이지(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.NET은 마이크로소프트사가 개발하여 판매하는 웹 애플리케이션 프레임워크이며 프로그래머들이 동적인 웹 사이트, 웹 애플리케이션, 웹 서비스를 만들 수 있게 도와 준다. 2002년 1월에 닷넷 프레임워크 버전 1.0과 함께 처음 출시되었으며 마이크로소프트의 액티브 서버 페이지 (ASP) 기술의 뒤를 잇는다. ASP.NET은 공통 언어 런타임 (CLR)을 기반으로 작성되며 프로그래머들이 닷넷 언어가 사용된 ASP.NET 코드를 기록할 수 있게 도와 준다. ASP.NET SOAP 확장 프레임워크는 ASP.NET 구성 요소가 SOAP 메시지를 처리할 수 있게 도와 준다.


http://www.taeyo.pe.kr/lecture/Dukyoung/DYsASP02.asp


1. ASP 란 무엇인가?

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 의 실행 과정 그림을 한번 보도록 하겠습니다.

'클라이언트가 서버로 HTML 페이지를 요구하면 서버에서는 별다른 처리 없이 HTML 을 클라이언트의 웹브라우저로 보내준다' 는 것이 바로 HTML 의 처리 과정이었습니다.



ASP 도 HTML 과 비슷한 과정을 거칩니다만.. 중요한 하나의 과정이 중간에 추가됩니다.
다음 그림을 보면서 말씀드리도록 하겠습니다.



클라이언트가 서버로 페이지를 요구하는 것은 똑같습니다.
그런데 HTML 이 아닌 ASP 페이지를 요구하는 경우, 서버에서는 이것을 HTML 처럼 바로 돌려보내 주는 것이 아니라 ASP.DLL 이라는 특이한 친구를 실행시키고 나서,
그 결과물(그 결과로 작성된 HTML)을 클라이언트에게 돌려보내 준다는 것입니다.
이 한 가지의 과정의 추가로 인해서 HTML 과 ASP 는 엄청난 차이를 가지게 됩니다.

음.. 아직 잘 이해가 안가시나요...? 좋습니다.
그렇다면 앞에서 예를 들었던 '현재 시간' 을 표시하는 두 페이지의 소스를 비교해 보겠습니다.
다음의 내용을 유심히 보시기 바랍니다.

HTML
현재 시간은

2003-04-15 오전 10:08:07 입니다.
ASP
현재 시간은

<%=now%> 입니다.

전체 소스가 아닌 일부분의 소스만 올려놓았습니다. 그 이유는 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



Active Server에서 제공하는 Web Page라는 뜻인데 여기서 Active Server란 마이크로소프트 웹 서버인 IIS(InternetInformation Server)안에 존재하는 Active Server Framework를 나타내는 것으로 주로 ActiveX Script를 처리하거나 DataBase와 연동하는 역할을 합니다. ASP는 하나 이상의 스크립트를 담은 일종의 HTML 페이지로서 사용자에게 보내지기 전에 일단 웹 서버에서 처리 과정을 거치게 됩니다. ASP파일은 일반 text파일로서 메모장 등에서 생성되는 파일과 같은 성질을 가지며 확장자는 asp입니다. 따라서 메모장에서 작성한 다음 확장자 .asp로 저장을 하면 됩니다. asp파일에는 HTML 태그와 JavaScript나 VBScript등의 스크립트 코드, 그리고 ASP 코드 등을 섞어 사용할 수 있습니다. JavaScript나 VBScript 등의 스크립트 코드는 <SCRIPT>,</SCRIPT>태그 사이에 놓입니다. ASP 코드는 <% ~ %>사이에 놓입니다. 왜 ASP를 사용하나요 나모나 HTML로 홈페이지를 만들어 본 사람들은 어느 정도 시간이 지나면 자기의 생각을 홈페이지에서 마음대로 구현할 수 없다는 것에 실망을 하게 될 것입니다. 자바스크립트도 해 보고 플래쉬도 해 보지만 역시 만족스럽지 못합니다. 이 때 눈을 돌리게 되는 것이 ASP라고 할 수 있지요. 물론 대신에 CGI나 PHP라는 말도 많이 듣게 되겠지만.....그러면 사람들은 왜 ASP를 사용하고 있을까요? 

1) 사용자와의 동적인 상호작용을 원하기 때문입니다. HTML은 기본적으로 정보를 보여주기만 합니다. 하이퍼링크를 통해 사용자가 요청을 하면 웹서버가 그 요청에 응답하여 원하는 웹 페이지를 보여주는 방식으로 작업이 진행되지요. 그것도 일종의 상호작용이라고 할 수는 있겠지만 웹 서버를 운영하는 사람과 사용자가 서로 어떤 정보를 주고 받는다든지 아니면 사용자들간에 서로 정보를 주고 받는다든지 하는 일은 기본적으로 불가능합니다. ASP는 HTML로 불가능한 이런 일들을 가능하게 해 줍니다.

 2) 서버측 자원을 사용해야 하는 경우입니다. 사용자로부터 어떤 내용을 입력받아 데이터베이스에 저장해야 할 경우와 같은 건데 이럴 경우는 반드시 ASP를 사용해야만 합니다. 예를 들어 게시판 작성, 파일 업로드, ID 인증 등과 같이 서버에 어떤 정보를 저장하거나 저장된 정보를 이용해 일을 하는 경우에는 ASP를 사용해야만 합니다. 왜냐하면 HTML은 원칙적으로 클라이언트에서 번역되는 문서이기 때문에 서버의 다른 자원에 접근할 수가 없기 때문입니다.

 3) 스크립트의 안정적인 실행을 위해서입니다. 자바스크립트를 예를 들어 볼까요? 자바스크립트도 날이 갈수록 버전이 높아지고 있습니다. v1.0, v1.1, v1.2, v1.3... 그러다보면 상위 버전의 자바스크립트를 삽입한 HTML문서가 어떤 웹 브라우저에서는 의도하는대로 번역이 되지 않는 사태가 벌어질 수도 있습니다. 이럴 경우 서버에서 실행되는 스크립트라면 서버에서 HTML형태로 번역된 후 넘겨지게 되니까 어떤 웹 브라우저에서라도 잘못될 염려가 없을 것입니다. 

4) 스크립트 소스를 감추기 위해서입니다. 클라이언트측 스크립트들은 HTML 속에 포함되어 서버에서 클라이언트로 전송된 다음 클라이언트의 웹 브라우저에서 번역됩니다. 따라서 사용자들은 소스보기를 통해 스크립트의 내용을 볼 수가 있습니다. 그러나, 서버측 스크립트를 사용함으로써 개발자는 자신의 독특한 알고리즘을 감출 수가 있습니다. 물론 이런 목적을 위해 ASP를 사용한다는 것을 좋다고 할 수는 없겠지만 이런 기술로 밥먹고 사는 사람들에게는 꼭 필요한 것이 아닐까요?
















'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

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
Posted by GENESIS8

댓글을 달아 주세요