المحتويات

    استجابة الخادم 103 Early Hints

    ما هو كود الحالة 103 (Early Hints)

    كود الحالة HTTP 103 (Early Hints) هو كود جديد يسمح للخوادم بإرسال تلميحات مسبقة للعملاء حول الموارد التي قد تكون ضرورية لمعالجة الطلب. يهدف هذا الكود إلى تسريع تحميل الصفحة، حيث يمكن للمستعرضات بدء تحميل الموارد قبل أن ينتهي الخادم من معالجة الطلب الرئيسي.

    103 - Early Hints

    يعمل كود الحالة 103 في سياق طلبات HTTP من خلال إرسال تلميحات للموارد، مثل ملفات CSS أو JavaScript، مما يمكّن المتصفح من البدء في تحميلها في وقت مبكر، مما يؤدي إلى تقليل وقت التحميل الكلي للصفحة.

    تطبيق كود الحالة 103 في الممارسة العملية

    يمكن استخدام كود الحالة 103 لتحسين تحميل الصفحات بعدة طرق. إليك بعض الأمثلة:

    • مثال: التحميل المسبق للخطوط والأساليب

      يمكن للخادم إرسال تلميحات لتحميل الخطوط أو الأنماط قبل إرسال المحتوى الرئيسي.

    • مثال: تحديد الموارد القابلة للتخزين المؤقت

      يمكن للخادم توفير معلومات حول الموارد التي يمكن تخزينها في ذاكرة التخزين المؤقت، مما يساعد على تسريع التحميل في المرات القادمة.

    التفاعل مع المتصفحات والعملاء

    تتعامل المتصفحات مع كود الحالة 103 بشكل يسمح لها بمعرفة الموارد التي يجب تحميلها مسبقًا. هناك دعم متزايد لكود الحالة 103 في العديد من المتصفحات الحديثة، ولكن يجب التحقق من مدى دعم المتصفحات المختلفة.

    المتصفح دعم كود الحالة 103
    Chrome مدعوم
    Firefox مدعوم
    Safari مدعوم جزئيًا
    Edge مدعوم

    أمثلة على الاستخدام

    مثال على التنفيذ على الخادم باستخدام Node.js

    
    const http = require('http');
    
    const server = http.createServer((req, res) => {
        res.writeHead(103, {
            'Link': '; rel=preload; as=style',
            'Link': '; rel=preload; as=font'
        });
        res.writeHead(200, {'Content-Type': 'text/'});
        res.end('

    مرحبا بالعالم

    '); }); server.listen(3000);

    في هذا المثال، نستخدم كود الحالة 103 لإرسال تلميحات بتحميل الموارد قبل إرسال المحتوى الرئيسي.

    مثال على التنفيذ على الخادم باستخدام Python (Flask)

    
    from flask import Flask, Response
    
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        headers = {
            'Link': '; rel=preload; as=style'
        }
        return Response('

    مرحبا بالعالم

    ', status=200, headers=headers) if __name__ == '__main__': app.run()

    هنا نرسل تلميحًا لتحميل ملف CSS في نفس الوقت الذي نرسل فيه الاستجابة.

    مثال على التنفيذ على الخادم باستخدام PHP

    
    <?php
    header('Link: ; rel=preload; as=style');
    header('HTTP/1.1 200 OK');
    echo '

    مرحبا بالعالم

    '; ?>

    في مثال PHP، يتم إرسال تلميح لتحميل ملف CSS، مما يمكّن المتصفح من البدء في تحميله مبكرًا.

    المشاكل المحتملة وحلولها

    قد تواجه بعض المشاكل عند استخدام كود الحالة 103، منها:

    • خطأ: العميل لا يدعم كود الحالة 103

      في هذه الحالة، يجب وضع خطة بديلة للتعامل مع المتصفحات القديمة التي لا تدعم هذا الكود.

    • كيف تتجنب الاستخدام الخاطئ لكود الحالة 103

      يجب تجنب إرسال كود الحالة 103 في حالات لا تحتاج فيها إلى تحميل موارد مسبقًا.

    كيفية إعداد الخادم لدعم كود الحالة 103

    لتفعيل كود الحالة 103 على الخوادم، يمكن استخدام الإعدادات التالية:

    • تكوين خوادم Nginx:

      يمكن إضافة توجيهات في ملف التكوين لإرسال كود الحالة 103 في الاستجابة المناسبة.

    • تكوين خوادم Apache:

      يجب تعديل ملفات .htaccess أو ملفات التكوين لإضافة التلميحات المناسبة.