ส่วนใหญ่แล้วคุณสามารถพูดได้ว่า "ฉันซื้อโดเมน" หรือ "รูปภาพของเรา โฮสต์อยู่ในเว็บไซต์อื่น" แม้ว่าข้อความดังกล่าวจะไม่เป็นความจริงก็ตาม อย่างไรก็ตาม ใน บางบริบท คุณจำเป็นต้องมีความแม่นยำมากขึ้น ตัวอย่างเช่น เมื่อจัดการคุกกี้ คุณต้องเข้าใจความแตกต่างระหว่างเว็บไซต์และต้นทาง
ชื่อสำหรับส่วนต่างๆ ของ URL จะระบุไว้ในมาตรฐาน ซึ่งยังกำหนด JavaScript API ด้วย
- มาตรฐาน URL กำหนด URL และแนวคิดที่เกี่ยวข้อง เพื่อให้วิศวกรสร้างเว็บเบราว์เซอร์ที่ทำงานร่วมกันได้
- คอมโพเนนต์ URL API ของมาตรฐานจะกำหนดเมธอดเพื่อให้สิทธิ์เข้าถึงส่วนต่างๆ ของสตริง URL เช่น Scheme หรือOrigin
เอกสารนี้อธิบายคำศัพท์ต่างๆ ที่ใช้กับสตริง URL ของ HTTP หรือ HTTPS โดยจะไม่ครอบคลุม URL ประเภทอื่นๆ เช่น URL ของไฟล์หรือข้อมูล สำหรับคำต่างๆ เช่น
host และ origin คำจำกัดความที่ถูกต้องนั้นมีความซับซ้อนโดยธรรมชาติ ดังนั้นเอกสารนี้จึงแสดงตัวอย่างและลิงก์ไปยังมาตรฐาน URL แทนที่จะพยายามอธิบายอย่างละเอียด
คุณใช้ JavaScript เพื่อรับชื่อของคอมโพเนนต์ URL ที่กำหนดโดย URL API ได้ เช่น
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
ชื่อโดเมน
ส่วนของ URL แบบ HTTP หรือ HTTPS ที่คั่นด้วยจุด: ทุกอย่างหลังจากรูปแบบ แต่ก่อนเส้นทางหรือพอร์ต (หากระบุ) ส่วนต่างๆ ของชื่อโดเมนเรียกว่าป้ายกำกับ
| URL | ชื่อโดเมน |
|---|---|
| https://example.github.io/path | example.github.io |
| https://support.example.org.au:443 | support.example.org.au |
โดเมนระดับบนสุดที่มีประสิทธิภาพ (eTLD)
รายการในรายการคำต่อท้ายสาธารณะ รวมถึง TLD และ (สำหรับ eTLD ที่มีหลายส่วน) โดเมนเพิ่มเติมด้านล่าง: ระดับที่ 2 ระดับที่ 3 และอื่นๆ
- เช่น
com,com.au,github.io,sa.edu.au,schools.nsw.edu.au
"คำต่อท้ายสาธารณะ" เช่น ตัวอย่างเหล่านี้ คือชื่อที่สามารถจดทะเบียนโดเมนได้ รายการคำต่อท้ายสาธารณะคือรายการคำต่อท้ายสาธารณะที่ทราบทั้งหมด และ มีการอัปเดตบ่อยครั้ง เบราว์เซอร์ต่างๆ รวมถึง Chromium และ Firefox ใช้รายการนี้ในการสร้าง
eTLD+1
eTLD บวกโดเมนย่อยที่อยู่ก่อนหน้า
- เช่น
example.com,example.org.au,example.github.io,example.sa.edu.au,example.schools.nsw.edu.au
ชื่อไฟล์
ไม่ได้กำหนดไว้ในมาตรฐาน URL และไม่ได้เป็นส่วนหนึ่งของ URL API แต่ใช้กันโดยทั่วไป เพื่ออ้างอิงถึงส่วนสุดท้ายที่ไม่ใช่เส้นทางของ URL โดยอิงตาม สมมติฐานที่มักไม่ถูกต้องที่ว่า URL จะแมปกับโครงสร้างไดเรกทอรีโดยตรง
เช่น ใน https://example.com/dir/file.html อาจมีการอ้างอิงถึง file.html ว่าเป็นชื่อไฟล์
นอกจากนี้ เบราว์เซอร์ยังใช้ค่าชื่อไฟล์เพื่อตั้งชื่อชิ้นงานหากมีการดาวน์โหลดด้วย
เช่น โดยปกติแล้วระบบจะบันทึก https://example.com/images/image.jpg ไว้ในเครื่องที่ image.jpg
ส่วนย่อย
สตริงที่อยู่หลังอักขระ # ที่ส่วนท้ายของ URL ซึ่งระบุตัวระบุส่วนย่อย
- เช่น URL
https://example.com/cats#tabbyมีค่าตัวระบุส่วนย่อยเป็นtabby
ส่วนที่มี # เรียกว่าแฮชหรือแองเคอร์
นอกจากนี้ คุณยังลิงก์และไฮไลต์ข้อความบางส่วนได้ด้วย
แฮชจะแสดงผลโดย URL API แทน Fragment
ชื่อโดเมนที่สมบูรณ์ในตัวเอง (FQDN)
ที่อยู่ที่สมบูรณ์สำหรับเว็บไซต์หรือเซิร์ฟเวอร์ที่แมปกับที่อยู่ IP
| URL | FQDN |
|---|---|
| https://example.com:1234/cats | example.com |
| https://api.example.github.io | api.example.github.io |
FQDN สำหรับ URL จะไม่มีพอร์ต แม้ว่าจะใช้พอร์ตที่ไม่ใช่ค่าเริ่มต้น ก็ตาม
แฮช (หรือ Anchor)
สตริงที่อยู่หลังอักขระ # ที่ส่วนท้ายของ URL ซึ่งระบุตัวระบุส่วนย่อย (ในบางบริบท เราเรียกสิ่งนี้ว่า "Anchor")
ส่วนที่ไม่มี # เรียกว่าส่วนย่อย
นอกจากนี้ คุณยังลิงก์และไฮไลต์ข้อความบางส่วนได้ด้วย
แฮชจะแสดงผลโดย URL API แทน Fragment
โฮสต์
ตามที่กำหนดไว้ในมาตรฐาน URL โฮสต์อาจเป็นชื่อโดเมน ที่อยู่ IPv4 ที่อยู่ IPv6 โฮสต์ที่ไม่โปร่งใส หรือโฮสต์ว่าง
- คำจำกัดความของ
hostในมาตรฐาน URL ไม่รวมพอร์ต URL.hostมีพอร์ต เว้นแต่พอร์ตจะเป็นค่าเริ่มต้นสำหรับรูปแบบURL.hostnameไม่รวม พอร์ต
| URL | 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 |
ชื่อโฮสต์
ชื่อโฮสต์กำหนดโดย JavaScript URL API แต่ไม่ได้กำหนดโดยมาตรฐาน URL ในที่อื่นๆ
ดูรายละเอียดเพิ่มเติมได้ที่การเป็นตัวแทนของโฮสต์
URL.hostname จะแสดงผลโฮสต์โดยไม่มีพอร์ต
| URL | 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 |
Origin
มาตรฐาน URL กำหนด origin และลิงก์ไปยังมาตรฐาน HTML สำหรับข้อมูลพื้นฐาน
สำหรับ URL ของ HTTP หรือ HTTPS URL.origin จะแสดงรูปแบบ โฮสต์ และพอร์ต (ยกเว้นในกรณีที่พอร์ตเป็นค่าเริ่มต้น
สำหรับรูปแบบ)
| URL | 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 ส่วนที่อยู่หลังโดเมนและพอร์ต (หากกำหนดไว้) รวมถึงfilename (หากกำหนดไว้) แต่ไม่รวมสตริงการค้นหาหรือแฮช
| URL | 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 ที่ระบุพอร์ตเครือข่าย เช่น สำหรับ URL https://example.com:1234/tabby หมายเลขพอร์ตคือ 1234
หมายเลขพอร์ตต้องเป็นจำนวนเต็มแบบไม่มีเครื่องหมาย 16 บิต กล่าวคือ จำนวนเต็ม ระหว่าง 0 ถึง 65535
สำหรับ URL ของ HTTP พอร์ตเริ่มต้นคือ 80 ส่วน HTTPS พอร์ตเริ่มต้นคือ 443 URL ไม่จำเป็นต้องระบุหมายเลขพอร์ต เว้นแต่จะใช้พอร์ตที่ไม่ใช่ค่าเริ่มต้น
API จะแสดงผลสตริงว่างหากพอร์ตเป็นค่าเริ่มต้นสำหรับรูปแบบ
| URL | 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 พร้อมใช้งานจาก URL API แต่ scheme ไม่พร้อมใช้งาน
คำค้นหา (หรือ "สตริงการค้นหา")
ส่วน search ของ URL โดยไม่รวม ? ที่นำหน้า
โดเมนที่จดทะเบียนได้
- สำหรับ URL ที่มี eTLD แบบส่วนเดียว เช่น
comหรือorg(เช่น eTLD ที่สอดคล้องกับ TLD) โดเมนและโดเมนระดับที่ 2ก่อนหน้า เช่นexample.comหรือexample.org - สำหรับ URL ที่มี eTLD แบบ 2 ส่วนซึ่งอนุญาตให้ลงทะเบียนได้เฉพาะระดับที่ 3 (เช่น รายการในรายการคำต่อท้ายสาธารณะ เช่น
com.auและgithub.io) โดเมนระดับบนสุดแบบ 2 ส่วน ("คำต่อท้ายสาธารณะ") และชื่อโดเมนระดับที่ 3 ที่อยู่ก่อนหน้านั้น เช่นexample.org.auหรือexample.github.io - สำหรับ eTLD ที่มี 3 ส่วนขึ้นไป ระบบจะใช้ eTLD และโดเมนก่อนหน้า
แบบแผน
ส่วนของ URL (ก่อน ://) ที่กำหนดโปรโตคอลเครือข่าย (หรือการดำเนินการที่ User Agent จะทำ) เมื่อมีการส่งคำขอไปยัง URL เช่น คำขอไปยัง URL ที่มีรูปแบบ https ควรทำโดยใช้โปรโตคอล HTTPS สำหรับคำขอไปยัง URL ที่มีรูปแบบ
เช่น file, mailto หรือ git ซึ่งไม่สอดคล้องกับเครือข่าย
โปรโตคอล พฤติกรรมจะขึ้นอยู่กับ User Agent เช่น เมื่อผู้ใช้คลิกmailtoลิงก์ เบราว์เซอร์ส่วนใหญ่จะเปิดแอปพลิเคชันอีเมลเริ่มต้นโดยใช้ค่าใน hrefURL ของลิงก์
ค้นหา
เครื่องหมายคำถามตามด้วยชุดคู่คีย์-ค่าที่แสดงถึงพารามิเตอร์และค่าของพารามิเตอร์ ซึ่งระบุไว้หลังpathname
| URL | 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สตริงการค้นหามีพารามิเตอร์ 2 รายการ ได้แก่pattern=tabbyและmood=bonkers
โดเมนระดับที่ 2
โดเมนที่อยู่ก่อนโดเมนระดับบนสุด
สำหรับ URL
https://www.example.comโดเมนระดับที่ 2 คือexample.comซึ่งเป็นโดเมนย่อยของโดเมนระดับบนสุดcomสำหรับ
https://example.org.auโดเมนระดับบนสุดคือauโดเมนระดับที่ 2 คือorgและโดเมนระดับที่ 3 คือexampleในตัวอย่างนี้org.auเป็นโดเมนย่อยของauและexample.org.auเป็นโดเมนย่อยของorg.au
ไซต์
เว็บไซต์กำหนดโดย มาตรฐาน HTML พร้อมกับเว็บไซต์เดียวกัน ซึ่งรวมถึงรูปแบบ และ เว็บไซต์เดียวกันแบบไม่มีรูปแบบ
ไม่ได้กำหนดเว็บไซต์ในมาตรฐาน URL หรือ JavaScript URL API
ในบริบทนี้
- สำหรับ 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
| URL | เว็บไซต์ (มีรูปแบบและ eTLD +1) |
|---|---|
| https://cat.example.com/tabby | ("https", "example.com") |
| https://cat.example.co.uk/tabby | ("https", "example.co.uk") |
เว็บไซต์ไม่มีพอร์ต ซึ่งแตกต่างจากต้นทาง
โดเมนย่อย
โดเมนภายในโดเมนระดับที่สูงกว่า
สำหรับเว็บไซต์ที่มีโดเมนระดับบนสุดแบบส่วนเดียว เช่น com หรือ org ส่วนต่างๆ
ก่อนโดเมนระดับบนสุด โดยแต่ละส่วนจะคั่นด้วยจุด
www.example.comเป็นโดเมนย่อยของexample.comsupport.api.example.orgเป็นโดเมนย่อยของapi.example.orgซึ่งเป็นโดเมนย่อยของexample.org
สำหรับ eTLD แบบ 2 ส่วนที่อนุญาตให้ลงทะเบียนได้เฉพาะระดับที่ 3(เช่น รายการในรายการคำต่อท้ายสาธารณะ เช่น co.uk และ github.io) โดเมนย่อยคือส่วนของชื่อโดเมนก่อนหน้านั้น
- เช่น
cat.example.co.ukเป็นโดเมนย่อยของexample.co.uk
ข้อความที่ตัดตอนมา
Fragment ประเภทหนึ่งที่ช่วยให้ลิงก์และไฮไลต์ ข้อความช่วงหนึ่งๆ ภายในหน้าเว็บได้ เมื่อผู้ใช้ติดตามลิงก์ที่มีส่วนข้อความ เบราว์เซอร์จะพยายามค้นหา เลื่อนไปที่ และไฮไลต์ข้อความภายในหน้า
ข้อความที่ตัดตอนจะขึ้นต้นด้วย :~:text= ตามด้วยคำค้นหา
เช่น หากต้องการลิงก์ไปยังข้อความ "Fragment" ที่ปรากฏครั้งแรกในหน้านี้ ให้ใช้ URL https://web.dev/articles/url-parts#:~:text=fragment
ดูข้อมูลเพิ่มเติม: ข้อความบางส่วน
โดเมนระดับบนสุด (TLD)
ชื่อโดเมนที่แสดงในฐานข้อมูลโซนราก เช่น com หรือ org โดเมนระดับบนสุดบางโดเมนคือโดเมนระดับบนสุดตามรหัสประเทศ เช่น uk และ tv
เมื่ออธิบายส่วนต่างๆ ของ URL แบบ HTTP หรือ HTTPS โดเมนระดับบนสุดคือชื่อโดเมน ที่อยู่หลังจุดสุดท้าย
- สำหรับ
https://example.orgโดเมนระดับบนสุดของ URL คือorg - สำหรับ
https://example.org.auโดเมนระดับบนสุดของ URL คือauและorgคือโดเมนระดับที่ 2 (แม้ว่าorgจะเป็นโดเมนระดับบนสุดด้วย)org.auเป็น eTLD แบบ 2 ส่วน
รายการคำต่อท้ายสาธารณะของ eTLD มีโดเมนที่มีส่วนประกอบ 1, 2 หรือมากกว่านั้น ดังนั้น TLD จึงเป็น eTLD ได้ด้วย เช่น
- สำหรับ
https://example.comeTLD ของ URL คือcomซึ่งเป็น TLD ด้วย
ชื่อผู้ใช้
คุณระบุชื่อผู้ใช้และรหัสผ่านที่ไม่บังคับได้ที่จุดเริ่มต้น ของ URL แต่ระบบได้เลิกใช้งาน แล้วเนื่องด้วยเหตุผลด้านความปลอดภัย และจะละเว้นในหลายกรณี
เช่น เมื่อใช้ https://user123:password1@example.com ชื่อผู้ใช้จะเป็น
user123 โปรดทราบว่าชื่อผู้ใช้ (และรหัสผ่าน) จะอยู่ในรูปแบบข้อความธรรมดาและไม่ได้เข้ารหัส
หากชื่อผู้ใช้มีสัญลักษณ์ : หรือ @ จะต้องเข้ารหัส URL เป็น %3A
และ %40 ตามลำดับ
ดูข้อมูลเพิ่มเติม
- WHATWG: URL Living Standard
- WHATWG: มาตรฐาน HTML ที่ใช้งานจริง
- URL API
- ทำความเข้าใจ "เว็บไซต์เดียวกัน" และ "ต้นทางเดียวกัน"
- RFC: Uniform Resource Locator (URL)
- RFC: URI, URL และ URN
- ฐานข้อมูลรูทโซน (ไดเรกทอรีของ TLD)
- รายการคำต่อท้ายสาธารณะ (ไดเรกทอรีของ eTLDs: "คำต่อท้ายสาธารณะคือชุดชื่อ DNS หรือไวลด์การ์ดที่ต่อกัน ด้วยจุด ซึ่งแสดงถึงส่วนของชื่อโดเมนที่ไม่ได้อยู่ภายใต้ การควบคุมของผู้จดทะเบียนแต่ละราย")
- อภิธานศัพท์ของ ICANN
- ชื่อโดเมนที่สมบูรณ์ในตัวเองคืออะไร
- คุณแบ่ง URL ออกเป็นส่วนๆ และตั้งชื่อส่วนต่างๆ ได้กี่วิธี
- อภิธานศัพท์ MDN Web Docs
- URL คืออะไร
- ประวัติของ URL