الانترنت والشبكات

ما هو HTTP وHTTPS

HTTP اتفاق يتحدث به المتصفح والخادم: يرسل المتصفح طلبا، ويعيد الخادم ردا، ورمز من ثلاثة أرقام يقول هل نجح الأمر أم لا. وHTTPS هو الاتفاق نفسه وهو يسير داخل طبقة مشفّرة، فلا أحد في منتصف الطريق يقرأ المحتوى ولا يستطيع تغييره.

  • الدرس 6 من 12
  • مبتدئ
  • مجاني، دون تسجيل

طرفا محادثة واحدة، وما يعبر الجسر

المتصفح

هو الذي يبدأ دائما. والخادم لا يتصل من تلقاء نفسه أبدا.

طلبالرؤوسرمز الحالةبدن الرد

الخادم

لا يفعل إلا الرد، ولا يتذكر عنك شيئا بين طلبين.

يعرض هذا الجسر ذهابا وإيابا واحدا. والصفحة العادية تكرره عشرات المرات، مرة للصفحة نفسها ومرات لكل صورة وخط ونص برمجي.

آخر مراجعة: تُراجع الحقائق وأسماء الأدوات في هذا الدرس مقابل مصادرها في هذا التاريخ.

ما الذي يُتبادَل فعلا حين تفتح عنوانا؟

يبني المتصفح طلبا ويرسله، ويعيد الخادم ردا. وHTTP اسم الاتفاق الذي يحدد شكل الاثنين: الطلب يقول ماذا يريد ومن أين، والرد يقول كيف جرى الأمر وما بدنه.

لكل منهما سطر أول، ثم مجموعة رؤوس، ثم بدن. والرؤوس هي موضع كل شيء تقريبا: لغة المتصفح، وهل المحتوى مضغوط، وكم يُسمح بتخزين الرد مؤقتا، وبماذا يعرّف الخادم نفسه. وحين يتصرف صفحة تصرفا غريبا، لا يكون الجواب في البدن عادة بل في الرؤوس.

وخاصية يخفيها الاسم: HTTP بلا ذاكرة. فكل طلب مستقل بالنسبة إلى الخادم، وهو من تلقاء نفسه لا يعرف أن هذا هو الشخص نفسه الذي جاء قبل ثانية. والذي يجعل تسجيل الدخول ممكنا مجرد رأس إضافي يعيد المتصفح إرساله في كل مرة. وإن عرفت هذا، فنصف التصرفات الغريبة في البقاء مسجّلا لم تعد غريبة.

والنسخ الأحدث تحمل الاتفاق نفسه على السلك بترتيب أفضل وضغط أكثر، ولا تغيّر معنى الطلب والرد. وصفحات هذا الموقع تجيب على HTTP/2، وشبكة توصيل المحتوى الجالسة أمامه تعلن في رأس منفصل أن HTTP/3 جاهز أيضا. وهذا الفارق غير مرئي للقارئ، وينبغي أن يكون كذلك.

ما هو HTTP وHTTPS؟ من رمز الحالة إلى القفل

كيف تقرأ رمز الحالة؟

الرقم الأول يقول كل شيء تقريبا وما بعده تفصيل. مئتان تعني نجح، وثلاثمئة تعني اذهب إلى مكان آخر، وأربعمئة تعني أن الخلل في الطلب، وخمسمئة تعني أن الخادم نفسه سقط. وهذه الجملة وحدها تكفي عمليا لتعرف في ملعب من الكرة.

الرمزماذا يعنيمن عليه أن يتحرك
200الرد جاهز والبدن هو ما طلبتهلا أحد
301انتقل هذا العنوان إلى مكان آخر نهائياكل من ما زال يربط العنوان القديم
404الخادم سليم ولا يملك عنوانا كهذاصاحب الموقع، أو من كتب العنوان خطأ
500الطلب كان سليما والبرنامج على الخادم أخطأصاحب الخادم وحده

ولننهِ هنا قراءة خاطئة شائعة: 404 تعني أن الصفحة لم تُوجد، لا أن الموقع معطّل. فالخادم كان سليما تماما واستطاع أن يقول بثقة إنه لا يملك مثل هذا الشيء. وبدنه ليس فارغا بالضرورة؛ فصفحة عدم الوجود في هذا الموقع صفحة كاملة بقائمة وبحث، وHTML الخاص بها يزيد على مئة كيلوبايت. فالرمز وشكل الصفحة أمران مستقلان.

