ส่วนประกอบของ URL มีอะไรบ้าง

ส่วนใหญ่คุณจะพูดคำสั่งอย่าง "ฉันซื้อโดเมน" หรือ "รูปภาพของเราโฮสต์อยู่บนเว็บไซต์อื่น" ได้ แม้ว่านั่นจะไม่ได้เป็นจริงก็ตาม แต่ในบางบริบทก็ต้องมีคำอธิบายอย่างเจาะจงมากขึ้น เช่น เมื่อจัดการกับคุกกี้ คุณต้องเข้าใจความแตกต่างระหว่าง 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

  • สำหรับ https://example.org.au ccTLD คือ au
  • สำหรับ https://example.io ccTLD คือ io

ชื่อโดเมน

ส่วนต่างๆ ของ 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 และป้ายกำกับที่อยู่ก่อนหน้า ตัวอย่างเช่น สำหรับ URL https://www.example.com/cat เว็บไซต์คือ https://example.com (สำหรับ URL นี้ eTLD จะเหมือนกับโดเมนระดับบนสุด)
  • สำหรับ eTLD ที่มีหลายส่วน เช่น co.uk, github.io หรือ sa.edu.au "เว็บไซต์" ประกอบด้วย scheme, eTLD และป้ายกำกับก่อนหน้านั้น ตัวอย่างเช่น สำหรับ URL https://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 ตามลำดับ


ดูข้อมูลเพิ่มเติม