شاید برای شما هم پیش اومده باشه که به یه وب سایت سر بزنید و احساس کنید همه چی سریع بارگذاری میشه؛ انگار سایت منتظر بوده شما وارد بشید و اطلاعات رو آماده کنه. یا شاید شنیده باشید که سایتها برای بهینه سازی بهتر، از یه چیزی به اسم «کَش» استفاده میکنن. اگه بخوایم دقیقتر و فنیتر به قضیه نگاه کنیم، یه کد وضعیت خاصی اینجا نقش مهمی بازی میکنه که اسمش کد وضعیت 304 هست.
حالا این کد 304 چی هست و چرا انقدر مهمه؟ بیاید همین اول با یه مثال خیلی ساده شروع کنیم: فرض کنید هر بار که میخواید برید خونه ی یکی از دوستاتون، لازم باشه ازش بپرسید آدرسش چیه و چطور باید برید. خب این کار هم وقت شما رو میگیره هم وقت اون دوست بیچاره! حالا اگه شما آدرس رو یه بار جایی ذخیره کنید و هر دفعه از روی همون یادداشت برید، دیگه نیازی به گرفتن آدرس جدید ندارید. مرورگر شما هم تقریبا همین کار رو میکنه؛ اطلاعاتی که از یه سایت میخواد (مثلا عکسها و متن ها)، یه جایی ذخیره میشه که دفعههای بعد با سرعت بیشتر و مصرف پهنای باند کمتر سایت براتون باز بشه.
کد وضعیت 304 به مرورگر شما دستور میده که «نه! نیازی نیست این اطلاعات رو دوباره از سرور بگیری، همون هایی که قبلا ذخیره کردی (کش) رو نشون بده.» حالا این مفهوم به نظر ساده ست، اما همین کد میتونه تو عملکرد سایت و حتی تجربه ی کاربری خیلی تاثیرگذار باشه. توی این مقاله میخوایم دقیقتر ببینیم این کد چه کاربردهایی داره، چطور باعث بهینه سازی میشه و چه چیزهایی رو باید دربارش بدونید.

