2009-11-18 3 views
2

BeginRequest 이벤트 메서드에서 Response.Redirect를 사용하여 대상 페이지를 변경하는 URLRewriting 모듈이 있습니다.HTTPModule BeginRequest가 Response.Redirect 또는 Server.Transfer가되어야합니다.

  • Response.Redirect 대신 Server.Transfer 또는 Server.TransferRequest를 사용하는 것이 더 좋습니까?
  • 솔루션에 다른 HTTP 모듈이 있습니다. Server.Transfer를 사용하여 다른 모듈을 무시하거나 브라우저에 대한 왕복을 저장하는 새로운 요청 인 것처럼 서버가 시작됩니까?
  • 클라이언트가 차이점을 확인하고 서버가 어쨌든 요청을 다르게 처리합니까?

다음 질문은 리디렉션과 전송의 차이점을 다루지 만 HTTP 모듈에는 포함되지 않습니다.

편집 : 우리가 원래 경로에서 초기 요청을 이동하는 세 가지 방법이 보인다 있도록HttpContext.RewritePath 또한 모듈에 사용된다; Redirect, Transfer, RewritePath 각각; 다시 브라우저로 돌아가서 HTTP 파이프 라인의 시작으로 돌아가서 새로운 경로에서 계속 처리하십시오.

답변

6

다음은 리디렉션 vs 전송과 RewritePath의 가장 좋은 설명입니다. http://www.developerfusion.com/article/4643/implementing-http-handlers-in-aspnet/4/

요약하면; 리디렉션은 브라우저로의 라운드 트립이 필요합니다. 전송은 원래 요청 객체가 새 요청이 아니라 Post-backs에 문제가 있음을 보장하며, 재 작성은 원본 요청 객체를 잃지 만 성능면에서 최상입니다.