بخش های اصلی

آموزش HTTP

HTTP – Caching (ذخیره سازی در حافظه ی نهان)

معمولاً HTTP در سیستم های اطلاعاتیِ توزیع شده ایی استفاده میشه که پاسخ های caches (حافظه ی نهان)، باعث بهبود کارایی آن ها میشه.  پروتکلِ HTTP/1.1، چندین عنصر داره که برای انجام کار caching (ذخیره سازی در حافظه ی نهان) در نظر گرفته شدن.

هدف از caching (ذخیره سازی در حافظه ی نهان) در HTTP/1.1 اینه که در بسیاری از موارد نیازی به فرستادن درخواست ها نباشه و در بسیاری از موارد دیگر هم نیازی به فرستادن پاسخِ کامل نباشه.

مکانیسم پایه ایِ chache در HTTP/1.1، دستوراتی برای زمان های انقضای server-specifyها و اعتبارسنج ها اضافه کرده. از سرآیند Cache-Control برای این منظور استفاده خواهیم کرد.

سرآیند Cache-Control این امکان را به کلاینت یا سرور میده تا بتوانند در درخواست یا پاسخ های شان، دستورات مختلفی را انتقال بدن. معمولا این دستورات، الگوریتمِ caching (ذخیره سازی در حافظه ی نهان) پیش فرض را بازنویسی (override) می کنن. دستوراتِ caching (ذخیره سازی در حافظه ی نهان) در لیست هایی تعریف میشن و در این لیست ها با علامت ویرگول از هم جدا میشن. برای مثال:

Cache-control: no-cache

کلاینت می تواند در درخواست HTTP، از دستورات درخواستِ cache زیر استفاده کنه:

شماره دستور درخواست حافظه ی نهان و توضیحات
1

no-cache

حافظه ی نهان (cache) نباید بدون اعتبار سنجی با سرور اصلی، از response (پاسخ)، برای پاسخ دادن به درخوست های بعدی استفاده کنه.

2

no-store

حافظه ی نهان نباید چیزی راجع به درخواست های کلاینت یا پاسخ های سرور، ذخیره کنه.

3

max-age = seconds

نشان میده که کلاینت قادر به پذیرش پاسخیِه که در آن age از زمان تعیین شده (به ثانیه) بزرگ تر نباشه.

4

max-stale [ = seconds ]

نشان میده که کلاینت قادر به پذیرش پاسخیِه که تاریخ انقضاش بیش تر از حد باشه. اگه ثانیه ها داده شده باشن، پاسخ نباید با زمانی بیش تر از آن زمان منقضی بشه.

5

min-fresh = seconds

نشان میده که کلاینت قادر به پذیرش پاسخیِه که طول عمر جدید آن کمتر از طول عمر فعلی اش (age) بعلاوه ی زمان تعیین شده در ثانیه، نباشه.

6

no-transformentity-body

(محتوا) را تبدیل نمی کنه.

7

only-if-cached

داده ی جدیدی برنمی گردانه. حافظه ی نهان فقط می تواند سندی را بفرسته که در خودش وجود داشته باشه و نباید برای بررسی وجود کپیِ جدیدتر با سرورِ اصلی ارتباط برقرار کنه.

سرور می تواند در پاسخِ HTTP، از دستورات پاسخِ cache زیر استفاده کنه:

شماره دستورات پاسخ حافظه ی نهان و توضیحات
1

Public

نشان میده که ممکنه پاسخ هر حافظه ی نهانی در حافظه ی نهان ذخیره شده باشه.

2

Private

نشان میده که تمام یا قسمتی از پیام پاسخ برای یک کاربر در نظر گرفته شده و نباید با cache به اشتراک گذاشته شده، در حافظه ی نهان ذخیره بشه.

3

no-cache

حافظه ی نهان (cache) نباید بدون اعتبار سنجی با سرور اصلی، از response (پاسخ)، برای پاسخ دادن به درخوست های بعدی استفاده کنه.

4

no-store

حافظه ی نهان نباید چیزی راجع به درخواست های کلاینت یا پاسخ های سرور، ذخیره کنه.

5

no-transformentity-body

(محتوا) را تبدیل نمی کنه.

6

must-revalidate

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

7

proxy-revalidate

دستورِ proxy-revalidate مثل دستورِ must—evalidate است با این تفاوت که این دستور به عاملِ حافظه های نهان کاربرِ none-shared اعمال نمیشه.

8

max-age = seconds

نشان میده که کلاینت قادر به پذیرش پاسخیِه که در آن age از زمان تعیین شده (به ثانیه) بزرگ تر نباشه.

9

s-maxage = seconds

بیش ترین عمرِ (age) تعیین شده توسط دستورِ max-age یا سرآیندِ Expires (انقضاء) توسط بیش ترین عمرِ (age) تعیین شده توسط این دستور، بازنویسی میشه. حافظه ی نهانِ (cache) private (اختصاصی)، همیشه دستورِ s-maxage را نادیده میگیره.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش HTTP

HTTP

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد