وقتی که صحبت از یکی از مفاهیم HTTP مثل "Pragma" میشود، نباید فراموش کنیم که این یک هدر از نوع کنترل کش (Cache) است که معمولاً برای مدیریت یا تغییر رفتار کشینگ در سمت کلاینت یا سرور استفاده میشود. اما این هدر تا حدودی قدیمی شده و جای خود را به انتخابهای مؤثرتر و مدرنتری مثل Cache-Control داده است.
هدر Pragma بیشتر در مرورگرها و زیرساختهای قدیمی استفاده میشد. معمولاً توسعهدهندگان از آن برای اطمینان از بروز بودن محتوا از سمت سرور استفاده میکردند. به عنوان مثال، یک کاربرد رایج آن، تنظیم مقدار "no-cache" است که باعث میشود مرورگرها درخواستهای جدیدی را برای منابع ارسال کنند.
علیرغم اینکه هنوز هم میتوان از Pragma استفاده کرد، اما بهتر است بر روی تکنیکهای جدیدتر همچون Cache-Control که انعطافپذیری بیشتری دارند، تمرکز کنیم. این دستورات مدرن قادر به ارائه گزینههای بیشتری برای مدیریت منابع کش هستند. به عنوان مثال، میتوانند مدت اعتبار کش را مشخص کنند یا تعیین کنند که کشها در سطح سرور چه زمانی و چگونه بهروز شوند.
همچنین با گذر زمان و با پیشرفت پروتکلهای HTTP، شاهد آن هستیم که استفاده از تکنولوژیهای کهنه مثل Pragma کمتر و کمتر میشود. این موضوع به دلیل سازگاریهای بیشتر، امنیت بهتر و کارایی بیشتر تکنیکهای جدید است.
به طور کلی، اگر در حال توسعه برنامههای مدرن وب هستید، توجه به استفاده از راهحلهای مدرن و توصیههای جاری در استانداردهای RFC 9111 برای مدیریت کشینگ توصیه میشود تا از مشکلات احتمالی در سازگاری و امنیت جلوگیری شود.
GET /some-resource HTTP/1.1
Host: example.com
Pragma: no-cache
در خط اول، درخواست HTTP با روش GET
برای دریافت یک منبع به نام /some-resource
مشخص میشود. این درخواست یک درخواست رایجی برای دریافت دادهها از سرور است.
در خط دوم، Host
یا میزبان که در اینجا example.com
است مشخص میشود. این خط نشاندهنده سروری است که در حال تعامل با آن هستیم.
در خط سوم، هدر Pragma: no-cache
آمده است که به صورت ساده به مرورگر میگوید قبل از استفاده از منابع کش، به سرور مراجعه کرده و محتوای جدید را دریافت کند.