http - and - الفرق بين url و uri




ما هو الفرق بين URI وعنوان URL و URN؟ (20)

يتحدث الناس عن URL s و URI و URN s كما لو كانت أشياء مختلفة ، ولكنها تبدو نفسها بالعين المجردة.

ما هي الاختلافات المميزة بينهما؟


معرف = اسم + الموقع

كل عنوان URL ( U niform R esource L ocator) هو URI ( U niform R esource I dentifier) ​​، بشكل مجرد ، ولكن كل URI ليس عنوان URL. هناك فئة فرعية أخرى من URI هي URN ( U niform R esource N ame) ، وهو مورد مسمى ولكن لا تحدد كيفية تحديد موقعها ، مثل mailto ، والأخبار ، ورقم ISBN هو URIs. Source

URN:

  • تنسيق URN: urn:[namespace identifier]:[namespace specific string]
  • جرة: و: الوقوف لأنفسهم.
  • Examples :
    • جرة: UUID: 6e8bc430-9c3a-11d9-9669-0800200c9a66
    • جرة: ISSN: 0167-6423
    • جرة: ISBN: 096139210x
    • أسماء الموارد الأمازون (ARNs) هي موارد AWS محددة بشكل فريد.
      • تنسيق ARN: arn:partition:service:region:account-id:resource

