wait لطفا صبر کنید
صفحه اصلی  » مقالات
1395/12/08
7187
10

دوره حیات برنامه های تحت وب

دانستن این مطلب که سرور وب با درخواست های دریافت شده از کاربران برنامه تحت وب چگونه رفتار میکند و برای تولید هر یک از صفحات وب و ارسال پاسخ برای کاربران چه مراحلی را طی میکند، به درک بهتر و تولید کاراتر سیستم های تحت وب کمک شایانی میکند.

دانستن این مطلب که سرور وب با درخواست های دریافت شده از کاربران برنامه تحت وب چگونه رفتار میکند و برای تولید هر یک از صفحات وب و ارسال پاسخ برای کاربران چه مراحلی را طی میکند، به درک بهتر و تولید کاراتر سیستم های تحت وب کمک شایانی میکند.

در مطلب کوتاه زیر مراحل رسیدگی به یک درخواست توسط برنامه وب بررسی شده است. در واقع می توان گفت مراحل زیر نمایش دهنده دوره حیات برنامه وب می باشند. یعنی از زمانی که برنامه اولین درخواست را از مرورگر کاربر دریافت کرده و به آن رسیدگی می کند.

در ادامه مطلب، دوره حیات صفحات asp.net مورد بررسی قرار گرفته است.

مرحله اول:

کاربر درخواست خود را به IIS ارسال می کند. سپس IIS بر اساس پسوند صفحه درخواستی کاربر، بررسی می کند که درخواست کاربر را به کدام یک از dllهایش ارسال کند (به این دسته از dll ها dllهای ISAPI می گویند). به عنوان مثال اگر صفحه درخواستی یک صفحه ‘.aspx’ باشد، ان درخواست به ‘aspnet_isapi.dll’ ارسال می شود.

مرحله دوم:

اگر این اولین درخواست ارسال شده به سایت باشد، کلاسی به اسم application manager یک قلمرو برنامه (application domain) برای اجرای وب سایت ایجاد می کند. در هر سرور برای هر یک از سایتها یک قلمرو جداگانه داریم. بدین ترتیب سایتها از یکدیگر ایزوله شده و اجرای سایتها با یکدیگر تداخل پیدا نکرده و اگر مشکلی در اجرای یک سایت ایجاد شود بر روی دیگر سایتها تاثیر منفی نخواهد گذاشت.

مرحله سوم:

در این مرحله App domain ایجاد شده در مرحله قبل، یک محیط میزبانی (hosting environment) برای برنامه ایجاد خواهد کرد. منظور از محیط میزبانی، کلاس ها، توابع و سرویس هایی هستند که برای مدیریت برنامه وب استفاده می شوند. از شی های اصلی ایجاد شده در این مرحله می توان به شی های httpcontext، httprequest و httpresponse اشاره کرد. این سه شی (که httpcontext پدر دو تای دیگری است)، شامل تمام اطلاعات لازم برای یک درخواست http می باشد (اطلاعاتی مثل ادرس درخواست کننده، مرورگر درخواست کننده و ...).

مرحله چهارم:

پس از ایجاد شی های اصلی در مرحله قبل، یک شی httpapplication، برای رسیدگی به درخواست دریافتی از کاربر ایجاد می گردد. اگر در برنامه وب خود یک فایل global.asax دارید یک شی ‘global.asax’ نیز ایجاد می گردد. شی global.asax فرزند httpapplication می باشد.

توجه شود که برای اولین درخواست دریافت شده توسط برنامه وب، یک شی http application ایجاد می شود. ولی برای درخواست های بعدی از همان شی دوباره استفاده می گردد. البته در صورت نیاز دوباره شی ایجاد می گردد.

مرحله آخر:

در آخر شی httpappliction مامور پردازش درخواست می شود. و پاسخ مناسب برای کاربر را ایجاد و به سمت مرورگر کاربر ارسال می کند.

 

 

ادامه مطلب به دوره حیات صفحات asp اشاره می کند. آگاهی از دوره حیات یک صفحه asp به استفاده بهتر از متدها کمک می کند. طبق دانش مایکروسافت یک صفحه asp.net شامل دوره حیات زیر می گردد.