کد وضعیت 304 یکی از کدهای HTTP هست که شاید خیلیها اسمش رو شنیده باشن، ولی دقیقاً ندونن چه کار میکنه و چه تأثیری داره. این کد به نوعی پشت پرده ی سایتها عمل میکنه و به مرورگرها کمک میکنه تا اطلاعات رو سریعتر و با مصرف کمتر از سرور بگیرن. در واقع، این کد میاد وسط تا کار ما راحتتر بشه، اما دقیقاً چطور؟
برای درک بهتر این کد، بیاید یه مثال ساده بزنیم تا ببینیم این وضعیت چه نقشی در بارگذاری صفحات وب داره.
بیاید اینجوری تصور کنیم؛ اینترنت مثل یه خیابون خیلی بزرگه که پر از اطلاعات و سایت هاست و مرورگر شما هم مثل یه ماشینه که تو این خیابون حرکت میکنه. وقتی شما توی مرورگر دنبال یه چیزی میگردید و به یه سایت وارد میشید، مرورگر میره سراغ سرور اون سایت و ازش اطلاعات لازم رو میگیره؛ درست مثل این که تو خیابون از کسی آدرس یه مکان رو بپرسید. مرورگر تمام اطلاعاتی که سایت برای نمایش بهش نیاز داره، مثل تصاویر، متنها و کدها رو از سرور میگیره و اون رو به شما نشون میده. اما اینجاست که یه نکته خیلی مهم وجود داره!
حالا فرض کنید بار دوم یا سومه که به همون سایت برمی گردید. مرورگر نباید هر بار همه ی اطلاعات رو از سرور دوباره درخواست کنه؛ چون بعضی از چیزها قبلاً تو حافظه مرورگر ذخیره شدن. اینجا کد وضعیت 304 وارد عمل میشه و به مرورگر کمک میکنه تا بدونه چه چیزهایی از قبل ذخیره شده و نیازی به دریافت دوبارشون نیست.
کد 304 به زبان ساده به مرورگر میگه: «ببین! نیازی نیست دوباره بری سراغ سرور و همه چیز رو از اول بگیری؛ از همون نسخه هایی که از قبل داری استفاده کن!» به این ترتیب، مرورگر بدون نیاز به بارگیری مجدد، همون اطلاعات قبلی که تو حافظه خودش ذخیره کرده رو به شما نمایش میده – مثل عکس ها، متنها و فایلهای مختلف. این کار یه نتیجه عالی داره؛ سایت خیلی سریعتر براتون باز میشه و به جای اینکه مدت زیادی منتظر بمونید، میتونید فوراً به محتوا دسترسی پیدا کنید. از طرف دیگه، با این روش مرورگر هم حجم کمتری از اینترنت رو مصرف میکنه و نیازی نیست دوباره همه چیز رو از سرور بارگیری کنه.
پس این کد نه تنها به سریعتر شدن بارگذاری صفحات کمک میکنه، بلکه باعث صرفه جویی توی مصرف پهنای باند هم میشه، چیزی که مخصوصاً برای کاربرایی که از اینترنت موبایل استفاده میکنن یا محدودیت حجمی دارن خیلی ارزشمنده.
حالا که فهمیدیم این کد وضعیت چی کار میکنه، شاید بپرسید چرا واقعاً انقدر اهمیت داره؟ خب، جوابش توی یه کلمه خلاصه میشه: سرعت! وقتی این کد فعال باشه، مرورگر میتونه صفحات رو خیلی سریعتر بارگذاری کنه، چون دیگه لازم نیست هر دفعه همه چیز رو از سرور بگیره و منتظر بمونه. این یعنی صفحات سایت با سرعت بیشتری باز میشن و کاربر بدون معطلی به محتوای موردنظرش میرسه.
این موضوع به خصوص برای سایت هایی که ترافیک بالایی دارن مثل فروشگاههای آنلاین، شبکههای اجتماعی و وب سایتهای خبری اهمیت خیلی بیشتری پیدا میکنه. فکر کنید یه فروشگاه اینترنتی هزاران محصول و عکسهای مختلف داره؛ اگه قرار باشه هر بار که کاربر به یه صفحه جدید میره، همه چیز دوباره از سرور بارگیری بشه، هم کاربر معطل میشه و هم سرور خیلی تحت فشار قرار میگیره. ولی با این وضعیت، مرورگر از نسخههای ذخیره شده استفاده میکنه و فقط اطلاعاتی که تغییر کرده رو از سرور میگیره. اینطوری هم کاربر سریعتر به مقصد میرسه، هم سرور آزادتره و میتونه روی پردازش درخواستهای دیگه تمرکز کنه.
در واقع، این کد به نوعی به بهینه سازی منابع سرور کمک میکنه و باعث میشه سایتها بتونن کاربران بیشتری رو بدون فشار اضافی مدیریت کنن. این صرفه جویی توی پهنای باند و زمان بارگذاری، به خصوص توی ساعتهای اوج ترافیک که تعداد درخواستها خیلی زیاده، نقش مهمی داره.
کد 304 فراتر از یه تکنیک برای ذخیره سازی دادهها در مرورگره و میتونه مستقیماً روی تجربه کاربری و حتی سئو سایت تأثیر بذاره. این کد به مرورگرها اجازه میده بدون نیاز به دریافت مجدد تمام اطلاعات از سرور، محتوا رو به کاربر نشون بدن. اما این سرعت و صرفه جویی چطور میتونه به دیده شدن سایت و عملکرد کلیش کمک کنه؟
شاید براتون جالب باشه، اما این وضعیت روی سئو هم تاثیر مستقیم داره! بذارید براتون یه مثال بزنم. تصور کنید که یه کاربر توی گوگل دنبال یه مطلب میگرده و روی لینک سایت شما کلیک میکنه؛ حالا اگه سایتتون سریع و بدون معطلی باز بشه، کاربر حس خیلی خوبی پیدا میکنه. این یعنی نه تنها کاربر خوشحال تره، بلکه گوگل هم متوجه میشه که سایت شما تجربه کاربری بهتری داره و یه امتیاز مثبت برای سرعت و عملکرد خوبتون در نظر میگیره.
اینجا نقش این کد مشخص میشه! این وضعیت باعث میشه که مرورگر، به جای درخواست دوباره برای همه محتوا، از نسخههای ذخیره شده توی کش استفاده کنه. این یعنی سرعت لود بیشتر و تجربه کاربری بهتر.
علاوه بر این، گوگل و بقیه موتورهای جستجو هر از گاهی میان و سایتها رو بررسی و ایندکس میکنن. وقتی این وضعیت درست پیاده سازی شده باشه، این موتورهای جستجو لازم ندارن کل محتوا رو دوباره دانلود کنن و همون اطلاعات کش شده براشون کافیه. اینطوری سرعت ایندکس شدن صفحات سایت شما هم بیشتر میشه و باعث میشه سایتتون راحتتر و بهتر توی نتایج جستجو دیده بشه. خلاصه که با یه تنظیم درست این کد، هم کاربر خوشحالتر میشه، هم گوگل به سایت شما علاقه بیشتری پیدا میکنه.
بذارید یه مثال ساده بزنیم که قضیه روشنتر شه. تصور کنید توی یه شهر شلوغ میخواید برید یه کافی شاپ معروف. حالا اگه هر بار که وارد کافی شاپ میشید، همه آدمها هم بخوان منو رو از باریستا بپرسن، هم باریستا خسته میشه، هم صف کلی طولانی میشه و همه کلافه میشن. اما اگه شما قبلا منو رو حفظ کرده باشید و سریع سفارشتون رو بگید، دیگه نیازی به پرسیدن دوباره نیست و صف سریعتر جلو میره. کد 304 هم دقیقا همچین نقشی رو توی وب سایتها بازی میکنه؛ وقتی این کد درست کار کنه، مرورگر اطلاعات رو از کش میخونه و نیازی به درخواست دوباره از سرور نیست. در نتیجه، سایت سریعتر بالا میاد، کاربر هم از اینکه معطل نشده راضیه، و سایت شما هم کارایی بهتری داره.
کد 304 این امکان رو میده که سرور فشار کمتری رو تحمل کنه و منابع کمتری مصرف بشه، چون دیگه لازم نیست برای هر درخواست کوچیکی اطلاعات رو دوباره بفرسته. این موضوع به خصوص برای سایتهای بزرگ و شلوغ مثل فروشگاههای آنلاین یا شبکههای اجتماعی خیلی مهمه، چون باعث میشه که هم توی هزینهها صرفه جویی بشه، هم کاربران سریعتر به اطلاعاتی که میخوان دسترسی پیدا کنن.
حالا که میدونید کد 304 چطور به سئو و عملکرد سایت کمک میکنه، شاید فکر کنید این کد همیشه عالی کار میکنه، ولی بعضی وقتا ممکنه مشکلاتی هم به وجود بیاره. پس بیاید بریم ببینیم چه خطاها و مشکلاتی ممکنه پیش بیاد و چطور میشه از پسشون بر اومد.
حالا که از خوبیهای کد 304 گفتیم، وقتشه نگاهی به مشکلات و دردسرهایی که ممکنه این کد ایجاد کنه بندازیم. با این که کد 304 خیلی مفیده و میتونه به بهبود عملکرد سایت کمک کنه، ولی اگه درست پیاده سازی نشه، میتونه مشکل ساز بشه. اینجا میخوایم چند تا از مشکلات رایجی که ممکنه با کد 304 پیش بیاد رو بررسی کنیم.
یکی از رایجترین مشکلات اینه که وقتی کش مرورگر به روزرسانی نشده باشه، ممکنه کاربران نسخههای قدیمی سایت رو ببینن. مثلا فرض کنید شما تازه توی سایتتون تغییری دادید؛ شاید یه تصویر جدید اضافه کردید یا یه متن رو به روزرسانی کردید. حالا اگه مرورگر به خاطر کش کردن اطلاعات قدیمی، همون نسخه قبلی رو نشون بده، کاربر به جای دیدن نسخه جدید، همون محتوای کش شده رو میبینه. این میتونه باعث بشه کاربران نتونن به روزترین اطلاعات رو مشاهده کنن و تجربه کاربریشون خراب بشه.
یه مشکل دیگه هم اینه که اگه کد 304 به درستی تنظیم نشه، مرورگر ممکنه هر بار که کاربر وارد سایت میشه، درخواست جدیدی به سرور بفرسته. این موضوع هم باعث کاهش سرعت سایت میشه و هم منابع سرور رو به هدر میده. این موضوع به خصوص برای سایتهای بزرگ و پرمخاطب میتونه مشکل ساز باشه، چون هر بار سرور باید به درخواستهای تکراری پاسخ بده و این، هم پهنای باند رو مصرف میکنه و هم ممکنه سایت رو کندتر کنه.
خب، اگه سایتتون با مشکلات مربوط به کد 304 مواجه شد، چند تا راه حل ساده و کاربردی وجود داره که میتونه کمکتون کنه. اولین قدم اینه که حتما تنظیمات کش سایت رو بررسی کنید. باید مطمئن بشید که کش سایت درست تنظیم شده و مرورگر به محض این که تغییری تو محتوای سایت به وجود اومد، نسخه به روز رو به کاربر نشون میده.
یه روش دیگه برای جلوگیری از مشکلات کش، اینه که تو سرورتون یه تاریخ انقضا (Expiration Date) مشخص کنید. این تاریخ به مرورگر میگه که اطلاعات کش شده تا چه زمانی معتبره و بعد از اون باید نسخه جدیدی از سرور بگیره. اینجوری کاربرها مطمئن میشن همیشه آخرین نسخه از سایت رو میبینن و هیچ تغییری از دستشون نمیره.
اگه سایت شما قسمت هایی داره که به طور مرتب آپدیت میشه، مثل بخش بلاگ یا محصولات، میتونید تنظیمات کش اون قسمتها رو کوتاهتر تنظیم کنید تا مرورگر زودتر اونها رو به روزرسانی کنه. اما برای بخش هایی که کمتر تغییر میکنن، مثل تصاویر ثابت یا فایلهای CSS، میتونید مدت زمان کش بیشتری در نظر بگیرید. این کار هم باعث میشه که سایت با سرعت بیشتری لود بشه، هم منابع سرور بی جهت مصرف نمیشن.
حالا که با مشکلات و راه حل هاشون آشنا شدید، حتما میپرسید که چطور میتونید از کد 304 توی پروژههای خودتون به بهترین شکل استفاده کنید. بریم توی بخش بعدی تا بیشتر با پیاده سازی حرفه ای این کد آشنا بشیم.

