کد وضعیت 304 درhttp در مجموع کدهای http کد ۳۰۴ وجود دارد. این کد مربوط به زمانی است که وقتی مرورگر درخواست کاربر را به سرور ارسال می نماید از سرور میخواهد تا اطلاعات مربوط تغییرات آخر فایل یا منبع را نیز به مرورگر برگرداند. در ادامه این آموزش به توضیح بیشتر این کد پرداخته شده
![کد وضعیت 304](https://fibiland.com/wp-content/uploads/2023/09/304@2x1-1024x512.png)
HTTP (پروتکل انتقال ابرمتن) یک پروتکل مهم برای ارتباط بین مرورگر و سرور وب است. هنگامی که یک مرورگر وب درخواستی را به یک سرور وب میفرستد، سرور وب به دلایل مختلفی ممکن است به جای ارسال مجدد منبع درخواست شده، کد وضعیت 304 را برگرداند. در این مقاله، ما به بررسی کد وضعیت 304 و چگونگی عملکرد آن در ارتباطات وب میپردازیم.
Table of Contents
معرفی کد وضعیت 304
کد وضعیت 304 با نام “Not Modified” شناخته میشود و در HTTP 1.1 تعریف شده است. این کد وضعیت به مرورگر اطلاع میدهد که منبع مورد درخواست تغییر نکرده است و میتواند نسخه ذخیرهشدهای که در حافظه ذخیرهسازی موقت مرورگر (Cache) قرار دارد، را استفاده کند.
با استفاده از کد 304، میتوان زمان و پهنای باند را صرفهجویی کرد، زیرا مرورگر نیازی به درخواست مجدد منبع از سرور ندارد. این مسئله به بهبود کارایی و سرعت بارگذاری صفحات وب کمک میکند
![304](https://fibiland.com/wp-content/uploads/2023/09/download-9.jpg)
چگونگی کارکرد کد وضعیت 304
وقتی یک مرورگر وب یک منبع را برای اولین بار درخواست میکند، سرور وب آن منبع را به همراه کد وضعیت 200 (OK) ارسال میکند و مرورگر آن را در حافظه ذخیرهسازی موقت خود ذخیره میکند. سپس درخواستهای بعدی برای همان منبع به سرور ارسال میشوند.
وقتی مرورگر درخواست دیگری برای همان منبع را ارسال میکند، سرور ابتدا بررسی میکند که آیا منبع تغییر کرده است یا خیر. برای این منظور، مرورگر درخواست خود را با اطلاعاتی که از نسخه قبلی در حافظه ذخیرهسازی موقت دارد، همراه میکند. این اطلاعات شامل هدرهای If-Modified-Since
و If-None-Match
است.
اگر سرور تشخیص دهد که منبع تغییر نکرده است، به جای ارسال دوباره منبع، کد وضعیت 304 را باز میگرداند. مرورگر سپس از حافظه ذخیرهسازی موقت خود نسخه قبلی منبع را بازیابی کرده و نمایش میدهد. این عملکرد به بهبود کارایی و سرعت بارگذاری صفحات وب کمک میکند، زیرا ترافیک شبکه و بار سرور را کاهش میدهد.
بیشتر بدانید:معرفی انواع HTTP Status code در وب سایت ها
رفع کد وضعیت 304
برای رفع این کد وضعیت، عموماً نیازی به تداخل مستقیم از سوی توسعهدهندگان نیست. برخی از روشها و نکات کلی که میتوانند به بهبود عملکرد و استفاده صحیح از کد وضعیت 304 کمک کنند عبارتند از:
- مطمئن شوید که منابع شما Cacheable هستند: منابعی که از سمت سرور با کد وضعیت 304 ارسال میشوند، باید قابل Cache کردن باشند. این به این معناست که سرور باید به مرورگر اطلاعاتی در مورد نحوه Cache کردن منابع (مانند هدرهای Cache-Control و Expires) ارسال کند.
- استفاده صحیح از هدرها: توسعهدهندگان باید هدرهای
Last-Modified
وETag
را به درستی تنظیم کنند تا سرور و مرورگر بتوانند منابع تغییر کرده را تشخیص دهند. این هدرها به مرورگر کمک میکنند تا منابع را با نسخههای جدیدتر مقایسه کنند. - برنامهریزی Cache از سوی مرورگر: مرورگرها به طور خودکار مدیریت Cache را انجام میدهند. اما توسعهدهندگان میتوانند با استفاده از هدرهای Cache-Control ویژگیهای خاصی را برای Cache تعیین کنند، مانند مدت زمان اعتبار Cache.
- بررسی مشکلات کنترل Cache: در برخی موارد، ممکن است مشکلات در تنظیمات سرور یا CDN (شبکه توزیع محتوا) باعث ایجاد اشتباهی کد وضعیت 304 شود. در این صورت، باید تنظیمات مرتبط با Cache در سرور یا CDN را بررسی و تصحیح کنید.
- آزمایش مرتبتر: برای اطمینان از صحیح عملکرد Cache و کد وضعیت 304، آزمونهای مکرر و تستها انجام دهید تا مشکلات ممکن در زمینه Cache را شناسایی کنید و رفع کنید.
به طور کلی، ارور 304 نیازی به رفع مستقیم ندارد و باید به عنوان یک اطلاعیه از عملکرد صحیح Cache در وبسایت یا برنامهی وبتان در نظر گرفته شود. توسعهدهندگان باید تنظیمات Cache و هدرهای مرتبط را به دقت بررسی کرده و بهینهسازیهای لازم را انجام دهند تا به کارایی بهتری در ارتباط با مرورگرها دست پیدا کنند.
![304 http](https://fibiland.com/wp-content/uploads/2023/09/download-11.jpg)
5 نکته درباره کد وضعیت 304
کد “Not Modified”:
وضعیت 304 به عنوان “Not Modified” شناخته میشود. این به معنای این است که منبع مورد درخواست تغییر نکرده است و مرورگر میتواند از نسخه ذخیرهشده در حافظه ذخیرهسازی موقت (Cache) خود استفاده کند.
صرفهجویی در منابع:
با استفاده از وضعیت 304، میتوان زمان و پهنای باند را صرفهجویی کرد. مرورگر نیازی به درخواست مجدد منبع از سرور ندارد و میتواند نسخه قبلی را از حافظه ذخیرهسازی موقت خود بازیابی کرده و نمایش دهد.
هدرهای مرتبط:
برای اطلاعات دقیقتر و ایجاد ارتباط مناسب بین مرورگر و سرور، دو هدر اصلی مرتبط با کد 304 وجود دارند. هدر Last-Modified
تاریخ آخرین تغییر منبع را مشخص میکند و هدر ETag
یک مشخصه یکتا برای منبع ایجاد میکند.
کارایی وب:
کد وضعیت 304 بهبود کارایی وب را ایجاد میکند. با استفاده از این کد وضعیت، ترافیک شبکه کاهش مییابد و بار سرور کاهش مییابد، که به بهبود سرعت بارگذاری صفحات وب کمک میکند.
![سرعت وب](https://fibiland.com/wp-content/uploads/2023/09/download-10.jpg)
استفاده در حافظه ذخیرهسازی موقت
وضعیت 304 اغلب در تکنولوژیهای حافظه ذخیرهسازی موقت (Caching) استفاده میشود. سرورها و مرورگرها از حافظه ذخیرهسازی موقت برای ذخیره نسخههای اخیر منابع استفاده میکنند تا از تعداد درخواستهایی که به سرور ارسال میشوند کاسته شود و وقت و منابع مصرفی کاهش یابد.
با درک کد 304 و نحوه استفاده از آن، میتوانید به بهبود کارایی وب و تجربه کاربران در وبسایتها و برنامههای وب خود کمک کنید.