ส่วนใหญ่แล้ว คุณพูดว่า "ฉันซื้อโดเมน" หรือ "รูปภาพของเราโฮสต์อยู่ในเว็บไซต์อื่น" ได้ แม้ว่าจะไม่ใช่ความจริงทั้งหมด อย่างไรก็ตาม ในบริบทบางอย่างก็จำเป็นต้องมีความแม่นยำมากขึ้น ตัวอย่างเช่น เมื่อจัดการกับคุกกี้ คุณต้องเข้าใจความแตกต่างระหว่างเว็บไซต์กับต้นทาง
ชื่อของส่วนต่างๆ ของ URL จะระบุไว้ในมาตรฐาน ซึ่งจะกำหนด JavaScript API ด้วย
- มาตรฐาน URL จะกำหนด URL และแนวคิดที่เกี่ยวข้องเพื่อให้วิศวกรสร้างเว็บเบราว์เซอร์ที่ทำงานร่วมกันได้
- คอมโพเนนต์ URL API ของมาตรฐานจะกำหนดวิธีการให้สิทธิ์เข้าถึงบางส่วนของสตริง URL เช่น รูปแบบหรือต้นทาง
เอกสารนี้อธิบายคําศัพท์ต่างๆ ที่ใช้ในการสตริง 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 หรือจะเปิดในแท็บแยกต่างหากที่ 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
ส่วนที่มี #
เรียกว่า แฮช หรือแอตทริบิวต์
นอกจากนี้ คุณยังลิงก์และไฮไลต์ข้อความที่ตัดตอนมาได้ด้วย
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 ซึ่งระบุตัวระบุส่วนย่อย (ในบริบทบางบริบท สิ่งนี้เรียกว่า "แอตทริบิวต์")
ส่วนที่ไม่รวม #
เรียกว่าข้อมูลโค้ด
นอกจากนี้ คุณยังลิงก์และไฮไลต์ข้อความที่ตัดตอนมาได้ด้วย
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 สำหรับพื้นหลัง
สําหรับ 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 |
บางครั้ง "เส้นทาง" ใช้เพื่ออ้างอิงเส้นทางที่ไม่มีชื่อไฟล์ เช่น "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
ไซต์
เว็บไซต์จะกำหนดโดยมาตรฐาน HTML รวมถึงเว็บไซต์เดียวกัน ซึ่งมีรูปแบบ และเว็บไซต์เดียวกันที่ไม่มีรูปแบบ
ไม่ได้กำหนดเว็บไซต์ไว้ในมาตรฐาน URL หรือ JavaScript URL API
บริบทนี้
- สําหรับ HTTP หรือ 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 ที่จะมี 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)
- รายการคำต่อท้ายสาธารณะ (ไดเรกทอรี eTLDs: "คำต่อท้ายสาธารณะคือชุดชื่อ DNS หรือไวลด์การ์ดที่ต่อท้ายด้วยจุด โดเมนย่อยแสดงถึงส่วนของชื่อโดเมนที่ไม่ได้อยู่ภายใต้การควบคุมของผู้จดทะเบียนแต่ละราย")
- อภิธานศัพท์ของ ICANN
- ชื่อโดเมนที่สมบูรณ์ในตัวเองคืออะไร
- คุณแบ่ง URL และตั้งชื่อ URL แต่ละส่วนได้กี่วิธี
- อภิธานศัพท์ของ MDN Web Docs
- URL คืออะไร
- ประวัติของ URL