Bisakah seseorang menjelaskan dalam kurang dari 2 kalimat perbedaan antara keduanya? Ya, saya tahu Google dapat memberikan ratusan jawaban tetapi tidak satu dari 2 kalimat yang jelas :)
Bisakah seseorang menjelaskan dalam kurang dari 2 kalimat perbedaan antara keduanya? Ya, saya tahu Google dapat memberikan ratusan jawaban tetapi tidak satu dari 2 kalimat yang jelas :)
Jawaban:
HttpHandler adalah tempat kereta permintaan menuju. HttpModule adalah stasiun di sepanjang jalan.
Dua kalimat:
HttpModule akan mengeksekusi untuk setiap permintaan ke aplikasi Anda, terlepas dari ekstensi, dan umumnya digunakan untuk hal-hal seperti keamanan, statistik, pencatatan, dll.
HttpHandler umumnya dikaitkan dengan ekstensi tertentu, dan digunakan untuk hal-hal seperti umpan RSS, pembuatan atau modifikasi gambar dinamis, dan sejenisnya.
Penjelasan lebih sedikit jika itu tidak sepenuhnya jelas:
Cara saya berpikir tentang mereka - modul "pasang" ke pipa permintaan, sedangkan penangan "menangani" ekstensi file tertentu. Jadi, jika Anda memiliki situs dengan LoggingModule dan PdfHandler, keduanya akan mengeksekusi untuk permintaan ke http://example.com/sample.pdf , dan modul logging saja akan mengeksekusi untuk permintaan ke http: // example.com/page.aspx .
Ada artikel yang cukup jelas tentang perbedaan pada MSDN: Penangan HTTP dan Ikhtisar Modul HTTP
ProcessRequest
. Modul di sisi lain, akan mengeksekusi pada setiap titik dalam siklus hidup yang Anda hubungkan. Untuk skenario Anda ingin menjalankan sesuatu sebelum halaman aspx, Anda menginginkan sebuah modul. Namun Anda perlu secara manual menyaring permintaan ke halaman yang tidak .aspx
Tujuan utama dan umum dari HttpHandler dan HttpModule adalah untuk menyuntikkan logika pra-pemrosesan sebelum permintaan ASP.NET mencapai Server IIS.
ASP.NET menyediakan dua cara menyuntikkan logika dalam pipa permintaan;
contoh: Umpan RSS: Untuk membuat umpan RSS untuk situs Web, Anda dapat membuat penangan yang memancarkan XML berformat RSS. Jadi ketika pengguna mengirim permintaan ke situs Anda yang berakhiran .rss, ASP.NET memanggil penangan Anda untuk memproses permintaan tersebut.
Ada tiga langkah yang terlibat dalam membuat Handler 1. Menerapkan antarmuka IHttpHandler. 2. Daftarkan handler di file web.config atau machine.config. 3. Petakan ekstensi file (* .arshad) ke aspnet_isapi.dll di IIS.
Antarmuka IHttpHandler memiliki metode ProcessRequest dan properti IsReusable yang perlu diimplementasikan. ProcessRequest: Dalam metode ini, Anda menulis kode yang menghasilkan output untuk handler. IsResuable: Properti ini memberi tahu apakah handler ini dapat digunakan kembali atau tidak.
Anda dapat mendaftarkan pawang di file web.config seperti ini
<httpHandlers>
<add verb="*" path="*.arshad" type="namespace.classname, assemblyname" />
</httpHandlers>
Catatan: di sini kami menangani nama file apa pun dengan ekstensi arshad.
Mesin ASP.NET memancarkan banyak acara saat permintaan melewati pipa permintaan. Beberapa dari peristiwa tersebut adalah AuthenticateRequest, AuthorizeRequest, BeginRequest, EndRequest. Dengan Menggunakan HttpModule Anda dapat menulis logika di acara ini. Logika ini bisa dieksekusi saat event dijalankan dan sebelum permintaan mencapai IIS.
Ada dua langkah yang terlibat dalam membuat Modul, 1. Menerapkan antarmuka IHttpModule 2. Mendaftar modul di file web.config atau machine.config
contoh: Keamanan: Menggunakan modul HTTP, Anda dapat melakukan otentikasi khusus atau pemeriksaan keamanan lainnya sebelum permintaan mencapai IIS.
Handler HTTP adalah proses yang berjalan sebagai respons terhadap permintaan yang dibuat untuk aplikasi Web ASP.NET. Modul HTTP memungkinkan Anda memeriksa permintaan masuk dan keluar dan mengambil tindakan berdasarkan permintaan.
HttpHandler bertanggung jawab untuk menangani permintaan http dengan ekstensi sementara HttpModule merespons peristiwa siklus hidup aplikasi.
Artikel bagus tentang hal itu HttpModule-and-HttpHandlers
Referensi: INFO: Modul HTTP ASP.NET dan Tinjauan HTTP Handler
“Modul dipanggil sebelum dan sesudah pawang dieksekusi. Modul memungkinkan pengembang untuk mencegat, berpartisipasi dalam, atau memodifikasi setiap permintaan individu. Handler digunakan untuk memproses permintaan titik akhir individual. Handler mengaktifkan ASP.NET Framework untuk memproses URL HTTP individu atau grup ekstensi URL dalam suatu aplikasi. Tidak seperti modul, hanya satu penangan yang digunakan untuk memproses permintaan ”.
Handler HTTP adalah tempat sebenarnya kompilasi dilakukan berdasarkan pengaturan. seperti jika ekstensi halaman .aspx maka itu akan dikompilasi melalui system.web.Ui.Pagahandlefactory. setelah kompilasi dilakukan pada permintaan menangani HTTP akan pergi melalui modul HTTP dan IIS.
Penangan HTTP
HTTP Handler adalah proses yang berjalan sebagai respons terhadap permintaan HTTP. Jadi setiap kali pengguna meminta file itu diproses oleh penangan berdasarkan ekstensi. Jadi, penangan http khusus dibuat ketika Anda perlu penanganan khusus berdasarkan ekstensi nama file. Mari kita pertimbangkan contoh untuk membuat RSS untuk sebuah situs. Jadi, buat handler yang menghasilkan XML berformat RSS. Sekarang ikat ekstensi .rss ke custom handler.
Modul HTTP
Modul HTTP dicolokkan ke siklus hidup permintaan. Jadi, ketika permintaan diproses, itu akan melewati semua modul dalam pipa permintaan. Jadi umumnya modul http digunakan untuk:
Keamanan: Untuk mengotentikasi permintaan sebelum permintaan ditangani.
Statistik dan Logging: Karena modul dipanggil untuk setiap permintaan, mereka dapat digunakan untuk mengumpulkan statistik dan untuk mencatat informasi.
Header khusus: Karena respons dapat dimodifikasi, seseorang dapat menambahkan informasi header khusus ke respons.