1)      درخواست صفحه (page request)

2)      شروع (start)

3)      مقداردهی صفحه (page initialization)

4)      بارگذاری (load)

5)      اعتبارسنجی (validation)

6)      هندل کردن رویداد postback (postback event handling)

7)      تحویل صفحه (rendering)

8)      عکس عمل بارگذاری (unload)

از آنجا که دوره حیات واقعی صفحه از مرحله start شروع می گردد، می توان درخواست صفحه را جزئی از دوره حیات ندانسته و برای به یاد ماندن دوره حیات به صورت زیر کلمه اختصار U (SILVER YOU) SILVER را تعیین کرد.

S-Start              I-Initialize        L-Load              V-Validate                   

E-Event Handling          R-Render          U-Unload

حال ببینیم در هر مرحله چه اتفاقاتی می افتد:

مرحله درخواست صفحه: هر چند این مرحله را جزئی از دوره حیات صفحه در نظر نگرفتیم ولی در این مرحله یک اتفاق مهم می افتد و ان اینکه دات نت بررسی می کند که ایا نیاز است تا صفحه درخواست داده شده ایجاد و به سمت کاربر رهسپار گردد و یا اینکه یک نسخه از آن را در کش داشته و بدون عملیات اضافه آن را تحویل کاربر می دهد.

مرحله شروع: شی های httpcontext و httprequest و httpresponse با مقادیر موجود در درخواست http (درخواستی که از سمت مرورگر کاربر دریافت شده است) پر می شوند. همچنین بررسی می گردد که ایا درخواست یک درخواست جدید است یا یک postback. بدین ترتیب خصوصیت postback مقداردهی میشود.

مرحله مقداردهی: در این مرحله کنترل های صفحه قابل دسترسی می شوند و به هر کدامشان ID تخصیص داده می شود (IDهایی که در صفحه asp به کنترلها داده ایم). تم ها و master page  هم به صفحه اعمال می گردند. اگر درخواست از نوع postback باشد، مقادیر کنترلها در این مرحله بارگذاری نمی شوند.

مرحله بارگذاری: در این مرحله اگر درخواست از نوع postback باشد، مقادیر کنترلها در کنترلها بارگذاری می شوند (مقادیر کنترلها در viewstate ذخیره شده بوده اند. در مطالب بعدی به viewstate هم اشاره خواهیم کرد).

مرحله تحویل: قبل از تحویل صفحه درخواستی به کاربر درخواست دهنده، اطلاعات صفحه و مقادیر کنترلها در viewstate ذخیره می شوند (برای نگهداری مقادیر کنترلها)

اگر می خواهید در صفحه html ارسالی به کاربر تغییراتی ایجاد کنید، می توانید در این مرحله انجام دهید. به عنوان مثال خواندن مقادیری از پایگاه داده و نمایش آنها از طریق یک htmltable .

مرحله تخلیه کردن: وقتی تمام صفحه به کاربر تحویل داده شد، منابع صفحه از جمله شی های httpresponse و httprequest خالی می شوند. احتمالا در این مرحله می توان دیگر منابع در دست صفحه (از جمله بافرهای مربوط به دیتابیس و فایل ها) را آزاد کرد.

در هر یک از مراحل بالا، یک رویداد صدا زده می شود. بدین ترتیب می توانید با هندل کردن هر کدام از رویدادها، هر یک از مراحل بالا را به دست گرفته و کد مورد نظرتان را در آن مرحله وارد کنید. به عنوان مثال می توانید در مرحله مقدار دهی کنترلها زمان اجرا ایجاد کنید.

 

تماس با ما

ایمـیل : I N F O @ D E P N A . C O M
 دفتر تهران : خیابان کارگر شمالی - بعد از مسجد النبی - خیابان ابراهیمی (17) - پلاک 140
تلفن:88019001-021
 دفتر قم : خیابان 45 متری صدوقی - 20 متری فجر - خیابان دانش - کوی 14 - پلاک 10
تلفن:32906868-025