ما هو رمز استجابة الخادم 304 Not Modified؟
يشير رمز استجابة الخادم HTTP 304 Not Modified إلى أن المورد المطلوب او طلب المستخدم لم يتم تعديله منذ آخر مرة تم تحميله فيها، وبالتالي لا حاجة لنقله مرة أخرى.
بالنسبة للمتصفحات، يعني هذا أنه يمكن عرض النسخة المخبأة من المورد للمستخدم. أما بالنسبة لبرامج الزحف، مثل Googlebot، فهذا يعني أنه لا حاجة لإعادة الزحف إلى الصفحة لأن محتواها لم يتغير.
كيف يعمل رمز استجابة الخادم 304 Not Modified (ببساطة):
عندما يطلب العميل (المتصفح أو برنامج الزحف) موردًا من خادم الويب لأول مرة، يرسل الخادم المورد المطلوب (مع رمز HTTP 200 OK) إلى جانب رمز تجزئة يسمى ETag. كما يقوم العميل (المتصفح) بتسجيل وقت الطلب.
عندما يطلب العميل المورد مرة أخرى، يقوم الخادم بفحص قراءتي If-None-Match و/أو If-Modified-Since في الطلب. يُعرف هذا باسم طلب HTTP الشرطي.If-None-Match يحتوي على ETag (رمز تجزئة المحتوى).
إذا كان يطابق القيمة الموجودة على الخادم، فهذا يشير إلى أن المحتوى لم يتغير، ولا حاجة لتحميله مرة أخرى (عندما يتغير المحتوى، يتغير معه رمز التجزئة).
If-Modified-Since يحتوي على التاريخ والوقت عندما طلب العميل المحتوى آخر مرة. إذا وجد الخادم أن المحتوى لم يتغير منذ هذا التاريخ، فلا حاجة لإرسال المورد إلى العميل.
في كلا الحالتين، سيستجيب الخادم برمز HTTP 304.
عندما يتم استخدام كل من If-None-Match و If-Modified-Since، يكون لـ If-None-Match الأولوية على If-Modified-Since.
عندما يتلقى المتصفح رمز HTTP 304 Not Modified من الخادم، سيعرض النسخة المخبأة للمستخدم. لهذا السبب، يُعتبر 304 واحدًا من رموز إعادة التوجيه على جانب العميل.
لماذا يعتبر رمز الاستجابة 304 مهمًا؟
بالنسبة للمواقع الصغيرة، قد لا تكون فرص التخزين المؤقت التي يوفرها رمز HTTP 304 مهمة للغاية.
ولكن بالنسبة للمواقع الكبيرة، فإن رمز الاستجابة 304 يمثل فرصة كبيرة لتوفير ميزانية الزحف. لن يعيد Googlebot الزحف إلى الصفحات التي لم تتغير، وبدلاً من ذلك سيتمكن من الزحف إلى صفحات جديدة ومحدثة.