وفخ دفعنا ثمنه على هذا الخادم بعينه: رمز الحالة وبدن الرد لا يصلان معا دائما. فالطبقات أمام التطبيق، أي خادم الويب وشبكة توصيل المحتوى، مسموح لها أن تستبدل بصفحتها بدن رد الخطأ. والنتيجة أن برنامجك أرسل رسالة خطأ دقيقة ورأى المستخدم صفحة عامة. فإن كنت يوما تصحّح خطأ موجودا في سجل الخادم وغائبا عن المتصفح، فاشتبه في هذا أولا.

الرقم الأول، والرمز الذي ينفع من كل عائلة

رمز الحالةثلاثة أرقام، وأولها يحسم الأمر
  • الرمز 200: نجح

    الرد جاهز والبدن هو ما طلبته.

    لا يلزم شيء
  • الرمز 301: اذهب إلى مكان آخر

    يقول هذا الرمز إن العنوان انتقل نهائيا.

    حدّث الرابط القديم
  • الرمز 404: الخلل في الطلب

    يعني أن الخادم استطاع أن يقول بثقة إنه لا يملك عنوانا كهذا.

    الخادم سليم
  • الرمز 500: الخادم سقط

    يعني أن الطلب كان سليما وأن البرنامج على الخادم أخطأ.

    صاحب الخادم وحده

هذه العائلات الأربع ليست وحدها، ولكل عائلة رموز أخرى كذلك. وهذه هي التي يصادفها صاحب موقع فعلا.

ما الذي يؤمّنه HTTPS بالضبط؟

ثلاثة أشياء لا أكثر. أولا السرية: كل من يجلس في منتصف الطريق، من المشغّل إلى صاحب واي فاي عام، لا يرى إلا مع أي نطاق تحدثت وكم من البيانات انتقل؛ لا عنوان الصفحة الدقيق ولا المحتوى. وثانيا السلامة: إن غيّر أحد بايتا واحدا في الطريق، انتبه المتصفح وقطع الاتصال. وثالثا هوية النطاق: يتأكد المتصفح من أن الخادم المجيب يحمل فعلا شهادة لذلك النطاق.

ويتم هذا عبر شهادة وقّعتها جهة إصدار خارجية، إضافة إلى مصافحة قصيرة في بداية الاتصال تبني مفتاح تشفير تلك الجلسة. وشهادة هذا الموقع يمكن النظر إليها الآن: مُصدرها Google Trust Services، وهي صالحة لـ rgb.ir ولأي نطاق فرعي منه، وعمرها تسعون يوما. وقِصر العمر مقصود؛ فالشهادة قصيرة العمر تتجدد تلقائيا، وإن تسرّب مفتاح يوما بقيت نافذة إساءة الاستعمال صغيرة.

والاتصال الذي يُنشأ الآن يُغلق على TLS 1.3. ورقم النسخة شيء لا يكاد يراه زائر، ولا تبدأ أهميته إلا حين يعجز جهاز قديم جدا عن فتح الصفحة أصلا.

وحدّ هذه الحماية: HTTPS يؤمّن الطريق فقط. فما إن تصل البيانات إلى الخادم حتى تكون قد خرجت من حماية هذه الطبقة. ونموذج مشفّر تماما يمكن أن يخزّن كلمة مرورك في ملف نصي على خادم لا يراقبه أحد. والقفل لا يقول شيئا عن ذلك ولا يدّعيه.

ما الذي لا يضمنه القفل بجانب العنوان؟

أن الموقع صادق. فالقفل يقول فقط إن الطريق مشفّر وإن الخادم المجيب يحمل شهادة لهذا النطاق. أما من يجلس خلف ذلك النطاق، وهل المتجر حقيقي، وأين ينتهي المال الذي ترسله، فلا يدّعي عنه شيئا.

وهذا ليس رأينا. فإحدى أكبر جهات إصدار الشهادات المجانية في العالم كتبت وهي تشرح سياستها أن شهادة التحقق من النطاق تؤكد فقط أن مفتاحا عاما يخص نطاقا و«لا تقول شيئا آخر عن محتوى الموقع أو عمّن يديره»، وأضافت أن هذه الشهادات لا تحمل أي معلومة عن سمعة موقع أو هويته الواقعية أو أمانه. أي أن المُصدر نفسه يصرّح بأن القفل ليس ختم موافقة على المحتوى.

والنتيجة العملية مرّة وبسيطة: يستطيع موقع مزيّف أيضا أن يحصل على شهادة صالحة في دقائق ويعرض القفل. فإن كان معيارك للثقة بصفحة دفع هو وجود القفل، فقد اخترت بالضبط المعيار الذي يستطيع المهاجم توفيره بأسهل ما يكون.

