هل تقوم ملقمات الويب بحجز موقع ويب واحد فقط؟
عندما تبدأ أولاً في التعرّف على كيفية ملائمة أسماء النطاقات وعناوين IP وخوادم الويب والمواقع الإلكترونية معًا ، قد يكون الأمر مربكًا أو غالبًا في بعض الأحيان. كيف يتم إعداد كل شيء للعمل بسلاسة؟ إن وظيفة SuperUser Q & A اليوم تحتوي على إجابات لأسئلة القراء الفضوليين.
تأتي جلسة الأسئلة والأجوبة اليوم مقدمة من SuperUser-a subdivision of Stack Exchange ، وهي مجموعة مجتمعية مدفوعة من مواقع Q & A.
الصورة مجاملة من Rosmarie Voegtli (فليكر).
السؤال
يريد قارئ SuperUser user3407319 معرفة ما إذا كانت خوادم الويب تمتلك موقعًا واحدًا فقط لكل منها:
استنادًا إلى ما أفهمه حول DNS وربط اسم النطاق بعنوان IP الخاص بخادم الويب ، يتم تخزين موقع الويب ، هل يعني ذلك أن كل خادم ويب يمكنه فقط الاحتفاظ بموقع ويب واحد؟ إذا كانت خوادم الويب تحتفظ بأكثر من موقع ويب واحد ، فعندئذ كيف يتم حلها كلها حتى أتمكن من الوصول إلى موقع الويب الذي أريده دون أي مشاكل أو خلط?
لا تحتفظ خوادم الويب إلا بموقع واحد على الويب ، أو تحمل أكثر من ذلك?
الاجابة
مساهم SuperUser Bob لديه إجابة لنا:
بشكل أساسي ، يتضمن المتصفح اسم النطاق في طلب HTTP حتى يعرف خادم الويب النطاق المطلوب وتمكن من الاستجابة وفقًا لذلك.
طلبات HTTP
إليك كيفية حدوث طلب HTTP النموذجي:
1. يوفر المستخدم عنوان URL ، في النموذج http: // host: port / path.
2. يقوم المتصفح باستخراج جزء المضيف (domain) من عنوان URL وترجمته إلى عنوان IP (إذا لزم الأمر) في عملية تعرف باسم تحليل الاسم. يمكن أن تحدث هذه الترجمة عبر نظام أسماء النطاقات (DNS) ، ولكنها لا تحتاج إلى (على سبيل المثال ، يتفوق ملف المضيف المحلي على أنظمة التشغيل الشائعة على DNS).
3. يفتح المستعرض اتصال TCP إلى المنفذ المحدد ، أو افتراضيًا على المنفذ 80 على عنوان IP هذا.
4. يرسل المستعرض طلب HTTP. بالنسبة إلى HTTP / 1.1 ، يبدو الأمر كما يلي:
رأس المضيف قياسي ومطلوب في HTTP / 1.1. لم يتم تحديده في مواصفات HTTP / 1.0 ، ولكن بعض الخوادم تدعمه على أي حال.
من هنا ، يحتوي خادم الويب على العديد من المعلومات التي يمكنه استخدامها لتحديد ما يجب أن تكون عليه الاستجابة. لاحظ أنه من الممكن أن يرتبط خادم ويب واحد بعناوين IP متعددة.
- عنوان IP المطلوب ، من مقبس TCP (عنوان IP للعميل متاح أيضًا ، ولكن نادرًا ما يُستخدم هذا ، وأحيانًا للحجب / التصفية)
- المنفذ المطلوب ، من مقبس TCP
- اسم المضيف المطلوب ، كما هو محدد في رأس المضيف بواسطة المتصفح في طلب HTTP
- المسار المطلوب
- أي رؤوس أخرى (ملفات تعريف الارتباط ، وما إلى ذلك)
كما يبدو أنك لاحظت ، فإن إعداد الاستضافة المشتركة الأكثر شيوعًا هذه الأيام يضع العديد من مواقع الويب على عنوان IP واحد: تركيبة المنفذ ، تاركًا المضيف فقط للتمييز بين مواقع الويب.
يُعرف هذا باسم مضيف ظاهري يستند إلى الاسم في Apache-land ، بينما يستدعي Nginx اسمًا للخادم في كتل الخادم ، ويفضل IIS Virtual Server.
ماذا عن HTTPS?
HTTPS مختلفة بعض الشيء. يتطابق كل شيء مع إنشاء اتصال TCP ، ولكن بعد ذلك يجب إنشاء نفق TLS مشفر. الهدف هو عدم تسرب أي معلومات حول الطلب.
للتحقق من امتلاك خادم الويب لهذا النطاق فعليًا ، يجب أن يرسل خادم الويب شهادة موقعة من طرف ثالث موثوق به. سيقارن المتصفح هذه الشهادة مع النطاق الذي طلبه.
هذا يمثل مشكلة. كيف يعرف خادم الويب شهادة المضيف / الموقع الإلكتروني المطلوب إرسالها إذا احتاج الأمر إلى ذلك قبل استلام طلب HTTP?
تقليديا ، تم حل هذا من خلال وجود عنوان IP مخصص (أو منفذ) لكل موقع يتطلب HTTPS. من الواضح أن هذا الأمر أصبح يمثل مشكلة لأننا نفاد عناوين IPv4.
أدخل SNI (إشارة اسم الخادم). يقوم المتصفح الآن بتمرير اسم المضيف أثناء مفاوضات TLS ، بحيث يكون لدى خادم الويب هذه المعلومات في وقت مبكر بما يكفي لإرسال الشهادة الصحيحة. على جانب خادم الويب ، يشبه التهيئة إلى حد كبير كيفية تكوين مضيفات HTTP الظاهرية.
الجانب السلبي هو اسم المضيف تم تمريره الآن كنص عادي قبل التشفير ، وهي معلومات تم تسريبها بشكل أساسي. يعتبر هذا عادةً مقايضة مقبولة على الرغم من أنه يتم عادةً عرض اسم المضيف في استعلام DNS على أي حال.
ماذا لو طلبت موقع إلكتروني بواسطة عنوان IP فقط?
ما يفعله خادم الويب عندما لا يعرف المضيف المحدد الذي طلبته يعتمد على تنفيذ وتهيئة خادم الويب. عادةً ما يكون هناك موقع "افتراضي" أو "catch-all" أو "fall back" المحدد الذي سيوفر ردودًا على جميع الطلبات التي لا تحدد المضيف بشكل صريح..
يمكن أن يكون موقع الويب الافتراضي هذا موقعًا مستقلًا على الويب (غالبًا ما يعرض رسالة خطأ) ، أو يمكن أن يكون أيًا من المواقع الأخرى على خادم الويب بناءً على تفضيلات مسؤول خادم الويب.
هل لديك شيء تضيفه إلى الشرح؟ الصوت قبالة في التعليقات. هل ترغب في قراءة المزيد من الإجابات من مستخدمي Stack Exchange الآخرين المحترفين بالتكنولوجيا؟ تحقق من موضوع المناقشة الكامل هنا.