ساختار کارکرد ISAPI Filterها و ISAPI Extensionها
برای درک بهتر ساختار کارکرد ISAPI Filter و ISAPI Extension در ابتدای کار باید به بررسی تفاوت ها میان این دو مورد بپردازیم.دز این مطلب به طور کامل درباره تفاوت و اختلاف دو مورد ذکر شده توضیح داده شده است.
[thumbnail target=”_self” alt=”ساختار کارکرد ISAPI Filterها و ISAPI Extensionها” src=”https://www.shopingserver.net/wp-content/uploads/2017/09/iis-e1375132528382-1.png”]
ساختار کارکرد ISAPI Filter ها و ISAPI Extension ها به چه نحوی می باشد:
برای اینکه ساختار کارکرد ایندو را به خوبی درک کنیم ابتدا به بررسی تفاوت بین ایندو می پردازیم . خوب در اولین مرحله این فرآیند یک کلاینت به وب سرور یک درخواست وب تحت شبکه ارسال می کند و این درخواست توسط Kernel Mode Listener یا همان Http Listener دریافت می شود. در اینجا Kernel Mode Listener بررسی می کند که درخواست دریافت شده اجازه استفاده از منابع کدامیک از وب سایت های موجود در IIS را دارد ، سپس بررسی می کند که در این وب سایت از کدامیک از Application pool های موجود و همچنین worker Process های فعال استفاده می شود و در نهایت درخواست رسیده از طرف کلاینت را در درون صف پردازشی Worker Process یا Process Queue قرار می دهد. خوب در این مرحله بعد از اینکه نوبت به پردازش این درخواست رسید ، Worker Process مورد نظر درخواست را دریافت کرده و در اینجاست که ISAPI Filter مربوطه به این درخواست در قالب یک فایل اجرایی شروع به کار می کند . خوب همانطور که اشاره شد Filter ها در IIS می توانند درخواست ها را دریافت و آنها را تغییر دهند ، برای مثال آنها می توانند چهره URL ها را عوض کنند و یا در برخی اوقات می توانند اطلاعات مربوط به Cookie های موجود در درخواست ها را تحلیل کرده و اطلاعات مورد نظر خود را از آن دریافت کنند. توجه کنید که در این مرحله هیچگونه پردازشی بر روی درخواست انجام نشده است و در واقع این یک مرحله قبل از انجام پردازش محسوب می شود . در واقع در اینجا filter ها یک مرور اولیه بر روی درخواست ها انجام می دهند.
خوب در اینجا توجه کنید که اگر درخواست کلاینت یک درخواست صفحه وب استاتیک باشد هیچگونه نیازی به انجام پردازش نیست و IIS می داند که درخواست را بایستی به کدامیک از وب سایت های موجود ارسال کند. اما اگر درخواست کلاینت برای وب سایت های داینامیک بود که با استفاده از زبان های PHP یا ASP نوشته شده اند و دارای Managed Code باشند ، در اینجاست که درخواست ها نیاز به پردازش دارند و درخواست به Extension ها ارسال می شود تا فرآیند پردازشی آنها انجام شود. خوب در اینجا فرض کنید که در URL آدرس دارای پسوند PHP می باشد ، در اینجا بعد از انجام عملیات اولیه توسط Filter ها درخواست به Extension ای که مربوط به پردازش پسوند های PHP است ارسال می شود و این Extension با توجه به دستوراتی که به آن داده اند پردازش را بایستی بر روی این درخواست انجام دهد . بعد از اینکه فرآیند پردازشی توسط Extension انجام شد ، درخواست مجددا به سمت IIS ارسال می شود و IIS نیز درخواست کلاینت را پاسخگویی می کند.ممکن است در یک فرآیند درخواست چندین Extension همزمان فراخوانی شوند و این کاملا به نوع فایلی که توسط کلاینت درخواست شده است بستگی دارد. برای مثال ممکن است در یک درخواست یک صفحه ASP.NET فراخوانی شود که نیاز به Compression و همچنین لاگ برداری دارد ، در این زمان سه Extension همزمان برای انجام این فرآیند فراخوانی می شوند ، جالب اینجاست که شما می توانید ترتیب اجرای این Extensions ها را برای IIS مشخص کنید ، این مورد برای Filter ها نیز صادق می باشد. نکته مهمی که بایستی در نظر داشته باشید این است که همیشه Filter ها با زبان ISAPI نوشته می شوند اما Extension ها می توانند به زبان های مختلفی از جمله CGI ، ISAPI یا Fast CGI نوشته شوند.
امتیاز ما
برای امتیاز به این پست کلیک کنید
[کل: 0 میانگین: 0]