URL Rewrite 1.1 (URL 재작성) - (4) ASP.NET 라우팅과 URL Rewrite

지난 포스트 링크

URL Rewrite 1.1 (URL 재작성) - (1) 소개 및 설치
URL Rewrite 1.1 (URL 재작성) - (2) URL 재작성
URL Rewrite 1.1 (URL 재작성) - (3) 요청 필터링과 URL Rewrite

안녕하세요. 김대우 입니다. 이번에 소개해 드릴 내용은 ASP.NET 라우팅(Routing)과 URL Rewrite에 대한 내용입니다.

ASP.NET 라우팅이란 무엇인가?
URL Rewrite와 마찬가지로, ASP.NET에서 사용자 & 검색엔진 친화적인 URL을 이용 가능하도록 돕는 ASP.NET의 기능입니다. 대략 느낌이 오는 것처럼 .NET Managed Code와 Native Code의 차이점이 주가 될 것 같은 느낌이 들지요?

 
URL Rewrite는 왼쪽에서 보는 것처럼, HTTP 처리 파이프라인 중 “Begin Request” 영역에서 주로 처리되는 Native 처리기능을 수행합니다. 바꿔말하자면, HTTP 요청을 처리하는 절차들 중에서 비교적 앞쪽에서 일종의 Filter 형태로 동작하게 됩니다. ASP.NET 라우팅은 Managed Code로 작성되며 Resove Cache 처리와 Map Handler 처리에서 이루어지고 Execute Handler에서 역시 처리되게 됩니다. ASP.NET 라우팅 관련 내용은 아래 내용을 참고해 보세요.
링크 : ASP.NET 라우팅에 대한 상세한 정보

그렇다면, ASP.NET 라우팅과 URL Rewrite의 차이점은 무엇일까? 언제 URL Rewrite를 이용해아 하는지? - URL Rewrite는 ASP, ASP.NET, PHP나 정적 HTML 파일(Static HTML file)과 같은 웹서버에서 처리되는 파일들에 대해서 동작 가능하다. 그러나, ASP.NET 라우팅은 오직 ASP.NET 웹 어플리케이션으로만 동작 가능하다.
- URL Rewrite는 도메인명, HTTP 헤더, 서버변수(Server variables)에 대해서 처리 가능하나, ASP.NET 라우팅은 URL Path와 HTTP Method 헤더에 대해서만 처리 가능하다.
- URL rewrite는 HTTP 리다이렉트(Redirect), 커스텀 상태코드(Custome status code), 요청 중단(Abort Request)가 가능하나, ASP.NET 라우팅은 이러한 처리를 하지 못한다.
- URL Rewrite는 제공되는 정해진 Rule 엔진(정규표현식 등)만을 이용해 처리 가능해 Rule에 대한 확장이 어려우나 ASP.NET 라우팅은 개발자가 얼마든지 기능을 확장하거나 커스터마이징이 가능하다.

이렇게 ASP.NET의 라우팅과 URL Rewrite의 차이점에 대해서 알아 보았습니다. 비슷한 역할을 하는 두 서비스는 각각 사용처가 어쩌면 명확해 보이네요. 감사합니다.
참조 : IIS URL Rewriting and ASP.NET routing

지난 포스트 링크
URL Rewrite 1.1 (URL 재작성) - (1) 소개 및 설치
URL Rewrite 1.1 (URL 재작성) - (2) URL 재작성
URL Rewrite 1.1 (URL 재작성) - (3) 요청 필터링과 URL Rewrite