Birisi her ikisi arasındaki farkı 2'den az cümlede açıklayabilir mi? Evet, Google'ın yüzlerce cevap verebileceğini biliyorum, ancak 2 açık cümlede bir değil :)
Birisi her ikisi arasındaki farkı 2'den az cümlede açıklayabilir mi? Evet, Google'ın yüzlerce cevap verebileceğini biliyorum, ancak 2 açık cümlede bir değil :)
Yanıtlar:
HttpHandler, istek treninin yönlendirildiği yerdir. HttpModule yol boyunca bir istasyon.
İki cümle:
Bir HttpModule, uzantısına bakılmaksızın uygulamanıza yapılan her istek için yürütülür ve genellikle güvenlik, istatistik, günlük kaydı vb. Şeyler için kullanılır.
Bir HttpHandler genellikle belirli bir uzantıyla ilişkilendirilir ve RSS akışları, dinamik görüntü oluşturma veya değiştirme ve benzeri şeyler için kullanılır.
Bu tamamen açık değilse biraz daha açıklama:
Onları düşünme şeklim - modüller istek kanalına "eklenir", işleyiciler ise belirli bir dosya uzantısını "işler". Bu nedenle, bir LoggingModule ve PdfHandler içeren bir siteniz varsa, her ikisi de http://example.com/sample.pdf isteği için yürütülür ve yalnızca günlük modülü http: // isteği için yürütülür example.com/sayfa.aspx .
MSDN'deki fark hakkında oldukça net bir makale var: HTTP İşleyicileri ve HTTP Modüllerine Genel Bakış
ProcessRequest
. Diğer taraftan modül, bağladığınız yaşam döngüsünün herhangi bir noktasında yürütülür. Aspx sayfasından önce bir şey çalıştırmak istemeniz için bir modül istiyorsunuz. Ancak .aspx olmadığını sayfalara istekleri dışında elle filtreye ihtiyaç
HttpHandler ve HttpModule'un ana ve ortak amacı, ASP.NET isteği IIS Sunucusuna ulaşmadan önce ön işleme mantığını enjekte etmektir.
ASP.NET, istek satırına mantık enjekte etmenin iki yolunu sağlar;
örnek: RSS özet akışları: Bir Web sitesi için RSS özet akışı oluşturmak için, RSS biçimli XML yayan bir işleyici oluşturabilirsiniz. Kullanıcılar sitenize .rss ile biten bir istek gönderdiğinde, ASP.NET isteği işlemek için işleyicinizi çağırır.
İşleyici 1'i oluşturmanın üç adımı vardır: IHttpHandler arabirimini uygulayın. 2. İşleyiciyi web.config veya machine.config dosyasına kaydedin. 3. (* .arshad) dosya uzantısını IIS'deki aspnet_isapi.dll ile eşleyin.
IHttpHandler arabiriminin uygulanması gereken ProcessRequest yöntemi ve IsReusable özelliği vardır. ProcessRequest: Bu yöntemde, işleyici için çıktı üreten kodu yazarsınız. IsResuable: Bu özellik, bu işleyicinin yeniden kullanılıp kullanılamayacağını belirtir.
İşleyiciyi web.config dosyasına böyle kaydedebilirsiniz
<httpHandlers>
<add verb="*" path="*.arshad" type="namespace.classname, assemblyname" />
</httpHandlers>
Not: burada arshad uzantılı herhangi bir dosya adını kullanıyoruz.
ASP.NET altyapısı, istek kanal hattından istek geçtikçe birçok olay yayar. Bu olaylardan bazıları AuthenticateRequest, AuthorizeRequest, BeginRequest, EndRequest. HttpModule kullanarak bu olaylara mantık yazabilirsiniz. Bu mantık, olaylar tetiklendikçe ve istek IIS'ye ulaşmadan önce yürütülür.
Modül oluşturmada iki adım vardır: 1. IHttpModule arabirimini uygulama 2. Modülü web.config veya machine.config dosyasına kaydedin
örnek: Güvenlik: HTTP modülünü kullanarak, istek IIS'ye ulaşmadan önce özel kimlik doğrulaması veya diğer güvenlik denetimlerini gerçekleştirebilirsiniz.
HTTP işleyicisi, ASP.NET Web uygulamasına yapılan bir isteğe yanıt olarak çalışan işlemdir. HTTP modülleri, gelen ve giden istekleri incelemenize ve isteğe bağlı olarak işlem yapmanıza olanak tanır.
HttpModule, uygulama yaşam döngüsü olaylarına yanıt verirken HttpHandler http isteğini uzantı ile işlemekten sorumludur.
Güzel makale aboute it -and-HttpHandlers
Başvuru: BİLGİ: ASP.NET HTTP Modülleri ve HTTP İşleyicilerine Genel Bakış
“Modüller, işleyici yürütülmeden önce ve sonra çağrılır. Modüller, geliştiricilerin her bir isteğe müdahale etmesini, katılmasını veya değiştirmesini sağlar. İşleyiciler ayrı uç nokta isteklerini işlemek için kullanılır. İşleyiciler ASP.NET Framework'ün tek tek HTTP URL'lerini veya bir uygulama içindeki URL uzantı gruplarını işlemesini sağlar. Modüllerden farklı olarak, bir isteği işlemek için yalnızca bir işleyici kullanılır ”.
HTTP işleyicisi, ayarlamaya bağlı olarak gerçekte derlemenin yapıldığı yerdir. sayfa uzantısı .aspx ise, system.web.Ui.Pagahandlefactory ile derlenir. derleme HTTP tanıtıcısında yapıldıktan sonra HTTP modülü ve IIS üzerinden gidecek.
HTTP İşleyici
HTTP İşleyicisi, bir HTTP isteğine yanıt olarak çalışan işlemdir. Kullanıcı her dosya istediğinde, uzantıya göre işleyici tarafından işlenir. Bu nedenle, dosya adı uzantısına göre özel işlem yapmanız gerektiğinde özel http işleyicileri oluşturulur. Bir site için RSS oluşturma örneğini ele alalım. Bu nedenle, RSS formatlı XML üreten bir işleyici oluşturun. Şimdi .rss uzantısını özel işleyiciye bağlayın.
HTTP Modülleri
HTTP Modülleri bir isteğin yaşam döngüsüne eklenir. Bu nedenle, bir talep işlendiğinde, talebin ardışık düzenindeki tüm modüller içinden geçirilir. Bu nedenle genellikle http modülleri aşağıdakiler için kullanılır:
Güvenlik: İstek yerine getirilmeden önce bir isteğin kimliğini doğrulamak içindir.
İstatistikler ve Günlüğe Kaydetme: Modüller her istek için çağrıldığından, istatistik toplamak ve bilgi kaydetmek için kullanılabilirler.
Özel üstbilgi: Yanıt değiştirilebildiğinden, yanıt için özel üstbilgi bilgileri eklenebilir.