اگه دنبال این هستید که سایتتون سریعتر لود بشه و تجربه کاربری بهتری به بازدیدکنندهها ارائه بدید، کد 304 دقیقا همون چیزی هست که بهش نیاز دارید. اینجا یه آموزش مرحله به مرحله آماده کردیم که بهتون یاد میده چطور کد 304 رو به درستی تو پروژههای خودتون پیاده کنید.
اولین قدم اینه که با مفهوم «کش» آشنا بشید. کش در واقع نسخه ای از محتوا و فایلهای سایت شماست که مرورگرها ذخیره میکنن تا در دفعات بعدی سریعتر به کاربر نشون بدن. مثلا اگه شما یه تصویر بزرگ توی سایتتون دارید، مرورگر بار اول که کاربر وارد سایت میشه، اون تصویر رو دانلود میکنه و ذخیره میکنه. حالا دفعه بعد که کاربر دوباره به سایت بیاد، به جای اینکه تصویر رو دوباره از سرور بگیره، از نسخه کش شده استفاده میکنه که باعث میشه لود سایت سریعتر بشه.
حالا که با کش آشنا شدید، باید تصمیم بگیرید کدوم قسمتهای سایتتون رو میخواید کش کنید. همه محتواها نیاز به کش ندارن و بهتره هوشمندانه انتخاب کنید. به طور کلی، فایل هایی مثل تصاویر ثابت (مثلا لوگو)، فایلهای CSS و JavaScript که کمتر تغییر میکنن، گزینههای خوبی برای کش شدن هستن. اما برای بخش هایی از سایت که مدام آپدیت میشن، مثل مطالب وبلاگ یا محصولات جدید، بهتره مدت زمان کش رو کوتاهتر تنظیم کنید تا کاربران همیشه به روزترین محتوا رو ببینن.
وقتی مشخص کردید چه چیزهایی باید کش بشه، حالا نوبت به این میرسه که سرورتون رو برای ارسال کد 304 تنظیم کنید. اگه از سرورهای محبوبی مثل Apache یا Nginx استفاده میکنید، خوشبختانه این سرورها ابزارهای خوبی برای تنظیم کش دارن که خیلی از کارها رو براتون راحت میکنن.
Apache: تو فایل تنظیمات سرور (که معمولا htaccess. هست)، میتونید قوانین کش رو تنظیم کنید. مثلا میتونید بگید که فایلهای CSS برای یک ماه کش بشن:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
</IfModule>Nginx: تو فایل تنظیمات Nginx هم میتونید زمان انقضا برای انواع فایلها رو تعیین کنید:
location ~* \.(css|js|jpg|jpeg|png|gif|ico)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}اینجا داریم به مرورگر میگیم که فایل هایی مثل CSS، JavaScript، و تصاویر برای مدت 30 روز کش بشن.
حالا که تنظیمات کش رو انجام دادید، بهتره امتحان کنید که این تنظیمات درست کار میکنن یا نه. برای این کار میتونید از DevTools مرورگر استفاده کنید. توی مرورگرهایی مثل Chrome، میتونید کلید F12 رو بزنید و وارد بخش Network بشید. وقتی صفحه رو رفرش میکنید، باید ببینید که فایل هایی که کش شدن، با کد وضعیت 304 نشون داده میشن. این یعنی مرورگر داره از کش استفاده میکنه و اطلاعات جدیدی از سرور نمیگیره.
یکی از بهترین روشها برای مدیریت کش، اینه که تاریخ انقضا (Expiration Date) رو برای هر فایل مشخص کنید. با این کار مرورگر میدونه تا چه زمانی میتونه از نسخه کش شده استفاده کنه و کی باید دوباره به سرور مراجعه کنه. این تنظیمات باعث میشه که کاربرها همیشه به روزترین اطلاعات رو ببینن و از نسخههای قدیمی استفاده نکنن.
اگه تغییری تو فایلهای کش شده دادید و میخواید کاربران بلافاصله تغییرات جدید رو ببینن، میتونید از نسخه گذاری فایلها استفاده کنید. مثلا اگه یه فایل CSS دارید، اسمش رو از style.css به style_v2.css تغییر بدید. اینطوری مرورگر فکر میکنه این یه فایل جدید هست و نسخه قبلی رو به روزرسانی میکنه.
خب، حالا که کد 304 رو پیاده سازی کردید، لازمه عملکردش رو مانیتور کنید. با ابزارهایی مثل Google Analytics یا Server Logs میتونید بررسی کنید که آیا مرورگرها به درستی از کش استفاده میکنن یا نه و تعداد درخواستهای به سرور کاهش پیدا کرده یا خیر. این بررسیها به شما کمک میکنه مطمئن بشید که کد 304 درسته کار میکنه و بهینه سازی سایت به خوبی انجام شده.
کد 304، اگر به درستی پیاده سازی بشه، مزایای زیادی برای سایتها و تجربه کاربران داره که به چند تا از اونها اشاره میکنیم:
حالا که از مزایای کد 304 گفتیم، بد نیست به مشکلات و معایب احتمالی اون هم اشاره کنیم. اگه کد 304 به درستی تنظیم نشه، میتونه باعث دردسر بشه:
در نهایت، میشه گفت کد 304 یکی از ابزارهای مفید برای بهینه سازی عملکرد سایت و تجربه کاربریه، اما پیاده سازی درست و تنظیمات دقیق اون لازمه.

