یک URL از چه بخش هایی تشکیل شده است؟

اغلب اوقات اشکالی ندارد که چیزهایی مثل «من یک دامنه خریدم» یا «تصاویر ما در سایت دیگری میزبانی می‌شوند» بگویید، حتی اگر کاملاً درست نباشند. با این حال، در برخی زمینه‌ها لازم است دقیق‌تر باشید. برای مثال، هنگام برخورد با کوکی‌ها، باید تفاوت بین سایت و مبدا را درک کنید.

نام‌های بخش‌های URL در یک استاندارد مشخص شده‌اند که یک API جاوا اسکریپت را نیز تعریف می‌کند:

  • استاندارد URL ، URLها و مفاهیم مرتبط را تعریف می‌کند تا مهندسان بتوانند مرورگرهای وب سازگار بسازند.
  • مؤلفه‌ی URL API استاندارد، روش‌هایی را برای دسترسی به بخش‌هایی از یک رشته‌ی URL، مانند scheme یا origin ، تعریف می‌کند.

این سند طیف وسیعی از اصطلاحات مورد استفاده در رشته‌های URL HTTP یا HTTPS را توضیح می‌دهد. این سند انواع دیگر URL مانند URLهای فایل یا داده را پوشش نمی‌دهد. برای اصطلاحاتی مانند host و origin ، تعاریف دقیق ذاتاً پیچیده هستند، بنابراین این سند به جای تلاش برای توضیحات کامل، مثال‌ها و پیوندهایی به استاندارد URL ارائه می‌دهد.

شما می‌توانید از جاوا اسکریپت برای دریافت نام اجزای URL که توسط API URL تعریف شده‌اند، استفاده کنید. برای مثال:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

آنالایزر URL

برای مشاهده نحوه نامگذاری بخش‌هایی از رشته URL، آدرس اینترنتی (URL) زیر را ویرایش کنید. همچنین می‌توانید این آدرس را در یک برگه جداگانه در آدرس https://chrome.dev/url-parts/ باز کنید.


نام‌های بخش‌های URL به ترتیب حروف الفبا در زیر فهرست شده‌اند.

دامنه سطح بالای کد کشور (ccTLD)

یک دامنه سطح بالا که در فهرست کدهای کشوری ISO 3166-1 تعریف شده است.

  • برای https://example.org.au ، پسوند سطح بالای دامنه (ccTLD) au است.
  • برای https://example.io ، پسوند سطح بالای سایت (ccTLD) io است.

نام دامنه

بخش‌هایی از یک URL HTTP یا HTTPS که با نقطه از هم جدا شده‌اند: همه چیز بعد از طرح ، اما قبل از مسیر یا پورت (در صورت مشخص شدن). هر بخش از نام دامنه به عنوان یک برچسب شناخته می‌شود.

آدرس اینترنتی نام دامنه
https://example.github.io/path مثال.github.io
https://support.example.org.au:443 support.example.org.au

دامنه سطح بالای مؤثر (eTLD)

یک ورودی در فهرست پسوندهای عمومی ، شامل یک TLD و (برای eTLDهای دارای چندین بخش) دامنه‌های اضافی زیر آن: سطح دوم، سطح سوم و غیره.

  • برای مثال: com ، com.au ، github.io ، sa.edu.au ، schools.nsw.edu.au .

یک «پسوند عمومی»، مانند این مثال‌ها، نامی است که می‌توان دامنه‌ها را تحت آن ثبت کرد. فهرست پسوند عمومی، فهرستی از تمام پسوندهای عمومی شناخته شده است و مرتباً به‌روزرسانی می‌شود. مرورگرهایی از جمله کرومیوم و فایرفاکس از این فهرست در نسخه‌های خود استفاده می‌کنند.

eTLD+1

دامنه قابل ثبت را ببینید.

یک eTLD به علاوه زیر دامنه‌ای که قبل از آن قرار دارد.

  • برای مثال: example.com ، example.org.au ، example.github.io ، example.sa.edu.au ، example.schools.nsw.edu.au .

نام فایل

در استاندارد URL تعریف نشده و بخشی از API URL نیست، اما معمولاً برای اشاره به بخش پایانی و غیرمسیری URL بر اساس این فرض - که اغلب نادرست است - که URL مستقیماً به یک ساختار دایرکتوری نگاشت می‌شود، استفاده می‌شود.

برای مثال، در https://example.com/dir/file.html ، ممکن است به file.html به عنوان نام فایل اشاره شود.

مقدار نام فایل همچنین توسط مرورگرها برای نامگذاری یک فایل در صورت دانلود آن استفاده می‌شود. برای مثال، https://example.com/images/image.jpg معمولاً به صورت محلی در image.jpg ذخیره می‌شود.

قطعه

رشته‌ای که پس از کاراکتر # در انتهای یک URL می‌آید و یک شناسه‌ی قطعه ارائه می‌دهد.

  • برای مثال: آدرس اینترنتی https://example.com/cats#tabby دارای مقدار شناسه قطعه tabby است.

بخشی که شامل # است به عنوان هش یا انکر شناخته می‌شود. همچنین می‌توانید به یک قطعه متن لینک دهید و آن را هایلایت کنید.

هش به جای قطعه کد، توسط رابط برنامه‌نویسی کاربردی URL بازگردانده می‌شود.

نام دامنه کاملاً واجد شرایط (FQDN)

یک آدرس کامل برای یک وب‌سایت یا سرور، که به یک آدرس IP نگاشت می‌شود.

آدرس اینترنتی نام دامنه (FQDN)
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

FQDN یک URL شامل پورت نمی‌شود، حتی اگر از پورت غیر پیش‌فرض استفاده شده باشد.

هش (یا لنگر)

رشته‌ای که پس از کاراکتر # در انتهای یک URL می‌آید و یک شناسه‌ی قطعه ارائه می‌دهد. (در برخی زمینه‌ها به این مورد "لنگر" گفته می‌شود.)

بخشی که # را شامل نمی‌شود، به عنوان قطعه متن شناخته می‌شود. همچنین می‌توانید به یک قطعه متن لینک دهید و آن را هایلایت کنید.

هش به جای قطعه کد، توسط رابط برنامه‌نویسی کاربردی URL بازگردانده می‌شود.

میزبان

همانطور که در استاندارد URL تعریف شده است، یک میزبان می‌تواند یک نام دامنه ، آدرس IP نسخه ۴، آدرس IP نسخه ۶، میزبان غیرشفاف یا میزبان خالی باشد.

  • تعریف استاندارد URL از host شامل پورت نمی‌شود.
  • URL.host شامل پورت می‌شود، مگر اینکه پورت پیش‌فرض برای این طرح باشد.
  • URL.hostname شامل پورت نمی‌شود.
آدرس اینترنتی URL.host
https://www.example.com:443/cat www.example.com
// 443 is the default port for the scheme
https://www.example.com:1234/cat www.example.com:1234
https://cat.example.github.io cat.example.github.io

نام میزبان

نام میزبان توسط API URL جاوا اسکریپت تعریف می‌شود، اما در جای دیگری توسط استاندارد URL تعریف نمی‌شود. برای جزئیات بیشتر به نمایندگی میزبان مراجعه کنید.

URL.hostname میزبان را بدون پورت برمی‌گرداند.

آدرس اینترنتی URL.hostname
https://www.example.com:443/cat www.example.com
https://www.example.com:1234/cat www.example.com
https://cat.example.github.io cat.example.github.io

مبدا

استاندارد URL، origin تعریف می‌کند و برای پس‌زمینه به استاندارد HTML لینک می‌دهد.

برای URL های HTTP یا HTTPS، URL.origin طرح ، میزبان و پورت را برمی‌گرداند (مگر اینکه پورت پیش‌فرض طرح باشد).

آدرس اینترنتی URL.origin
https://www.example.com:443/cat https://www.example.com
https://www.example.com:1234/cat https://www.example.com:1234
https://cat.example.github.io https://cat.example.github.io

پارامتر

پارامترهای جستجو را ببینید

رمز عبور

نام کاربری را ببینید.

نام مسیر

برای یک URL با HTTP یا HTTPS، بخشی که بعد از دامنه و پورت (در صورت تعریف) قرار می‌گیرد، شامل نام فایل (در صورت تعریف) است، اما شامل رشته جستجو یا هش نمی‌شود.

آدرس اینترنتی URL.pathname
https://example.com [empty string]
https://example.com:8000/search?q=tabby /search
https://example.github.io/cat/pattern#tabby /cat/pattern
https://example.github.io/README.md /README.md

«مسیر» گاهی اوقات برای اشاره به نام مسیر بدون نام فایل استفاده می‌شود. برای مثال، برای URL https://example.com/cat/pattern/tabby.html ، «مسیر» /cat/pattern ‎ است.

بندر

عددی که بعد از علامت : در آدرس اینترنتی (URL) قرار می‌گیرد و پورت شبکه را مشخص می‌کند. برای مثال: برای آدرس اینترنتی https://example.com:1234/tabby شماره پورت ۱۲۳۴ است.

شماره پورت باید یک عدد صحیح بدون علامت ۱۶ بیتی باشد: به عبارت دیگر، یک عدد صحیح بین ۰ تا ۶۵۵۳۵.

برای یک URL HTTP، پورت پیش‌فرض ۸۰ است؛ برای HTTPS، پورت پیش‌فرض ۴۴۳ است. یک URL نیازی به مشخص کردن شماره پورت ندارد، مگر اینکه از پورتی غیر از پورت پیش‌فرض استفاده شود.

اگر پورت پیش‌فرض برای طرح باشد، API یک رشته خالی برمی‌گرداند.

آدرس اینترنتی URL.port
https://example.com // empty string
https://example.com:443/foo // empty string: port is default for scheme
https://www.example.com:1234/foo 1234

پروتکل

طرحی که به دنبال آن : می‌آید (برای مثال http: یا https: .

protocol از طریق API URL در دسترس است، اما scheme اینطور نیست.

پرس‌وجو (یا "رشته پرس‌وجو")

بخش جستجوی URL، به جز علامت ? در ابتدای آن.

دامنه قابل ثبت

  • برای یک URL با یک eTLD تک بخشی مانند com یا org (یعنی یک eTLD که با یک TLD مطابقت دارد)، دامنه و دامنه سطح دوم قبل از آن: برای مثال، example.com یا example.org .
  • برای یک URL با eTLD دو بخشی که فقط ثبت سطح سوم مجاز است (یعنی ورودی‌های موجود در فهرست پسوندهای عمومی مانند com.au و github.io )، دامنه سطح بالای دو بخشی ("پسوند عمومی") و نام دامنه سطح سوم درست قبل از آن. به عنوان مثال: example.org.au یا example.github.io .
  • برای eTLD هایی که سه یا چند بخش دارند، eTLD و دامنه قبل از آن.

طرح

بخشی از URL (قبل از :// ) که پروتکل شبکه (یا اقدامی که باید توسط عامل کاربر انجام شود) را هنگام ارسال درخواست به یک URL تعریف می‌کند. به عنوان مثال، درخواست به یک URL با طرح https باید با استفاده از پروتکل HTTPS انجام شود. برای درخواست به یک URL با طرحی مانند file ، mailto یا git که با پروتکل شبکه مطابقت ندارد، رفتار به عامل کاربر بستگی دارد. به عنوان مثال، وقتی کاربر روی لینک mailto کلیک می‌کند، اکثر مرورگرها برنامه ایمیل پیش‌فرض خود را با استفاده از مقادیر موجود در URL href لینک باز می‌کنند.

یک علامت سوال و به دنبال آن مجموعه‌ای از جفت‌های کلید-مقدار که نشان‌دهنده پارامترها و مقادیر آنها هستند، پس از نام مسیر ارائه می‌شوند.

آدرس اینترنتی URL.search
https://example.com/cats?pattern=tabby&mood=bonkers ?pattern=tabby&mood=bonkers
https://example.com/cats:443?pattern=tabby ?pattern=tabby

عبارت query یا "رشته جستجو" به search بدون علامت ? در ابتدای آن اشاره دارد.

همچنین به پارامترهای جستجو مراجعه کنید.

پارامترهای جستجو

به یک آیتم داده ارسال شده در یک رشته جستجو (یا "رشته پرس و جو") اشاره دارد.

  • برای مثال: برای https://example.com/cats?pattern=tabby&mood=bonkers ، رشته جستجو دو پارامتر دارد: pattern=tabby و mood=bonkers .

دامنه سطح دوم

دامنه قبل از یک دامنه سطح بالا .

  • برای آدرس اینترنتی https://www.example.com ، دامنه سطح دوم example.com است که زیردامنه دامنه سطح بالای com محسوب می‌شود.

  • برای https://example.org.au ، دامنه سطح بالا au ، دامنه سطح دوم org و دامنه سطح سوم example است. در این مثال، org.au زیر دامنه au و example.org.au زیر دامنه org.au است.

سایت

سایت توسط استاندارد HTML، همراه با same-site که شامل scheme و schemeless same-site می‌شود، تعریف می‌شود.

سایت در استاندارد URL یا API URL جاوا اسکریپت تعریف نشده است.

در این زمینه:

  • برای یک URL HTTP یا HTTPS با یک eTLD تک بخشی مانند https://example.com ، سایت شامل scheme ، eTLD و برچسب قبل از آن است. به عنوان مثال: برای URL https://www.example.com/cat ، سایت https://example.com است. (برای این URL، eTLD همان دامنه سطح بالا است.)
  • برای eTLD های چند بخشی مانند co.uk ، github.io یا sa.edu.au ، "سایت" شامل scheme ، eTLD و برچسب قبل از آن است. به عنوان مثال: برای URL https://cat.example.co.uk/tabby ، سایت https://example.co.uk است و برای https://www.education.sa.gov.au ، سایت https://education.sa.gov.au است.
آدرس اینترنتی سایت (با طرح و eTLD +1)
https://cat.example.com/tabby ("https"، "example.com")
https://cat.example.co.uk/tabby ("https"، "example.co.uk")

برخلاف origin ، سایت شامل پورت نمی‌شود.

زیردامنه

دامنه‌ای درون یک دامنه سطح بالاتر.

برای سایت‌هایی با دامنه‌های سطح بالای تک‌قسمتی مانند com یا org ، بخش‌های قبل از دامنه سطح بالا که هر کدام با یک نقطه از هم جدا شده‌اند.

  • www.example.com یک زیر دامنه از example.com است.
  • support.api.example.org یک زیر دامنه از api.example.org است که خود زیر دامنه‌ای از example.org است.

برای eTLD های دو بخشی که فقط ثبت نام سطح سوم مجاز است (یعنی ورودی‌های موجود در فهرست پسوندهای عمومی مانند co.uk و github.io )، زیر دامنه‌ها بخش‌هایی از نام دامنه قبل از آن هستند.

  • برای مثال: cat.example.co.uk یک زیر دامنه از example.co.uk است.

قطعه متن

نوعی قطعه متن که امکان پیوند دادن و برجسته کردن طیف وسیعی از متن را در یک صفحه فراهم می‌کند. وقتی کاربر پیوندی را با یک قطعه متن دنبال می‌کند، مرورگر تلاش می‌کند متن درون صفحه را پیدا کند، به آن اسکرول کند و برجسته کند.

یک قطعه متن با :~:text= شروع می‌شود و به دنبال آن عبارت جستجو می‌آید.

برای مثال، برای پیوند دادن به اولین مورد از متن "fragment" در این صفحه، از آدرس اینترنتی https://web.dev/articles/url-parts#:~:text=fragment استفاده کنید.

بیشتر بدانید: قطعات متن .

دامنه سطح بالا (TLD)

نام دامنه‌ای که در پایگاه داده منطقه ریشه (Root Zone Database) فهرست شده است، مانند com یا org . برخی از دامنه‌های سطح بالا، دامنه‌های سطح بالای کد کشوری هستند، مانند uk و tv .

هنگام توصیف بخش‌های یک URL HTTP یا HTTPS، TLD نام دامنه‌ای است که پس از نقطه پایانی می‌آید.

  • برای https://example.org ، دامنه سطح بالای URL، org است.
  • برای https://example.org.au ، دامنه سطح بالای URL، au است و org یک دامنه سطح دوم است (حتی اگر org نیز یک دامنه سطح بالا باشد). org.au یک eTLD دو بخشی است.

فهرست پسوندهای عمومی eTLD شامل دامنه‌هایی با یک، دو یا چند بخش است، بنابراین یک TLD می‌تواند یک eTLD نیز باشد. برای مثال:

  • برای https://example.com ، دامنه سطح بالای الکترونیکی (eTLD) آدرس اینترنتی، com است که آن هم یک TLD محسوب می‌شود.

نام کاربری

می‌توان نام کاربری و رمز عبور اختیاری را در ابتدای URL ارائه داد، اما این مورد به دلایل امنیتی منسوخ شده است و در بسیاری از موارد نادیده گرفته می‌شود.

برای مثال، در https://user123:password1@example.com نام کاربری user123 است. توجه داشته باشید که نام کاربری (و رمز عبور!) به صورت متن ساده است و رمزگذاری نشده است. اگر نام کاربری حاوی : یا @ باشد، باید URL آنها به ترتیب به %3A و %40 رمزگذاری شود.


اطلاعات بیشتر