ส่วนใหญ่คุณจะพูดคำสั่งอย่าง "ฉันซื้อโดเมน" หรือ "รูปภาพของเราโฮสต์อยู่บนเว็บไซต์อื่น" ได้ แม้ว่านั่นจะไม่ได้เป็นจริงก็ตาม แต่ในบางบริบทก็ต้องมีคำอธิบายอย่างเจาะจงมากขึ้น เช่น เมื่อจัดการกับคุกกี้ คุณต้องเข้าใจความแตกต่างระหว่าง site และ origin
ชื่อของส่วนต่างๆ ของ 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
ชื่อโดเมน
ส่วนต่างๆ ของ HTTP หรือ HTTPS URL ที่คั่นด้วยจุด: ทุกอย่างที่อยู่หลังรูปแบบ แต่อยู่ก่อนเส้นทางหรือพอร์ต (หากระบุ) ชื่อโดเมนแต่ละส่วนเรียกว่าป้ายกำกับ
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
ส่วนที่มี #
จะเรียกว่า แฮช หรือ Anchor
คุณยังลิงก์ไปยังและไฮไลต์ส่วนย่อยข้อความได้ด้วย
ซึ่ง URL API จะแสดงผลแฮชแทนส่วนย่อย
ชื่อโดเมนที่สมบูรณ์ในตัวเอง (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 จะแสดงผลแฮชแทนส่วนย่อย
โฮสต์
ดังที่กำหนดไว้ในมาตรฐาน URL โฮสต์อาจเป็นชื่อโดเมน, ที่อยู่ IP v4, ที่อยู่ IPv6, โฮสต์ที่คลุมเครือ หรือโฮสต์ที่ว่างเปล่า
- คำจำกัดความมาตรฐานของ URL ของ
host
ไม่รวมพอร์ต 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 |
พารามิเตอร์
รหัสผ่าน
ดู username
ชื่อเส้นทาง
สำหรับ HTTP URL หรือ HTTPS URL ส่วนที่อยู่หลังโดเมนและพอร์ต (หากกำหนดไว้) ซึ่งรวมถึงชื่อไฟล์ (หากกำหนดไว้) แต่ไม่รวมสตริงการค้นหาหรือแฮช
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
สำหรับ HTTP URL พอร์ตเริ่มต้นคือ 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
ไม่พร้อมใช้งาน
การค้นหา (หรือ "สตริงการค้นหา")
ส่วนการค้นหาของ URL ยกเว้น ?
นําหน้า
โดเมนที่จดทะเบียนได้
- สำหรับ URL ที่มี eTLD ส่วนเดียว เช่น
com
หรือorg
(นั่นคือ eTLD ที่สอดคล้องกับ TLD) โดเมนและโดเมนระดับที่ 2 ที่อยู่ก่อน เช่นexample.com
หรือexample.org
- สำหรับ URL ที่มี eTLD แบบ 2 ส่วน โดยจะอนุญาตเฉพาะการจดทะเบียนระดับบุคคลที่สาม (เช่น รายการในรายการคำต่อท้ายสาธารณะ เช่น
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
โดเมนระดับที่สอง
โดเมนก่อนโดเมนระดับบนสุด
สำหรับ 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
ในบริบทนี้
- สำหรับ HTTP URL หรือ HTTPS URL ที่มี 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
โดเมนย่อย
โดเมนภายในโดเมนในระดับที่สูงกว่า
สำหรับเว็บไซต์ที่มีโดเมนระดับบนสุดแบบส่วนเดียว เช่น 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=
ตามด้วยข้อความค้นหา
เช่น หากต้องการลิงก์ไปยังข้อความ "แฟรกเมนต์" ที่ปรากฏครั้งแรกในหน้านี้ ให้ใช้ URL https://web.dev/articles/url-parts#:~:text=fragment
ดูข้อมูลเพิ่มเติม: ส่วนย่อยของข้อความ
โดเมนระดับบนสุด (TLD)
ชื่อโดเมนที่แสดงใน Root Zone Database เช่น com
หรือ org
โดเมนระดับบนสุดบางรายการเป็นโดเมนระดับบนสุดตามรหัสประเทศ เช่น uk
และ tv
เมื่ออธิบายส่วนต่างๆ ของ HTTP URL หรือ HTTPS URL TLD คือชื่อโดเมนที่ตามหลังจุดสุดท้าย
- โดเมนระดับบนสุดของ URL สำหรับ
https://example.org
คือorg
- สำหรับ
https://example.org.au
โดเมนระดับบนสุดของ URL คือau
และorg
เป็นโดเมนระดับที่ 2 (แม้ว่าorg
จะเป็นโดเมนระดับบนสุดก็ตาม)org.au
เป็น eTLD แบบ 2 ส่วน
รายการคำต่อท้ายสาธารณะของ eTLD ประกอบด้วยโดเมนที่มี 1, 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
- URL API
- การทำความเข้าใจ "เว็บไซต์เดียวกัน" และ "ต้นทางเดียวกัน"
- RFC: Uniform Resource Locator (URL)
- RFC: URI, URL และ URN
- Root Zone Database (ไดเรกทอรีของ TLD)
- รายการคำต่อท้ายสาธารณะ (ไดเรกทอรีของ eTLDs: "คำต่อท้ายสาธารณะคือชุดของชื่อ DNS หรือไวลด์การ์ดที่ต่อกันด้วยจุด โดยแสดงถึงส่วนของชื่อโดเมนที่ไม่ได้อยู่ในการควบคุมของผู้จดทะเบียนแต่ละราย")
- อภิธานศัพท์ของ ICANN
- ชื่อโดเมนที่สมบูรณ์ในตัวเองคืออะไร
- คุณจะแบ่ง URL หนึ่งๆ และตั้งชื่อชิ้นส่วนได้กี่วิธี
- อภิธานศัพท์เกี่ยวกับเอกสารในเว็บ MN
- URL คืออะไร
- ประวัติของ URL