بله، اگه تنظیمات کش درست نباشه، ممکنه نسخه قدیمی محتوا به کاربر نشون داده بشه. برای جلوگیری از این مشکل، مطمئن بشید که تنظیمات به روزرسانی کش به درستی انجام شده باشه.
کد 304 باعث میشه سرعت بارگذاری صفحات بیشتر بشه، مصرف پهنای باند کمتر بشه و تجربه کاربری بهتری فراهم کنه، که همه این موارد به طور غیرمستقیم روی سئو سایت هم تاثیر مثبت دارن.
می تونید با ابزار DevTools مرورگرها بررسی کنید. تو قسمت Network درخواستهای سایت رو چک کنید؛ اگه کد 304 نمایش داده شد، یعنی کش به درستی کار میکنه.
نه، بهتره کد 304 رو برای فایلهای ثابت مثل تصاویر و CSS که کمتر تغییر میکنن استفاده کنید. فایلهای پویا و به روز مثل مقالات یا محصولات جدید، بهتره زمان کش کوتاهتری داشته باشن.
خیر، برای این کار بهتره یا از نسخه گذاری فایلها استفاده کنید یا تنظیمات تاریخ انقضای کش رو کوتاهتر کنید تا نسخههای جدید سریعتر بارگذاری بشن.
بله، در بعضی مواقع ممکنه کد 304 با ابزارهای آماری تداخل داشته باشه، چون این ابزارها همیشه دادههای به روز میخوان. بهتره تنظیمات کش برای فایلهای مربوط به آنالیز رو کوتاهتر در نظر بگیرید.
کد وضعیت 304 شاید به نظر یه عدد ساده بیاد، اما واقعیت اینه که تاثیرش توی عملکرد سایت و تجربه کاربری خیلی مهمه. وقتی کد 304 به درستی تنظیم بشه، سایت شما سریعتر لود میشه، کاربران تجربه بهتری دارن و منابع سرور هم بهینهتر مصرف میشن. این یعنی هم تو هزینههای سرور صرفه جویی میکنید، هم کاربرها راضیتر هستن و این رضایت کاربر میتونه روی رتبه سایت شما تو نتایج گوگل تاثیر بذاره.
فرقی نمیکنه سایت کوچیکی داشته باشید یا یه وب سایت بزرگ و پرترافیک، کد 304 ابزاریه که به بهینه سازی سایت و مدیریت کش کمک میکنه. با مدیریت درستش، میتونید یه سایت سریع، کم هزینه و بهینه داشته باشید که کاربرها دوست دارن توش وقت بگذرونن.
اگه این مقاله براتون مفید بوده، حالا وقتشه یه نگاهی به تنظیمات کش سایتتون بندازید و اگه جایی نیاز به تغییر داشت، برای بهبود تجربه کاربرانتون تنظیمش کنید. یا اگه دوستان و همکارانی دارید که بهینه سازی سایت براشون مهمه، این مطلب رو باهاشون به اشتراک بذارید. شاید همون چیزی باشه که بهش نیاز دارن تا سایتشون رو بهتر و سریعتر کنن.
در نهایت، اگه سوالی یا نظری داشتید، خوشحال میشیم نظرتون رو بدونیم. ممنون که تا انتهای مقاله با ما بودید!
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: