اغلب اوقات اشکالی ندارد که چیزهایی مثل «من یک دامنه خریدم» یا «تصاویر ما در سایت دیگری میزبانی میشوند» بگویید، حتی اگر کاملاً درست نباشند. با این حال، در برخی زمینهها لازم است دقیقتر باشید. برای مثال، هنگام برخورد با کوکیها، باید تفاوت بین سایت و مبدا را درک کنید.
نامهای بخشهای 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 و برچسب قبل از آن است. به عنوان مثال: برای URLhttps://www.example.com/cat، سایتhttps://example.comاست. (برای این URL، eTLD همان دامنه سطح بالا است.) - برای eTLD های چند بخشی مانند
co.uk،github.ioیاsa.edu.au، "سایت" شاملscheme، eTLD و برچسب قبل از آن است. به عنوان مثال: برای URLhttps://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 رمزگذاری شود.
اطلاعات بیشتر
- WHATWG: آدرس اینترنتی استاندارد زندگی
- WHATWG: استاندارد زندگی HTML
- رابط برنامهنویسی کاربردی URL
- درک مفاهیم «همان سایت» و «همان مبدا»
- RFC: مکانیابهای منبع یکسان (URL)
- RFC: URIها، URLها و URNها
- پایگاه داده منطقه ریشه (فهرست دامنههای سطح بالا )
- فهرست پسوندهای عمومی (فهرست eTLDها : "یک پسوند عمومی مجموعهای از نامهای DNS یا کاراکترهای عمومی است که با نقطه به هم متصل شدهاند. این پسوند بخشی از نام دامنه را نشان میدهد که تحت کنترل ثبتکنندهی دامنه نیست.")
- واژهنامه آیکان
- نام دامنه کاملاً واجد شرایط چیست؟
- به چند روش میتوان یک URL را برش داد و قطعات آن را نامگذاری کرد؟
- واژهنامه اسناد وب MDN
- آدرس اینترنتی (URL) چیست؟
- تاریخچه URL