سؤال

بمعنى آخر، هل يهم ما إذا كنت أستخدمه أم لا http://www.example.com/ أو http://wwW.exAmPLe.COm/ ?

لقد واجهت مشكلات غريبة مع أسماء المضيفين مؤخرًا:لدي خادم ويب Apache2.2+PHP5.1.4، ويمكن الوصول إليه من خلال جميع أنواع المتصفحات.مستخدمي IE6 على وجه الخصوص (خاصة.عندما تكون سلسلة UA الخاصة بهم مثقلة بالعديد من كائنات BHO، لا يوجد نمط حتى الآن) يبدو أنها تواجه مشكلات في الوصول إلى الموقع (تختفي ملفات تعريف الارتباط، ويرفض JS التحميل) عند الدخول عبر http://www.Example.com/, ، لكن لا http://www.example.com/

لقد قمت بفحص HTTP و DNS RFCs، يا سياسات P3P, وإعدادات ملفات تعريف الارتباط و إجراءات التشغيل القياسية;ومع ذلك، لم أر في أي مكان حتى إشارة إلى أن أسماء النطاقات حساسة لحالة الأحرف.

(أعلم أن المسار وسلسلة الاستعلام حساسان لحالة الأحرف ( ?x=foo يختلف عن ?x=Foo ) ومعاملتهم بشكل مناسب؛لا أقوم بأي تحليل/معالجة لاسم المجال في الكود الخاص بي)

هل أفعل شيئًا خاطئًا أم أن هذا مجرد حماقة في المتصفح + شريط الأدوات يجب أن أتعامل معها؟

هل كانت مفيدة؟

المحلول

أسماء النطاقات هي لا حساسية الموضوع؛ Example.com سوف يحل إلى نفس IP كما eXaMpLe.CoM.إذا كان خادم الويب أو المتصفح يتعامل مع ملف Host الرأس حساس لحالة الأحرف، وهذا خطأ.

نصائح أخرى

لا، هذا لا ينبغي أن يحدث أي فرق.

تحقق من مواصفات URL RFC (http://www.ietf.org/rfc/rfc1738.txt).من القسم 2.1:

بالنسبة للمرونة ، يجب أن تعامل برامج تفسير عناوين URL على الحروف العليا على أنها مكافئة للحالة السفلية في أسماء المخططات

نظرًا لأنك قمت بصياغة سؤالك كسؤال عملي، ثم وصفت مشكلة حقيقية، فإن الإجابة هي في الواقع:نعم.

الإجابات الأخرى صحيحة فيما يتعلق بما تقوله مواصفات RFC حول أسماء المضيفين.من الناحية الفنية يجب أن تكون غير حساسة لحالة الأحرف.(في الواقع، كان التقليد الأقدم هو أن نطاق المستوى الأعلى (TLD) كان من المفترض أن يكون بأحرف كبيرة...مثل "apple.COM").

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

وفق http://tools.ietf.org/html/rfc1035:

بالنسبة لجميع أجزاء DNS التي تشكل جزءًا من البروتوكول الرسمي ، تتم جميع المقارنات بين سلاسل الأحرف (على سبيل المثال ، الملصقات ، أسماء المجال ، إلخ) بطريقة غير حساسة للحالة.في الوقت الحاضر ، هذه القاعدة سارية في جميع أنحاء نظام المجال دون استثناء.

ثم يذهب ليقول أن هذا قد يتغير في المستقبل.أعتقد أنه من الآمن افتراض أن مجال COM غير حساس لحالة الأحرف، ولكن قد تختلف المجالات الأخرى التي تسمح باستخدام أحرف غير ASCII.

لا، لا توجد حساسية لحالة الأحرف فيما يتعلق بمحدد البروتوكول.

يمكنك رؤية ذلك في RFC لعناوين URL.

2.1.الأجزاء الرئيسية لعناوين URL

تتكون أسماء المخططات من سلسلة من الأحرف.الأحرف الدنيا "A"-"Z" ، والأرقام ، والشخصيات زائد ("+") ، والفترة (".") ، والواصلة ("-") مسموح بها.من أجل المرونة ، يجب أن تعامل برامج تفسير عناوين URL على الحروف العليا على أنها تعادل الحالة السفلية في أسماء المخططات (على سبيل المثال ، السماح "HTTP" وكذلك "HTTP").

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top