والذي ينبغي أن تنظر إليه فعلا هو اسم النطاق، حرفا حرفا: في أي عنوان، الجزء المهم هو الواقع مباشرة قبل أول شرطة مائلة. وأي شيء يمكن أن يوضع قبله. وموقفنا: لا تنظر إلى القفل، انظر إلى النطاق، وإن وصل الرابط برسالة نصية أو عبر تطبيق مراسلة فلا تنقره أصلا واكتب العنوان بنفسك.

ولنذكر استثناء ليكتمل الأمر: غياب القفل ما زال تحذيرا حقيقيا. فصفحة تعرض اليوم نموذج دخول أو دفع بلا HTTPS غير جديرة بالثقة بلا نقاش. القفل شرط لازم وليس كافيا.

ما يقوله القفل، وما يبقى تحت الماء

الطريق مشفّر والشهادة لهذا النطاق

هذا كل شيء. وهو الوحيد الذي يدّعيه القفل.

خط الماء: القفل لا يقول شيئا عن أي من هذه
  • من يجلس خلف هذا النطاق

    الموقع المزيّف أيضا يحصل على شهادة صالحة في دقائق.

  • هل محتوى الصفحة صادق أم كاذب

    جهة الإصدار لا تقرأ المحتوى ولا تدّعي أنها قرأته.

  • أين ينتهي المال الذي ترسله

    وصفحة دفع مشفّرة قد تكون صفحة دفع شخص آخر.

  • كيف تُحفظ البيانات بعد وصولها

    حماية هذه الطبقة تنتهي في اللحظة نفسها التي تصل فيها البيانات إلى الخادم.

هذا الرسم لا يتحدث عن غياب القفل. فغياب القفل على نموذج دخول أو دفع ما زال تحذيرا جادا.

كيف تنقل موقعا إلى HTTPS نقلا صحيحا؟

الحصول على الشهادة أسهل جزء، وغالبا تنجزه الاستضافة نفسها. والذي يفسد العمل هو الثلاثة التالية.

أولا، كل طلب HTTP يجب أن يذهب إلى النسخة الآمنة من العنوان نفسه برمز 301، لا إلى الصفحة الأولى. فإرسال كل شيء إلى الصفحة الأولى أبسط الطرق وأسوأها، لأنه يقتل كل رابط قديم. وثانيا المحتوى المختلط: إن كانت الصفحة آمنة لكنها تستدعي صورة أو نصا برمجيا من عنوان غير آمن، فإما أن يحجبه المتصفح أو يحذّر منه. وثالثا رأس HSTS، الذي يقول للمتصفح ألا يجرّب HTTP لهذا النطاق مرة أخرى؛ وقيمته على هذا الموقع سنة واحدة.

وثمة كلفة لا يتحدث عنها أحد: كل قفزة زائدة ذهاب وإياب. فعلى هذا الموقع، من يكتب العنوان القديم rgb.ir/seo/ بلا https يأخذ قفزتين، أولاهما من HTTP إلى HTTPS والأخرى من العنوان القديم إلى الجديد، وبعدها فقط يصل أول بايت من الصفحة. وهذا لا يهم زائرا واحدا؛ لكنه يهم رابطا يتكرر في الإعلانات والقوائم وتواقيع البريد. والقاعدة بسيطة: حيثما تملك أنت التحكم، اربط العنوان النهائي لا القديم.

وحدّ ذلك: HSTS التزام لا إعداد قابل للتراجع. فالمتصفح الذي رأى الرأس يرفض الاتصال بنطاقك عبر HTTP حتى انتهاء المدة، ولو انتهت صلاحية شهادتك. فإن لم تكن واثقا أن HTTPS دائم، فابدأ هذا الرأس بمدة قصيرة.

وحالة الشهادة وتاريخ انتهائها لأي نطاق يمكن رؤيتها في ثوان بلا تثبيت شيء: أداة فحص SSL المجانية عندنا تفعل هذا بالضبط. أما مفهوم الشهادة وأنواعها فقد كُتب فيه مقال ما هو SSL، وهذا الدرس لا يكرره عمدا.

المسار السريع مع الذكاء الاصطناعي

