ส่วนใหญ่แล้ว คุณจะสามารถพูดได้ว่า "ฉันซื้อโดเมน" หรือ "รูปภาพของเราโฮสต์อยู่ในเว็บไซต์อื่น" แม้จะไม่ใช่เรื่องจริงเสมอไป อย่างไรก็ตาม ในบริบทบางอย่างก็จำเป็นต้องมีความแม่นยำมากขึ้น ตัวอย่างเช่น เมื่อจัดการกับคุกกี้ คุณต้องเข้าใจความแตกต่างระหว่างเว็บไซต์กับต้นทาง
ชื่อสำหรับส่วน URL จะระบุไว้ในมาตรฐาน ซึ่งเป็นการกำหนด JavaScript API ด้วย
- มาตรฐาน URL กำหนด URL และแนวคิดที่เกี่ยวข้องเพื่อให้วิศวกรสร้างเว็บเบราว์เซอร์ที่ทำงานร่วมกันได้
- คอมโพเนนต์ URL API ของมาตรฐานจะกำหนดวิธีการให้สิทธิ์เข้าถึงบางส่วนของสตริง URL เช่น รูปแบบหรือต้นทาง
เอกสารนี้อธิบายช่วงของคำที่ใช้กับสตริง HTTP หรือ HTTPS URL และไม่ครอบคลุม 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 หรือจะเปิดในแท็บแยกต่างหากที่ url-parts.glitch.me ก็ได้
ชื่อของส่วนต่างๆ ของ 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
ส่วนที่มี #
เรียกว่า แฮช หรือแอตทริบิวต์
นอกจากนี้ คุณยังลิงก์และไฮไลต์ข้อความที่ตัดตอนมาได้ด้วย
โดย API ของ URL จะแสดงผลแฮชแทนส่วนย่อย
ชื่อโดเมนที่สมบูรณ์ในตัวเอง (FQDN)
ที่อยู่แบบสมบูรณ์ของเว็บไซต์หรือเซิร์ฟเวอร์ที่แมปกับที่อยู่ IP
URL | FQDN |
---|---|
https://example.com:1234/cats | example.com |
https://api.example.github.io | api.example.github.io |
FQDN สำหรับ URL จะไม่มีพอร์ต แม้ว่าจะใช้พอร์ตที่ไม่ใช่ค่าเริ่มต้นก็ตาม
แฮช (หรือ Anchor)
สตริงที่ตามหลังอักขระ # ที่ท้าย URL ซึ่งมีตัวระบุส่วนย่อย (ในบางบริบทจะเรียกว่า "แองเคอร์")
ส่วนที่ไม่รวม #
นั้นเรียกว่าส่วนย่อย
คุณยังสามารถลิงก์และไฮไลต์ส่วนย่อยข้อความได้ด้วย
URL API จะแสดงผลแฮชแทนที่จะเป็นข้อมูลโค้ด
โฮสต์
ตามที่กำหนดไว้ในมาตรฐาน URL โฮสต์อาจเป็นชื่อโดเมน ที่อยู่ IP v4 ที่อยู่ 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 สำหรับพื้นหลัง
สำหรับ HTTP URL หรือ 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 |
บางครั้ง "เส้นทาง" จะใช้เพื่ออ้างถึงชื่อเส้นทางโดยไม่มีชื่อไฟล์ เช่น "path" ของ 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 แบบ 1 ส่วน เช่น
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
เบราว์เซอร์ส่วนใหญ่จะเปิดแอปพลิเคชันอีเมลเริ่มต้นโดยใช้ค่าใน URL href
ของลิงก์
ค้นหา
เครื่องหมายคำถามตามด้วยชุดคู่คีย์-ค่าที่แทนพารามิเตอร์และค่าซึ่งระบุไว้หลัง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
ไซต์
Site ได้รับการกำหนดตามมาตรฐาน HTML รวมถึงเว็บไซต์เดียวกัน ซึ่งจะรวม Scheme และเว็บไซต์เดียวกันแบบไร้รูปแบบ
ไม่ได้กำหนดเว็บไซต์ไว้ในมาตรฐาน 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") |
ซึ่งต่างจาก origin ที่จะมี port ด้วย
โดเมนย่อย
โดเมนภายในโดเมนระดับที่สูงกว่า
สำหรับเว็บไซต์ที่มีโดเมนระดับบนสุดแบบ 1 ส่วน เช่น com
หรือ org
ส่วนที่อยู่ก่อนโดเมนระดับบนสุด โดยแต่ละส่วนจะคั่นด้วยจุด
www.example.com
เป็นโดเมนย่อยของexample.com
support.api.example.org
เป็นโดเมนย่อยของapi.example.org
ซึ่งเป็นโดเมนย่อยของexample.org
สำหรับ eTLD แบบ 2 ส่วนซึ่งอนุญาตให้จดทะเบียนได้เฉพาะระดับที่ 3 (นั่นคือ รายการในรายการคำต่อท้ายสาธารณะ เช่น co.uk
และ github.io
) โดเมนย่อยคือส่วนที่อยู่ก่อนชื่อโดเมนนั้น
- เช่น
cat.example.co.uk
เป็นโดเมนย่อยของexample.co.uk
ข้อความที่ตัดตอนมา
ข้อมูลโค้ดประเภทหนึ่งที่ช่วยให้ลิงก์และไฮไลต์ข้อความช่วงหนึ่งในหน้าเว็บได้ เมื่อผู้ใช้ติดตามลิงก์ที่มีข้อความที่ตัดตอนมา เบราว์เซอร์จะพยายามค้นหา เลื่อนไปยัง และไฮไลต์ข้อความภายในหน้าเว็บ
ข้อความที่ตัดตอนมาขึ้นต้นด้วย :~:text=
ตามด้วยข้อความค้นหา
เช่น หากต้องการลิงก์ไปยังข้อความ "fragment" ที่ปรากฏขึ้นครั้งแรกในหน้านี้ ให้ใช้ URL https://web.dev/articles/url-parts#:~:text=fragment
ดูข้อมูลเพิ่มเติม: ข้อความที่ตัดตอนมา
โดเมนระดับบนสุด (TLD)
ชื่อโดเมนที่แสดงในฐานข้อมูลโซนรูท เช่น com
หรือ org
โดเมนระดับบนสุดบางรายการเป็นโดเมนระดับบนสุดตามรหัสประเทศ เช่น uk
และ tv
เมื่ออธิบายส่วนต่างๆ ของ URL ของ HTTP หรือ HTTPS นั้น TLD คือชื่อโดเมนที่อยู่ต่อจากจุดสุดท้าย
- สำหรับ
https://example.org
โดเมนระดับบนสุดของ URL คือorg
- สำหรับ
https://example.org.au
โดเมนระดับบนสุดของ URL คือau
และorg
คือโดเมนระดับที่ 2 (แม้ว่าorg
จะเป็นโดเมนระดับบนสุดด้วยก็ตาม)org.au
เป็น eTLD แบบ 2 ส่วน
รายการคำต่อท้ายสาธารณะของ eTLD ประกอบด้วยโดเมนที่มี 1, 2 หรือมากกว่า 2 ส่วน ดังนั้น TLD จึงอาจเป็น eTLD ได้เช่นกัน เช่น
- สำหรับ
https://example.com
eTLD ของ URL คือcom
ซึ่งเป็น TLD ด้วย
ชื่อผู้ใช้
คุณระบุชื่อผู้ใช้และรหัสผ่านได้ที่ตอนต้นของ URL แต่เราเลิกใช้งานตัวเลือกนี้แล้วเพื่อเหตุผลด้านความปลอดภัยและระบบจะไม่สนใจตัวเลือกนี้ในหลายกรณี
ตัวอย่างเช่น หากเป็น https://user123:password1@example.com
ชื่อผู้ใช้คือ user123
โปรดทราบว่าชื่อผู้ใช้ (และรหัสผ่าน) อยู่ในรูปแบบข้อความธรรมดาและไม่ได้เข้ารหัส
หากชื่อผู้ใช้มีสัญลักษณ์ :
หรือ @
สัญลักษณ์ดังกล่าวต้องเข้ารหัส URL เป็น %3A
และ %40
ตามลำดับ
ดูข้อมูลเพิ่มเติม
- WHATWG: URL Living Standard
- WHATWG: HTML Living Standard
- URL API
- การทำความเข้าใจ "เว็บไซต์เดียวกัน" และ "ต้นทางเดียวกัน"
- RFC: Uniform Resource Locators (URL)
- RFC: URI, URL และ URN
- ฐานข้อมูลโซนรูท (ไดเรกทอรีของ TLD)
- รายการคำต่อท้ายสาธารณะ (ไดเรกทอรี eTLD: "คำต่อท้ายสาธารณะคือชุดชื่อ DNS หรือไวลด์การ์ดที่ต่อท้ายด้วยจุด โดยแสดงถึงส่วนของชื่อโดเมนที่ไม่อยู่ภายใต้การควบคุมของผู้จดทะเบียนแต่ละราย")
- อภิธานศัพท์ของ ICANN
- ชื่อโดเมนที่สมบูรณ์ในตัวเองคืออะไร
- คุณแบ่ง URL และตั้งชื่อ URL แต่ละส่วนได้กี่วิธี
- อภิธานศัพท์ของ MDN Web Docs
- URL คืออะไร
- ประวัติของ URL