URL:

  • تنسيق عنوان URL: [scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
  • :، //،؟ و # الوقوف لأنفسهم.
  • المخططات هي HTTPS ، بروتوكول نقل الملفات ، غوفر ، mailto ، الأخبار ، التلنت ، ملف ، رجل ، معلومات ، Whatis ، LDAP ...
  • أمثلة:
    • http://ip_server/path?query
    • ftp://ip_server/path
    • ميلتو: البريد الإلكتروني عنوان
    • الأخبار: الأخبار اسم
    • التلنت: // ip_server /
    • ملف: // ip_server / path_segments
    • LDAP:؟؟؟ // hostport / DN سمات نطاق تصفية ملحقات؟

القياس:
للوصول إلى شخص: القيادة (بروتوكول SMS الآخرين ، البريد الإلكتروني ، الهاتف) ، العنوان (اسم المضيف رقم الهاتف الآخر ، emailid) واسم الشخص (اسم الكائن مع مسار نسبي).


URI - معرف مورد منتظم

عناوين URI معيار لتحديد الوثائق باستخدام سلسلة قصيرة من الأرقام والحروف والرموز. يتم تعريفها بواسطة RFC 3986 - معرف مورد منتظم (URI): بناء جملة عام . عناوين URL و URN و URCs هي جميع أنواع URI.

URL - محدد موقع المعلومات

يحتوي على معلومات حول كيفية جلب مورد من موقعه. فمثلا:

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:[email protected]
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (عنوان URL نسبي ، مفيد فقط في سياق عنوان URL آخر)

تبدأ عناوين URL دائمًا ببروتوكول ( http ) وعادة ما تحتوي على معلومات مثل اسم مضيف الشبكة ( example.com ) وغالبًا مسار المستند ( /foo/mypage.html ). قد تحتوي عناوين URL على معلمات طلب البحث ومعرفات الأجزاء.

URN - اسم مورد منتظم

يحدد موردًا باسم فريد ومستمر ، ولكن لا يخبرك بالضرورة عن كيفية تحديد موقعه على الإنترنت. يبدأ عادةً بالبادئة urn: على سبيل المثال:

  • urn:isbn:0451450523 لتحديد كتاب برقم ISBN الخاص به.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 وهو معرّف فريد عالمي
  • urn:publishing:book - مساحة اسم XML التي تحدد المستند كنوع من الكتب.

يمكن أن تحدد URNs الأفكار والمفاهيم. لا تقتصر على تحديد الوثائق. عندما يمثل URN وثيقة ، يمكن ترجمتها إلى عنوان URL بواسطة "المحلل". يمكن بعد ذلك تنزيل المستند من عنوان URL.

URC - استشهاد مورد موحد

يشير إلى بيانات التعريف حول مستند بدلاً من المستند نفسه. مثال على URC يشير إلى شفرة مصدر HTML لصفحة مثل: view-source:http://example.com/

بيانات URI

بدلاً من تحديد موقعه على الإنترنت أو تسميته ، يمكن وضع البيانات مباشرة في عنوان URI. مثال على ذلك هو data:,Hello%20World .

أسئلة مكررة

لقد سمعت أنني لا يجب أن أقول URL بعد الآن ، لماذا؟

تنص مواصفات W3 لـ HTML على أن href لعلامة الارتساء يمكن أن تحتوي على URI ، وليس فقط عنوان URL. يجب أن تكون قادرًا على وضع URN مثل <a href="urn:isbn:0451450523"> . سيقوم المتصفح الخاص بك بعد ذلك بحل URN إلى عنوان URL وتنزيل الكتاب نيابة عنك.

هل تعرف أي متصفحات بالفعل كيفية جلب المستندات عن طريق URN؟

لا أعرف ذلك ، ولكن متصفح الويب الحديث يقوم بتنفيذ مخطط بيانات URI.

هل الفرق بين URL و URI له علاقة بما إذا كان نسبيًا أو مطلقًا؟

لا ، فكل من عناوين URL النسبية والمطلقة هي عناوين URL (ومعرِّفات URI.)

هل الفرق بين URL و URI له علاقة بما إذا كان يحتوي على معلمات طلب البحث؟

لا. كلا من عناوين URL التي تحتوي على أو بدون معلمات طلب البحث هي عناوين URL (ومعرّفات URI.)

هل الفرق بين URL و URI له علاقة بما إذا كان يحتوي على معرف جزء؟

لا. كلا من عناوين URL التي تحتوي على معرفات بدون أو بدونها هي عناوين URL (ومعرّفات URI.)

هل الفرق بين URL و URI له علاقة بأية أحرف مسموح بها؟

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

لكن ألا يقول W3C الآن أن عناوين URL و URIs هي الشيء نفسه؟

نعم فعلا. أدرك W3C أن هناك الكثير من الارتباك حول هذا. أصدروا وثيقة توضيح URI التي تقول أنه من الآن موافق على استخدام المصطلحين URL و URI بالتبادل (يعني URI). لم يعد من المفيد تقسيم URIs بصرامة إلى أنواع مختلفة مثل URL و URN و URC.

هل يمكن أن يكون URI عنوان URL و URN؟

تعريف URN الآن أكثر مرونة مما ذكرته أعلاه. يقول أحدث RFC على عناوين URI أن أي URI يمكن أن يكون الآن URN (بغض النظر عما إذا كان يبدأ بـ urn: طالما أنه يحتوي على "خصائص اسم". وهذا يعني: أنها فريدة من نوعها ومستمرة عالميًا حتى عندما يتوقف المورد عن الوجود أو يصبح غير متاح. مثال: URIs المستخدم في أنواع HTML مثل http://www.w3.org/TR/html4/strict.dtd . سيستمر عنوان URI هذا في تحديد نوع المستند HTML4 الانتقالي حتى إذا تم حذف الصفحة على موقع الويب w3.org.


URI هو نوع من الطبقة الفائقة لعناوين URL و URN. تحتوي Wikipedia على URI عنهم تحتوي على روابط إلى المجموعة الصحيحة من RFCs.


إضافة صغيرة إلى الإجابات المنشورة بالفعل ، إليك مخطط فين لملخص النظرية (من explanation Prateek Joshi الجميل):

ومثال (أيضا من موقع Prateek):


ستقدم لك Wikipedia كل المعلومات التي تحتاجها هنا. نقلا عن http://en.wikipedia.org/wiki/URI :

عنوان URL هو معرف موارد منتظم ، بالإضافة إلى تحديد مورد ، يوفر وسائل للتصرف أو الحصول على تمثيل للمورد من خلال وصف آلية الوصول الأساسية أو "موقع" الشبكة الخاص به.


مثال آخر أحب استخدامه عند التفكير في URIs هو سمة xmlns لمستند XML:

<rootElement xmlns:myPrefix="com.mycompany.mynode">
    <myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>

في هذه الحالة ، سيكون com.mycompany.mynode عبارة عن معرف موارد منتظم يعرّف بشكل فريد مساحة الاسم "myPrefix" لكافة العناصر التي تستخدمها داخل مستند XML الخاص بي. هذا ليس عنوان URL لأنه يستخدم فقط لتحديد ، وليس لتحديد موقع ما في حد ذاته.


نظرًا لصعوبة التمييز الواضح بين عنوان URL وعنوان URL ، على الرغم من أنني أتذكر W3C ، لن يحدث أي فرق بين عنوان URL وعنوان URL ( http://www.w3.org/Addressing/ ).


هذا واحد من أكثر المواضيع التي لا تحتمل شيئًا ، والتي ربما تكون غير ذات صلة ، والتي واجهتها كمحترف على الويب.

كما أفهمها ، فإن URI هو وصف لشيء ما ، باتباع تنسيق مقبول ، يمكن أن يحدد كلا من أو الاسم الفريد (تحديد) لشيء ومكانه.

هناك نوعان من المجموعات الفرعية الأساسية - عناوين URL ، والتي تحدد الموقع (خاصة للمتصفح الذي يحاول البحث عن صفحة ويب) و URN ، والتي تحدد الاسم الفريد لشيء ما.

أميل إلى التفكير في URNs كـ مشابهة لـ GUIDs. فهي ببساطة منهجية موحدة لتقديم أسماء فريدة للأشياء. كما هو الحال في مساحة الاسم التقريرية التي تستخدم اسم الشركة - لا يشبه وجود مورد يجلس على خادم في مكان ما ليتوافق مع سطر النص هذا - إنه ببساطة يعرّف شيئًا فريدًا.

كما أنني أميل إلى تجنب مصطلح URI تمامًا ومناقشة الأشياء فقط من حيث عنوان URL أو URN بالشكل المناسب ، لأنه يسبب الكثير من الارتباك. إن السؤال الذي يجب علينا أن نحاول فعلاً الإجابة عنه هو ليس دلالات الألفاظ إلى حد كبير ، ولكن كيف نحدد عندما نواجه المصطلحات سواء كان هناك أي اختلاف عملي فيها من شأنه أن يغير النهج إلى وضع برمجة. على سبيل المثال ، إذا صححني شخص ما في المحادثة وقال: "أوه ، هذا ليس عنوان URL هو معرف موارد منتظم" أعرف أنه مليء به. إذا قال شخص ما "إننا نستخدم URN لتحديد المورد" ، فمن الأرجح أن نفهم أننا لا نقوم بتسمية ذلك إلا بشكل فريد ، وليس تحديد موقعه على الخادم.

إذا كنت أنا خارج القاعدة - يرجى إخبارنا بذلك!


وفقًا لـ RFC 3986 ، تتكون URIs من القطع التالية:

scheme://authority/path?query

يصف URI البروتوكول للوصول إلى مورد ( مسار ) أو تطبيق ( استعلام ) على خادم ( مرجع ).

جميع عناوين URL هي URIs ، وجميع URNs هي URIs ، ولكن جميع عناوين URI ليست عناوين URL.

يرجى الرجوع لمزيد من التفاصيل:

Wikipedia


انهم نفس الشيء . معرف الموارد المنتظم هو تعميم لعنوان URL. في الأصل ، تم تخطيط URIs في عناوين URL (عناوين) و URNs (أسماء) ولكن بعد ذلك كان هناك اختلاف بسيط بين عنوان URL و URI و HTTP URIs تم استخدامها كمساحات اسمية على الرغم من أنها لم تحدد بالفعل أي موارد.


URL

عنوان URL هو تخصص لـ URI يحدد موقع الشبكة لمورد معين. بخلاف URN ، يحدد عنوان URL كيف يمكن الحصول على المورد. نحن نستخدم عناوين URL كل يوم على شكل http://example.com إلخ. ولكن لا يلزم أن يكون عنوان URL URL HTTP ، يمكن أن يكون ftp://example.com إلخ.

URI

يحدد URI موردًا إما عن طريق الموقع أو الاسم أو كليهما. في أكثر الأحيان ، يستخدم معظمنا عناوين URI التي تحدد موقعًا ما لمورد. حقيقة أن URI يمكن تحديد الموارد من قبل كل من الاسم والموقع قد أدى إلى الكثير من الارتباك في رأيي. يحتوي URI على اثنين من التخصصات المعروفة باسم URL و URN.

الفرق بين عنوان URL و URI

معرف الموارد المنتظم هو معرف لبعض الموارد ، لكن عنوان URL يعطيك معلومات محددة للحصول على هذا المورد. URI هو عنوان URL وكما أشار أحد المعلقين ، فإنه يعتبر الآن غير صحيح لاستخدام URL عند وصف التطبيقات. بشكل عام ، إذا كان عنوان URL يصف كلاً من الموقع واسم المورد ، فإن المصطلح المراد استخدامه هو URI. بما أن هذه هي الحالة التي يواجهها معظمنا يوميًا ، فإن مصطلح URI هو المصطلح الصحيح.


بادئ ذي بدء ، خذ عقلك من الارتباك واعتبرها بسيطة وستفهمها.

معرف الموارد المنتظم => معرف المورد الموحد يحدد عنوانًا كاملاً للمورد ، أي الموقع أو الاسم أو كليهما.

URL => محدد موقع المعلومات يحدد موقع المصدر.

URN => اسم المورد الموحد يحدد اسم المصدر

مثال

لدينا العنوان https://www.google.com/folder/page.html حيث ،

معرف الموارد المنتظم (URI) => https://www.google.com/folder/page.html

URL (Uniform Resource Locator) => https://www.google.com/

URN (اسم مورد منتظم) => /folder/page.html

URI => (URL + URN) أو URL فقط أو URN فقط


من السهل أن أشرح:

دعونا نفترض ما يلي

URI هو اسمك

عنوان URL هو عنوانك مع اسمك بالترتيب للتواصل معك.

  • اسمي لويولا

    Loyola هو URI

  • عنواني هو TN ، تشيناي 600001.

TN، Chennai 600 001، Loyola هو URL

أتمنى أن تتفهم،

الآن دعونا نرى مثال دقيق

http://www.google.com/fistpage.html

في ما سبق ، يمكنك التواصل مع صفحة تسمى firstpage.html ( URI ) باستخدام http://www.google.com/fistpage.html ( URL ).

ومن ثم فإن URI هو مجموعة فرعية من URL ولكن ليس العكس.


على الرغم من أن المصطلحين URI وعنوان URL محددان بشكل صارم ، فإن العديد منها يستخدم المصطلحات للأشياء الأخرى غير المحددة لهما.

لنأخذ Apache على سبيل المثال. إذا تم طلب http://example.com/foo من خادم Apache ، فستتوفر لديك مجموعة متغيرات البيئة التالية:

  • REDIRECT_URL : /foo
  • REQUEST_URI : /foo

مع تمكين mod_rewrite ، سيكون لديك أيضًا هذه المتغيرات:

  • REDIRECT_SCRIPT_URL : /foo
  • REDIRECT_SCRIPT_URI : http://example.com/foo
  • SCRIPT_URL : /foo
  • SCRIPT_URI : http://example.com/foo

قد يكون هذا هو سبب بعض الارتباك.


هنا تبسيط بلدي:

URN: اسم المورد الفريد ، أي "ماذا" (على سبيل المثال ، urn: issn: 1234-5678). هذا يعني أن تكون فريدة من نوعها .. كما هو الحال في أي اثنين من مستندات مختلفة يمكن أن يكون لها نفس الجرة. يشبه قليلا "uuid"

عنوان URL: "where" للعثور عليه (على سبيل المثال https://google.com/pub?issnid=1234-5678 .. أو ftp://somesite.com/doc8.pdf )

URI: يمكن أن يكون إما URN أو عنوان URL. هذا التعريف المشوش يرجع إلى RFC 3986 التي تنتجها W3C و IETF.

لقد تغير تعريف URI على مر السنين ، لذلك من المنطقي أن يتم الخلط بين معظم الناس. ومع ذلك ، يمكنك الآن أن تأخذ العزاء في حقيقة أنه يمكنك الرجوع إلى http://somesite.com/something إما عنوان URL أو URI ... وسوف تكون على حق في أي من الاتجاهين (على الأقل fot الوقت على أي حال .. .)


وجدت:

يمثل معرف الموارد المنتظم (URI) شيئًا من الصورة الكبيرة. يمكنك تقسيم URIs / URIs يمكن تصنيفها على أنها محددات (محدد مواقع الموارد الموحد - URL) ، أو كأسماء (اسم مورد موحد- URN) ، أو كلاهما. في الأساس ، يعمل URN مثل اسم الشخص وعنوان URL يصور عنوان ذلك الشخص. قصة قصيرة طويلة جدًا ، يعرف URN هوية العنصر ، بينما يحدد عنوان URL طريقة العثور عليه ، وفي النهاية يدمج هذين المفهومين في URI


بعد قراءة المشاركات ، أجد بعض التعليقات ذات الصلة. باختصار ، يستند الارتباك بين عنوان URL وتعريفات معرّف الموارد المنتظم جزئياً إلى أي تعريف يعتمد على أي استخدام غير رسمي لكلمة URI في تطوير البرمجيات.

حسب التعريف هو URL مجموعة فرعية من URI [RFC2396]. يحتوي URI على URN وعنوان URL. يحتوي كل من URI و URL على بنية محددة خاصة بهم تمنحهم حالة إما URI أو URL. URN مخصصة لتعريف مورد فريد بينما يكون عنوان URL هو تحديد موقع المورد. لاحظ أنه يمكن أن يحتوي المورد على أكثر من عنوان URL واحد ولكن ليس سوى URN واحد. [RFC2611]

كمطورين ومبرمجين على الويب ، سنكون دائمًا مهتمين بعنوان URL و URI لذلك. الآن يتم تحديد عنوان URL بشكل محدد بحيث يكون مخطط الأجزاء كله: جزء خاص بالنظام ، على سبيل المثال https://.com/questions . هذا عنوان URL وهو أيضًا عنوان URI. فكر الآن في ارتباط نسبي مضمن في الصفحة مثل ../index.html. لم يعد هذا عنوان URL بالتعريف. ما زال يشار إليه على أنه "مرجع URI" [RFC2396].

أعتقد أنه عند استخدام كلمة URI للإشارة إلى المسارات النسبية ، فإن "مرجع URI" هو في الواقع ما يُفكر فيه. وبشكل غير رسمي ، تستخدم أنظمة البرامج عنوان URI للإشارة إلى المسار النسبي وعنوان URL للعنوان المطلق. ومن هذا المنطلق ، لم يعد المسار النسبي هو عنوان URL ولكنه لا يزال عنوان URI.


كنت أتساءل عن نفس الشيء ولقد وجدت هذا: http://docs.kohanaphp.com/helpers/url .

يمكنك رؤية مثال واضح باستخدام url::current()الطريقة. إذا كان لديك عنوان URL هذا : http://example.com/kohana/index.php/welcome/home.html?query=stringعندئذٍ ، url:current()يمنحك استخدام عنوان URL الذي ، وفقًا للوثائق ، هو: مرحبًا بك / في المنزل


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

توفر بعض عناوين URI معلومات لتحديد موقع مورد (مثل اسم مضيف DNS ومسار على هذا الجهاز) ، بينما يتم استخدام بعض أسماء المصادر الصرفة. و URL محجوز لمعرفات أن على تحديد المواقع الموارد ، بما في ذلك عناوين من "http" مثل http://.com ، الذي يحدد صفحة الويب في المسار المعطى على المضيف. مثال آخر هو عناوين URL "mailto" ، مثل mailto: [email protected] ، والتي تحدد صندوق البريد في العنوان المحدد.

URNs هي URIs التي يتم استخدامها كأسماء موارد نقية بدلاً من المواقع. على سبيل المثال ، URI: mid: [email protected] هو URN الذي يحدد رسالة البريد الإلكتروني التي تحتوي عليه في حقل "معرف الرسالة". يخدم URI لتمييز تلك الرسالة من أي رسالة بريد إلكتروني أخرى. لكنه لا يقدم نفسه عنوان الرسالة في أي متجر.


للإجابة على هذا سوف أكون على إجابة قمت بتعديلها على سؤال آخر . من الأمثلة الجيدة على معرف الموارد المنتظم هو كيفية تحديد مورد Amazon S3. لنأخذ:

s3://www-example-com/index.html [تين. 1]

التي قمت بإنشائها كنسخة مخبأة من

http://www.example.com/index.html [تين. 2]

في مركز بيانات S3-US-West-2 في Amazon .

حتى لو سمح لي بالارتباط التشعبي إلى نظام s3:// protocol ، فلن يكون مفيدًا لك في تحديد موقع المورد. لأنه يحدد و الموارد ، التين. 1 هو URI صالح. وهو أيضًا بروتوكول URN صالح ، نظرًا لأن Amazon تتطلب أن يكون الجرافة (المصطلح الخاص بها authorityلجزء من URI) فريدة عبر مراكز البيانات. ومن المفيد في تحديد موقعه ، لكنه لا يشير إلى مركز البيانات. لذلك لا يعمل كعنوان URL.

إذن ، كيف يختلف URI وعنوان URL و URN في هذه الحالة؟

ملاحظة: يعرّف RFC 3986 URIs كـscheme://authority/path?query#fragment





rfc3986