انتقل إلى محتوى الدرس

How PHP Sends HTTP Response Headers كيف يرسل PHP معلومات استجابة HTTP للمتصفح

أرسل تحويلات المتصفح بـ Location ورموز الحالة وتنزيل الملفات، وامنع خطأ headers already sent عبر التخزين المؤقت ob_start في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تتكون كل استجابة HTTP من رؤوس معلومات (Headers) يتبعها سطر فارغ ثم جسم الصفحة (Body)، وتتيح دالة header() في PHP إرسال هذه الرؤوس قبل بدء إرسال محتوى الصفحة.

  • تفرض قواعد بروتوكول HTTP إرسال جميع الرؤوس قبل إرسال أي بايت من جسم الصفحة (سواء وسم HTML أو echo أو حتى مسافة فارغة قبل <?php).
  • استخدم header("Content-Type: ...") أو Content-Disposition لإخبار المتصفح بنوع المحتوى أو إجباره على تنزيل ملف.
  • افتراضياً، يؤدي تكرار استدعاء header() بنفس اسم الرأس إلى استبدال القيمة السابقة ما لم تضبط المعامل الثاني $replace على false.

تضبط استدعاءات header() الثلاثة نوع المحتوى ورؤوس الأمان في أعلى السكريبت قبل أول أمر طباعة echo.

مخطط توضيحي: محاكي رؤوس HTTP والتحويلات والتخزين المؤقت للمخرجات في PHP
PHP
<?php
header("Content-Type: text/plain; charset=UTF-8");
header("X-Content-Type-Options: nosniff");
header("X-Powered-By: CloseTag-Engine");

echo "Response headers configured before body output.\n";
echo "Headers sent? " . (headers_sent() ? "Yes" : "No") . "\n";