هنگاميكه Cache يك مدخل فاسد کش سرور hp داشته باشد، در پاسخگويي به درخواستهاي ارسالي از جانب Client ها کش سرور hp براي آن شيء، نخستين كاري كه بايد انجام دهد مطابقت دادن نسخه موجود در Cache (نسخه Stale) با نسخه اصلي موجود در Server است. (و يا با نسخه اي معتبر در يكي از Cacheهاي مياني)، تا ببيند كه آيا نسخه موجود در Cache کش سرور hp هنوز قايليت استفاده دارد يا خير؟ اين عمليات را عمليات معتبرسازي (Validating) مدخل موجود در Cache مي نامند و يكي از مكانيسم هاي اصلي مورد استفاده توسط Cache براي بهبود بخشيدن به عملكرد سايتهاست.
توجه داريم كه به صورت بالقوه دونوع هزينه و سربار در اين فرآيند مي تواند نهفته باشد. نخست سربار مربوط به ارسال پاسخ كامل از سوي Server در حالتيست كه نسخه موجود در Cache هنوز قابل استفاده است و ديگري هزينه رفت وبرگشتهاي اضافي در حالتيست كه نسخه موجود در Cache فاقد اعتبار لازم است. براي جلوگيري از پرداخت اين هزينه ها پروتكل HTTP1.1 از يك مكانيسم شرطي براي اين مورد سود جسته است. در حقيقت با استفاده از مكانيسم اعتبارسنجي مي توان پهناي باند مورد استفاده را كاهش داد.
ويژگي كليدي استفاده شده در اين پروتكل استفاده از مفهوم Cache Validator است. هنگاميكه Server اصلي يك پاسخ كامل در جواب يك درخواست توليد و ارسال مي كند، گونه هاي مختلفي از Validator ها نيز به همراه آن ارسال مي گردند كه به همراه شيء درخواستي در Cache ذخيره مي شوند. هرگاه Client (اعم از web browser يا proxy cache) درخواست شرطي براي منبعي داشته باشد كه مدخل ناظر در Cache نيز دارد، Validatorهايي به کش سرور hp نيز به همراه اين درخواست ارسال مي كند. Server اصلي در ابتدا Validatorها ي ارسالي را با Validatorهاي منبع مورد درخواست مقايسه مي كند. اگر اين Validatorها با يكديگر منطبق باشند، در پاسخ تنها يك سرآيند (بدون هيچ بدنه اي) ارسال مي كند. اين سرآيند معمولا حاوي يك كد وضعيت (Status Code) ويژه است (معمولا كد 304, Not modified). اما اگر Validatorها بر يكديگر منطبق نباشند، Server در پاسخ به درخواست Client پاسخ كامل (حاوي سرآيند و بدنه) ارسال مي كند.کش سرور hp
با اعمال اين مكانيسمکش سرور hp از ارسارل پاسخ كامل توسط Server اصلي در حالتي كه نسخه موجود در Cache هنوز معتبر است (Validatorها با يكديگر برابرند) ، و نيز از رفت و برگشتهاي اضافي در حالتيكه Validatorها بر يكديگر منطبق نيستند جلوگيري شده است.
تنها تفاوت ميان پروتكل اخير دکش سرور hpر قسمت سرآيند درخواستها است. درپروتكل HTTP1.1 در قسمت Header درخواستها برخي پارامترهاي اضافي نيز تدارك ديده شده است (كه همان Validatorها هستند). نكته ديگري كکش سرور hpه بايد به آن توجه داشت اين است كه الزامي در استفاده از Validatorها توسط Server وجود ندارد. در اين حالت اشياء ارسال در Cache ذخيره مي شوند و تا زماني كه تاريخ انقضاء آنها فرا نرسيده است در Cache معتبر هستند. مگر اينكه توسط دايركتيوها نظيرCache-control از cacheشدن آنها جلوگيري شود.
1- Last-Modified Date (تاريخ آخرين اصلاح):کش سرور hp
معمولا به عنوان Cache-Validator استفاده مي شود. يك مدخل موجود در Cache معتبر است اگر از تاريخ آخرين اصلاح آن تاكنون اصلاحي بر روي آن در Server صورت نگرفته باشد.
2-Entity Tag:
ETagها براي مواردي به كار مي روند كه استفاده از Validatorهاي زماني ممكن نباشد. اصولا در سيستم هاي توزيع شده بهره گيري از مفهوم زمان مي تواند به صورت بالقوه تناقض و ناهمگوني را در سکش سرور hpيستم ها در پي داشته باشد. لذا استفاده از اين نوع Validatorها، قابليت اعتماد و اطمينان بالاتري را نسبت به Validatorهاي زماني در پي خواهد داشت.
ديديم كه در شيوه اعتبارسنجي Validating ((Cache Server اصلي و اطلاعات مربوط به Validatorهاي خود را باکش سرور hp يكديگر مقايسه مي كنند تا مشخص كنند كه آيا هردوي آنها يك چيز واحد را مشخص مي كنند يا اشياء و منابع اطلاعاتي متفاوتي را نشان مي دهند. به صورت عادي انتظار مکش سرور hpي رود كه هرگونه تغيير در شيء متناظر با Validator موجب تغيير در Validatorناظر به آن گردد. در صورت برقراري چنين حالتي Validator را قوي (Strong Validator) مي نامند
اما ممكن است حالتي وجود داشته باشد كه Server اصلي تمايل دارد تغييرات معنايي در Validator ايجاد كند و يا تغييرات ناچيزي در شيء متناظر با Validator ايجاد كند اما اين تغييرات در Validator نمودي نداشته باشد. اين نوع Validator را ضعيف (weak) مي نامند.
ü اگر سرآيندهايي که به همراه شيء درخواستي ارسال شده اند خواهان اين باشند که شيء موردنظر در Cache server ذخيره نشودcache server آن شيء را ذخيره نمي کنند. اکثر cache serverها اشياء فاکش سرور hpقد validator را به عنوان شيء غير قابل ذخيره در Cache server مي شناشند و از ذخيره شدن آن اشياء در Cache ها ممانعت مي کنند.
ü اگر اشياء مورد درخواست امنيتی (secure) و يا نيازمند به اخذ مجوز(Authenticated ) باشند در Cache ذخيره نمي شوند .
ü يک شيء موجود در Cache "تازه" محسوب مي شود (يعني چنانچه درخواستي براي آن شيء موجود باشد و شيء مورد نظر در Cache موجود باشد بدون تطبيق آن شيء با شيء اصلي موجود در Servکش سرور hper آن شيء در پاسخ به درخواست موردنظر ارسال مي شود) اگر:
ü شيء موجود در Cache زمان انقضاء( expiry time) داشته باشد و هنوز موعد آن فرا نرسيده باشد (شيء مورد درخواست فاسد نشده باشد)
ü اگر شيء مورد درخواست در Cache فاقد اعتبار باشد (Stale شده باشد) در اين صورت عمليات معتبرسازي براي شيء درخواست شده انجام مي گيرد. به اين صورت كه پارامترهاي اعتباري شيء مورد درخواست با مجموعه پارامترهاي اعتباري شيء اصلي موجود در Server مطابقت داده شده و بر اساس کش سرور hpنتيجه اين عمليات نسخه موجود در Cache معتبر تشخيص داده مي شود و يا اينكه درصورت نامعتبر بودن نسخه اي معتبر از آن براي درخواست كننده ارسال مي گردد.کش سرور hp
ما می توانیم caching کش سرور hp را براساس محل قرار گیری به 5 دسته تقسیم کنیم.
در client caching مرورگر کاربر به وسیله ذخیره سازی داده های cache شده بر روی دیسک محلی به صورت فایل موقت یا مرورگر حافظه داخلی عمل caching را انجام می دهد.این روش دستیابی سریع به برخی اطلاعات توسط کاربر را فراهم می کند و همچنین بار شبکه و بار سرویس دهنده را کم میکند.
مزایا:کش سرور hp
1. داده هایی که بر روی کاربر محلی cache می شوند به آسانی می توانند مورد دستیابی قرار گیرند.
2. ترافیک شبکه را کاهش می دهد.کش سرور hp
معایب:کش سرور hp
داده cache شده کاملا وابسته به مرورگر است بنابراین قابلیت به اشتراک گذاری ندارد.
2-:proxy caching
در این روش از یک سرور اختصاصی استفاده می شود که این سرور اطلاعات cache شده بین کاربر و web server را در یک مکان اشتراکی ذخیره می کند که همه کاربران می توانند به طور یکسان از داده به اشتراک گذاشته شده استفاده کنند.cache server همه درخواست ها برای یک صفحه وب درخواستی را بدون اینکه درخواستی را به وب سرور اصلی سایت بر روی اینترنت پاسخ می دهد.در نتیجه دسترسی سریعتر است. اين مورد بيشتر براي شبكه هاي اينترانت بزرگ مي باشدكه بوسيله Firewall سرورهاي خود را از حمله درون اينترانت محافظت مي نمايند.
مزایا:
داده هایی که بر روی proxy cache ذخیره می شوند به راحتی می توانند مورد دستیابی قرار گیرند.
1. تعداد درخواست ها از web server کاهش پیدا می کند.
معایب:
1. ترافیک شبکه افزایش پیدا می کند.
2. تمامي كاربران شبكه مي بايست مرورگرهاي دستگاههاي خود را براي استفاده از اين سرويس پيكربندي نمايند.
3- REVERSE PROXY CACHING
بعضی proxy cache server ها می توانند به منظور کاهش درخواست هایی که web server آنها دریافت می کند در جلوی web server قرار گیرند.بدین ترتیب proxy server به در خواست هایی که بارها تکرار می شوند پاسخ می دهد بقیه در خواست ها که تکراری نیستند را به web server می فرستد. از توپولوژی caching در شبکه تجارت الکترونیک یا در مکانهایی که نیاز به مدیریت پویای منابع است استفاده می شود.
مزایا:
1. داده هایی که بر روی proxy cache ذخیره می شوند به راحتی می توانند مورد دستیابی قرار گیرند.
2. تعداد درخواست ها از web server کاهش پیدا می کند.
معایب:
ترافیک شبکه را افزایش می دهد.
4- WEB SERVER CACHING
در web server caching داده Cache شده درون web server ذخیره می شود .
امتیازات:
اصلاح کارایی سایت ها به وسیله کاهش زمان رفت و برگشت داده هایی که از پایگاه داده یا برخی از دیگر سرورها بازیابی می شوند.
معایب:
افزودن ترافیک شبکه
5- Transparent caching
اين حالت به اين دليل اسم گذاري شده است كه از نظر كاربر Cache بصورت شفاف وجود ندارد.اين توپولوژي بيشتر مورد استفاده در سرويس دهندگان اينترنت مي باشد زيرا نيازي به پيكربندي مرورگرهاي كاربرانشان ندارند.
مزایا:
1. نيازي به پيكربندي مرورگرهاي كاربر نمی باشد.
معایب:
1. در اين حالت Cache مي بايست در نقطه نهايي و حساس شبكه قرار گيرد و تمامي ترافيك شبكه از آن عبور كند.
2. از FTP پشتیبانی نمی کند.
3. فقط روی پورت 80 کار می کند.
چه اطلاعاتی قابل ذخیره سازی (caching) هستند؟
به طور کلی همه اطلاعاتی که زیاد تغییر نمی کنند مثل عکسها ٬ LOGO ها٬ .... مثلا اخبار تغییرات سهام در بورس به هیچ وجه ذخیره نمی شود چون دائما در حال تغییر است. ذخیره سازی یا عدم ذخیره سازی محتوا توسط صاحب محتوا (مدیر وب سایت یا طراح وب) به وسیله HTTP HEADER ها یا ابزارهای دیگر تعیین می شود.همچنین به وسیله ابزارهای موجود در CACHE SERVER ها توسط ISP ها نیز قابل تنظیم است.
تهیه کننده:جواد فرقانی تهرانی