الطريقة المعتادة للتحقق من سلامة عنوان هي أن نفتحه وننظر. أما الطريقة السريعة فأن تأخذ المخرجات الخام للرؤوس مرة واحدة وتُلزم النموذج اللغوي بالحكم منها وحدها. والفارق أن عينك لا ترى إلا الصفحة النهائية، بينما تُظهر تلك المخرجات كل قفزة وسيطة وكل رمز حالة وكل طبقة لمست الرد في الطريق.

  1. خذ المخرجات بنفسك ولا تطلبها من النموذج. سطر واحد يكفي: curl -sSIL http://example.com/path/. وابدأ بـ http لا https، وإلا فلن ترى القفزة الأولى وهي الأهم.
  2. قبل اللصق، احذف رأسين: Set-Cookie وAuthorization. فهذان اعتمادان حيّان ويبدوان غير ضارَّين داخل مخرجات أمر.
  3. سلّم الوصفة أدناه مع المخرجات الخام واطلب الجواب منها وحدها. ويكفي هنا نموذج سريع رخيص؛ فهذه قراءة لا حكم، والاختيار الحالي في كل فئة محدَّث في مرجع الذكاء الاصطناعي عندنا.
  4. قابل الجواب بالمخرجات. فأي رأس يسمّيه النموذج وليس في نصك هو اختراع ويُطرح في الحال.

وصفة جاهزة للنسخ

دورك أخصائي HTTP. احكم من المخرجات أدناه وحدها ولا تضف إليها شيئا.

المخرجات الخام (curl -sSIL، بعد حذف Set-Cookie وAuthorization):
{الصق هنا}

ما أريد معرفته: {مثلا لماذا رابطي القديم بطيء}

اكتب خمسة أشياء:
١. كم قفزة حتى الرد النهائي، ولكل قفزة رمزها والعنوان الذي ذهبت إليه.
٢. هل صُرفت قفزة على الانتقال من HTTP إلى HTTPS وحده. وإن كان كذلك، فقل كم ذهابا وإيابا أضاف ذلك.
٣. هل رأس Strict-Transport-Security موجود، وما مدته.
٤. من الرؤوس، أي الطبقات لمست الرد: خادم الويب، أو مخزن الصفحة المؤقت، أو شبكة توصيل المحتوى. واقتبس لكل منها الرأس الذي يدل عليها.
٥. تغيير واحد أستطيع أنا إجراءه لتقليل عدد القفزات.

قواعد: الرد 1xx مثل 103 ليس قفزة ولا يُحسب. ولا تكتب رأسا غير موجود في النص أعلاه. وإن لم تكفِ البيانات لأحد البنود فاكتب «غير موجود في هذه المخرجات» ولا تخمّن.

قبل أن تثق بالناتج: أمران عليك أنت تأكيدهما. الأول أن كل رأس يسمّيه النموذج يجب أن يظهر حرفيا في مخرجاتك؛ وهذا الفحص الوحيد الذي يمسك الاختراع، ويستغرق عشر ثوان. والثاني أنه إن اقترح الجواب حذف قفزة، فتأكد قبل أن تلمس شيئا أن ذلك العنوان القديم غير مربوط في مكان ما: فحذف تحويلة يحوّل كل رابط قديم إلى 404، والتراجع عن ذلك صعب.

الذكاء الاصطناعي في هذا العمل

في هذا الموضوع، النموذج اللغوي جيد جدا في عمل وسيئ جدا في آخر. جيد في القراءة: سلّمه مخرجات رؤوس خاما أو سلسلة تحويلات فيشرح في ثوان ماذا يقول كل سطر، وهو ما كان تعلّمه يستغرق أسابيع. وسيئ في الحكم: لا يستطيع أن يقول لك هل الموقع جدير بالثقة، لأنه يرى بالضبط الإشارتين اللتين صنعهما المهاجم.

أدوات تساعد فعلا

  • Claude مصنوع لقراءة المخرجات الخام للأوامر، وهذا الدرس استعماله الأساسي: تلصق الرؤوس وتسأل ماذا يفعل كل منها. وإيران ليست في قائمة أنثروبيك للدول المدعومة، فلا طريق رسمي للتسجيل أو الدفع.
  • Gemini يعمل جيدا لترجمة مصطلحات HTTP إلى الفارسية وشرح المفاهيم بالأمثلة. وصفحة غوغل نفسها تقول إن تطبيق جيميناي متاح في أكثر من مئتين وثلاثين دولة ومنطقة، وإيران ليست في تلك القائمة.

اين ينقلب ضدك

