Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

웹개발

이제 웹 기반 응용개발 지식은 거의 필수적으로 요구되는 시대입니다. 구체적인 웹 사이트 개발은 아니더라도 거시적인 웹 기반 서비스에 대한 지식 배양을 위해 할 것이 참 많네요 ^^

특정 웹 사이트가 어떤 언어로 구현되었는지 아는 방법???

작성자 : 박종명
최초 작성일 : 2008-06-25 (수요일)
최종 수정일 : 2008-06-25 (수요일)
조회 수 : 11911

의외로 많은 사람들이 궁금해 하는 부분인것 같다.
 
"내가 찾는 이 사이트가 과연 어떤 언어로 구현되었을까???" 하는 것이다
 
그리 대수롭지 않는 내용이지만 정리 해 보자.
 
동적 웹 사이트를 구현하기 위한 언어는 다양하다.
더 정확히 예기 하자면 어떤 언어라기 보다는 어떤 환경인지가 더 정확한 질문이 되겠다.

사실 ASP 라는 명칭도 프로그래밍 언어가 아니라 Active Server Page 의 약자로 '동적 서버 페이지' , 환경 쯤으로
해석 될 수 있다. 실제 ASP 를 위한 언어는 Visual Basic 에 기반한 Script 인 것이다.

물론 ASP.NET 도 C# 이라는 언어로 개발되는 웹 응용환경을 일컫는다
 
그러나 편의상 ASP 등을 언어라고 해 두자.
 
일단, 웹 사이트 구축을 위한 언어는 서버 기반 스크립트언어인 ASP, PHP, JSP 가 있으며 컴파일 기반인 ASP.NET 이 있다 (이전에 그리고 지금도 가끔 cgi 가 있지만 논외로 한다)

특정 웹 사이트가 어떤 언어로 구현 되었는지 알 수 있는 방법에 대해 알아보기 위한 방법은 나름 다양할 수 있다.
아래 제시된 방법을 통하면 웬만하게는 알 수 있다.

단, 웹 사이트 관리자가 언어를 숨기기 위한 극도의 정책을 펼쳤다면 .. 뭐.. 모를 수도 있다.
그러나 왜 이걸 숨기겠는가.. 생각해 보면 사이트가 asp 로 구축되었다는 걸 숨길 이유는 그리 많지 않을 것이다.
 
그럼. 이제 하나씩 살펴 보자.
 
 
1. 파일의 확장자를 확인하라
 
가장 기본적인 방법이다.
주소창에서 확인 하거나 페이지 속성 보기를 통해서 확장자를 확인하면 된다. 대부분은 여기에서 상황 종료 된다.
 
그러나,
어떤 사이트는 파일명을 기입하지 않는 경우도 많다. 예로 okjsp 사이트는 아래 처럼 링크주소에 파일명이 빠져 있다. http://www.okjsp.pe.kr/bbs?act=LIST&bbs=TOOL

이것은 해당 폴더의 Default 파일을 사용함으로써 파일명을 숨긴 것이다. 이런 경우 아래의 과정을 살펴 보면 된다.
 
 
 
2. 소스 보기 하라
 
사이트의 소스보기를 하면 html  로 랜더링된 소스코드를 볼 수 있다. 여기서 '찾기'를 통해 .asp 나 .jsp 등을 찾아 보도록 한다. 웬만한 경우 링크로 연결된 주소가 한 두개 이상은 찾을 수 있다. 
  
그러나,
네이버 처럼 .nhn 이라는 자기 회사만의 고유한 확장자를 사용하는 경우도 있다.

사실 모든 웹 서비스 환경에서는 정해진 확장자(asp와 같은)만 사용하라는 법은 없다.
자신의 사용하고 싶은 확장자를 실행엔진에 연결(매핑) 해 주기만 하면 어떤 확장자라도 사용할 수 있는 것이다.
예로, .asp 확장자 대신 .mkex 를 사용하고 싶다면 IIS 설정에서 .mkex 에 C:\WINDOWS\system32\inetsrv\asp.dll 을 매핑시켜 주면 된다. (아파치 기반의 PHP 이면 httpd.conf  설정 파일 , JSP 이면 web.xml,apping.xml 을 통해서 특수 확장자 매핑이 가능하다)  이것은 IIS 뿐만 아니라 아파치등의 웹 서버에서도 가능하다

이런 경우 아래의 과정을 살펴 볼 수 있을 것이다.
 
참고> 위와 같은 매핑을 통해 ASP나 PHP 서비스를 html 확장자로도 할 수 있다.
         php 기반 사이트에서는 이러한 설정을 가끔 볼 수 있다. 
         단, 일반 html 을 asp나 php 실행 엔진으로 매핑하면 동적 서버 프로그램이 적용되지 않은 html파일
        
(순수 client script ,html등)  까지도 매핑된 엔진을 통해 파싱되므로 성능상 좋지 않을 수 있다.
 
 
 
3. HTTP 패킷의 Header 정보를 살펴 보라
 
HTTP 의 응답 패킷의 헤더에는 웹 사이트가 구동되는 웹 서버 정보가 포함된다.
HTTP 패킷을 볼 수 있는 Tool 을 통해 Head 정보를 보면 아래와 유사하게 나온다.
(아래 그림은 Fiddler 이라는 툴로 본 헤더 정보이다)

아주 친절하게도 웹 서버 정보와 언어 정보가 나타난다.
 
단, X-Powered-By 는 안나오는 경우도 많다.
즉 웹 사이트의 웹 서버 정보는 반드시 나오지만 구현된 언어(및 환경) 정보는 안 나오는 경우도 있다.
즉 웹 서버 관리자가 보여주기 싫으면 안보여 질 수도 있다는 말이다.

이 경우에는 웹 서버의 종류로 유추 해 볼수는 있지만 섣부른 결론은 금물이다.
예로, IIS 에서도 PHP 를 돌릴 수 있기 때문이다.

 

이름
비밀번호
홈페이지
YH <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요