3) 웹을 위한 장소 (홈 디렉토리, 가상 디렉토리)
ASP를 시작하면서 아무리 이야기해도 지나치지 않는 것은 바로 ASP라는 페이지만의 특이성이다. 다시 말하면, ASP 페이지는 그 페이지를 보기 위해서는 반드시 서버를 거쳐야 한다는 것이다.
일반적인 HTML 페이지는 사용자의 브라우저가 그 html 코드를 해석해서 보여주기 때문에 서버에서 해주어야 할 일이 없다. 단지 요청한 페이지만을 건네주기만 하면 되는 것이다. 이것은 html페이지만 있다면 어디서든지 브라우저로 그 페이지를 읽을 수가 있다는 이야기이기도 하다. 즉, html페이지를 다운받아서 자신의 로컬 하드에 카피해 놓고 언제라도 더블클릭하여 브라우저로 볼 수가 있다는 이야기이다.
그러나, ASP 페이지는 다르다.
이 페이지는 반드시 웹 서버를 거쳐서 어떤 서버의 처리를 거치고 난 다음에야 그 결과를 볼 수가 있다. 즉, html 페이지는 다운 받아서 아무때나 로컬에서 확인할 수가 있지만 ASP 페이지는 그런 식으로 확인할 수는 없다는 것이다.
왜? 그 이유는(이미 알고있다고 말하셔도 필자는 다시 이야기해야만 한다. 그만큼 중요한 이야기이니 말이다)
ASP 페이지는 반드시 웹 서버를 거치고 난 다음에야 확인이 가능한 특이한 페이지이기 때문이다. 만일 여러분이 asp 페이지의 이 특이성을 이해하지 못하고, 여러분의 로컬 하드에서 asp 페이지를 더블클릭해서 실행하려 한다면 다음과 같은 다운로드 화면을 만나거나, 연결된 에디터를
만날 것이다. 이를테면 메모장, 포토샵, 아니면 다른 에디터 등등 말이다.

그렇다면, 이 페이지를 실행하기 위해서는 어떻게 해야 하는가? 그것이 바로 현재 여러분이 궁금한 점이며, 바로 지금 이야기하고자 하는 것이다.
ASP 페이지는 반드시 그를 실행하기 위해서는 웹서버를 통과해야 한다. 즉, 웹 서버가 인식할 수 있는 특별한 장소에 위치해야 한다는 것이다.
- 홈 디렉토리 -
MS의 웹 서버가 설치된 서버들은 모두 기본적으로 C:\inetpub\wwwroot 라는 폴더가 존재한다. 바로 이곳이 그 특별한 구역인 것이다. 이 곳은 여러분이 브라우저를 열고 자신의 http://ip주소 혹은http://localhost(자신이 웹 서버인 경우에만 가능한 방법) 라고 치면 연결이 되어지는 곳이다. 바로 여러분의 웹 서버의 디폴트 디렉토리인 것이다. 이 곳은 웹 브라우저에 ip 주소를 입력함으로써 접근이 가능하며, 마치 인터넷을 통해서 접근하는 것과 같이 접근하는 것이 된다. 이렇게 접근하면 웹 서버로 접근하는 것이며, 동시에 asp
페이지를 요청할 수가 있다. 이 곳이 바로 홈 디렉토리라 불리우는 곳이다.
이 폴더내에 위치한 asp 페이지들은 사용자가 브라우저를 열고 http://서버의 ip주소/*.asp 라고 접근하게 되면 서버를 거쳐서 자신의 코드를 해독하고 그 결과를 html코드로 만들어 사용자에게 건네어주게 된다. 바로 이곳에 있는 asp페이지들만이 서버를 거칠 수가 있는 것이다.
참고 : 웹서버에서 ASP페이지를 해석하는 역할을 담당하는 녀석으로 ASP.DLL이 존재한다.
다음의 그림을 보고 다시 한번 정리를 하자. 아래의 그림은 아주 간단하지만 위의 모든 내용을 다 포함하고 있는 태오가 만든 상당히 함축적이고, 집약적인 유용한 그림이 아닐 수가 없다. 그런가?

asp 페이지의 위치는 서버의 C:\inetpub\wwwroot\ 의 하위에 존재해야만 한다.(일단은 그렇다) 그 곳이 바로 웹을 위해 준비된 특별한 구역이기 때문이다. 위의 그림에서는 C:\inetpub\wwwroot\ 라는 곳에 x.asp가 위치하고 있다. 이제 사용자가 접근한다고 가정해보자.
사용자(여기서의 사용자에는 나 자신도 포함이 되어진다)는 브라우저를 열고 그 x.asp페이지에 접근하기 위해서 http://서버의 ip주소/x.asp 라고 입력하여 접속을 시도한다.
그렇게 되면 웹 서버는 그 요청을 받아들여 서버의 C:\inetpub\wwwroot\ 내에서 x.asp페이지를 찾는다. 찾아지면 그 페이지가 asp 페이지임을 인식하고 IIS 서버의 ASP.DLL에게로 보낸다.
그리고, ASP.DLL에 의해서 해석이 되어진 페이지를 그제서야 사용자에게 돌려주는 것이다. HTML로 만들어서 말이다. 그러면 사용자는 그 페이지를 브라우저를 통해 확인해 볼 수가 있게 된다.
이제 여러분은 전체적인 돌아가는 구성이 머리 속에 확연히(?) 그려졌을 것이다. 이것은 매우 중요하다. 적어도 필자의 경험상 이 상황의 이해는 코딩보다도 중요했다. 위의 구성을 이해한다면 왜 사용자들이 asp코드를 볼 수가 없는지, asp코드가 어째서 안전하고, 보호되어질 수가 있다는 것인지를 이해할 수가 있다. 클라이언트에게 돌아가는 것은 단지 번역된 html코드에 불과하기 때문이다.
이 시점에서 "에~~ 소스를 볼 수 있는 방법이 있는데~"라고 선수를 치시고 싶은 독자가 있을런지도 모르겠다. 그렇다면 잠시 기다리자. 그 이야기가 곧 상영될 예정이다. 몇 페이지만 기둘리자. 이 Chapter가 끝나기 전에 이 이야기는 여러분을 찾아뵐 것이다.