الخطر الأساسي هنا ليس ما يجهله النموذج، بل ما يقوله بثقة تامة. وله شكلان محددان. الأول أن تسأل النموذج «هل هذا الموقع آمن؟» فيستدل لك بأنه ما دام فيه قفل والنطاق يبدو معقولا فهو آمن على الأرجح. وكلتا الإشارتين وفّرهما المهاجم، وجهة إصدار الشهادات نفسها تقول صراحة إن الشهادة لا تحمل أي معلومة عن سمعة الموقع أو هويته الواقعية. وكشف الاحتيال ليس عمل نموذج لغوي، وأي جواب يعطيه تخمين بنبرة واثقة. والثاني أن يخترع النموذج اسم رأس أو معنى رمز حالة؛ وأنثروبيك نفسها تسمّي هذا الاختراع الواثق هلوسة في وثائقها وتكتب عن تقليله، أي أن الصانع يعدّه ضعفا حقيقيا. والعلاج للحالتين واحد: لا يُسمح للنموذج إلا بشرح ما وضعته أنت أمامه.

المصادر: Let's Encrypt: the CA role in fighting phishing and malware Anthropic: reduce hallucinations Anthropic: supported countries Google: where Gemini Apps are available

حدود هذه النصيحة

هذا الدرس عن الاتفاق لا عن شراء الشهادة وتركيبها. فاختيار نوع الشهادة وإصدارها وتجديدها عمل آخر يتناوله مقال ما هو SSL وصفحة شهادة SSL، ولم يُكرَّر هنا عمدا. ولنذكر حدّين آخرين صراحة: كل رقم هنا قيس من خادمنا نحن في أوروبا ولا يقول شيئا عن الطريق الذي يقطعه زائر إيراني، لأن هذا الخادم لا يراه. ومع أن حافتنا تعلن جاهزية HTTP/3، فإننا لم نقس اتصالا كاملا عليه، فلا يدّعي هذا الدرس شيئا عن سرعته.

من عملنا نحن

أربعة أمور قيست على هذا الموقع بعينه في ٧ سبتمبر ٢٠٢٦، وكلها قابلة للتكرار. أولا، من يكتب العنوان القديم rgb.ir/seo/ بلا https يأخذ قفزتي ٣٠١، الأولى من HTTP إلى HTTPS بالمسار نفسه والثانية إلى العنوان الجديد، ولا يصل أول بايت من الصفحة إلا بعدهما. وثانيا، شهادة هذا الموقع أصدرتها Google Trust Services، وهي صالحة لـ rgb.ir ولأي نطاق فرعي منه، وعمرها تسعون يوما. وثالثا، يُغلق الاتصال على TLS 1.3، وتجيب الصفحة على HTTP/2، ويحمل رأس HSTS قيمة سنة واحدة. ورابعا، صفحة عدم الوجود في هذا الموقع صفحة كاملة يزيد HTML الخاص بها على مئة كيلوبايت، ولهذا قال النص إن رمز الحالة وشكل الصفحة أمران مستقلان. وصورة القياسات الأربعة الخام مسجّلة في تقرير هذه الجلسة.

اسئلة متابعة حقيقية

هل يرفع HTTPS الموقع في غوغل؟

الصياغة الصحيحة للسؤال هي: اليوم HTTPS ليس ميزة، بل غيابه ضرر. فكل المواقع الجادة عليه، فهو ليس ما يقدّمك على أحد؛ لكن المتصفح يعلن غيابه للمستخدم بجانب العنوان، وهذا وحده يؤثر في الثقة وفي عدد من يغادرون. فإن كان موقع ما زال على HTTP، فسبب الانتقال هو المتصفح لا الترتيب.

ما الفرق بين ٣٠١ و٣٠٢؟

الرمز ٣٠١ يقول إن النقل دائم، و٣٠٢ يقول إنه مؤقت. والفارق عمليا أن محرك البحث مع ٣٠١ يستبدل بالعنوان القديم الجديدَ، ومع ٣٠٢ يبقي القديم لأنه يفترض أنك ستعود يوما. والقاعدة بسيطة: إن لم تكن عائدا فضع ٣٠١.

عندي شهادة لكن المتصفح يقول إن الاتصال ليس آمنا تماما؛ لماذا؟

في أكثر الحالات هو المحتوى المختلط: فُتحت الصفحة على HTTPS لكنها تستدعي صورة أو نصا برمجيا من عنوان HTTP. والسببان التاليان شائعان أيضا: صدرت الشهادة لنطاق آخر، مثلا للنسخة بلا www بينما جاء الزائر بـ www؛ أو انتهت صلاحيتها. والثلاثة يمكن تمييزها في ثوان بـأداة فحص SSL.