Một URL gồm những phần nào?

Trong hầu hết trường hợp, bạn có thể nói những câu như "Tôi đã mua một miền" hoặc "Hình ảnh của chúng tôi được lưu trữ trên một trang web khác", ngay cả khi điều đó không hoàn toàn đúng. Tuy nhiên, trong một số ngữ cảnh, bạn cần phải chính xác hơn. Ví dụ: khi xử lý cookie, bạn cần hiểu sự khác biệt giữa trang webnguồn gốc.

Tên của các phần URL được chỉ định trong một tiêu chuẩn, cũng như xác định một API JavaScript:

  • Tiêu chuẩn URL xác định các URL và khái niệm liên quan để cho phép kỹ sư xây dựng trình duyệt web có khả năng tương tác.
  • Thành phần URL API của tiêu chuẩn này xác định các phương thức để cấp quyền truy cập vào các phần của chuỗi URL, chẳng hạn như lược đồ hoặc nguồn gốc.

Tài liệu này giải thích một loạt các thuật ngữ được dùng với chuỗi URL HTTP hoặc HTTPS. Tài liệu này không đề cập đến các loại URL khác, chẳng hạn như URL tệp hoặc dữ liệu. Đối với các thuật ngữ như hostorigin, định nghĩa chính xác vốn đã phức tạp, nên tài liệu này cung cấp các ví dụ và đường liên kết đến tiêu chuẩn URL, thay vì tìm cách giải thích đầy đủ.

Bạn có thể sử dụng JavaScript để lấy tên của các thành phần URL do API URL xác định. Ví dụ:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

Công cụ phân tích URL

Chỉnh sửa URL bên dưới để xem cách đặt tên cho các phần của chuỗi URL. Bạn cũng có thể mở tệp này trong một thẻ riêng tại url-parts.glitch.me.


Tên của các phần URL được liệt kê theo thứ tự bảng chữ cái dưới đây.

Miền cấp cao nhất theo mã quốc gia (ccTLD)

Miền cấp cao nhất được xác định trong danh sách Mã quốc gia ISO 3166-1.

  • Đối với https://example.org.au, ccTLD (miền cấp cao nhất theo mã quốc gia) là au.
  • Đối với https://example.io, ccTLD là io.

Tên miền

Các phần của URL HTTP hoặc HTTPS được phân tách bằng dấu chấm: mọi phần sau lược đồ, nhưng trước đường dẫn hoặc cổng (nếu được chỉ định). Mỗi phần của tên miền được gọi là một nhãn.

URL Tên miền
https://example.github.io/path example.github.io
https://support.example.org.au:443 support.example.org.au

Miền cấp cao nhất hiệu quả (eTLD)

Một mục trong Danh sách hậu tố công khai, bao gồm một TLD và (đối với eTLD có nhiều phần) các miền bổ sung bên dưới: cấp hai, cấp ba, v.v.

  • Ví dụ: com, com.au, github.io, sa.edu.au, schools.nsw.edu.au.

"Hậu tố công khai", chẳng hạn như các ví dụ này, là tên mà bạn có thể đăng ký miền. Danh sách hậu tố công khai là danh sách tất cả hậu tố công khai đã biết và được cập nhật thường xuyên. Các trình duyệt bao gồm ChromiumFirefox sử dụng danh sách này trong các bản dựng của chúng.

eTLD+1

Xem miền có thể đăng ký.

TLD mở rộng cộng với miền con đứng trước.

  • Ví dụ: example.com, example.org.au, example.github.io, example.sa.edu.au, example.schools.nsw.edu.au.

Tên tệp

Không được xác định trong tiêu chuẩn URL và không phải là một phần của API URL, nhưng thường được dùng để tham chiếu đến phần cuối cùng, không phải đường dẫn của URL dựa trên giả định (thường không chính xác) rằng URL liên kết trực tiếp đến cấu trúc thư mục.

Ví dụ: với https://example.com/dir/file.html, file.html có thể được gọi là tên tệp.

Giá trị tên tệp cũng được trình duyệt dùng để đặt tên cho một thành phần nếu thành phần đó được tải xuống. Ví dụ như https://example.com/images/image.jpg thường được lưu cục bộ vào image.jpg.

Mảnh

Một chuỗi theo sau ký tự # ở cuối URL cung cấp mã nhận dạng mảnh.

  • Ví dụ: URL https://example.com/cats#tabby có giá trị giá trị nhận dạng phân đoạn là tabby.

Phần chứa # được gọi là hàm băm hoặc neo. Bạn cũng có thể liên kết và đánh dấu một mảnh văn bản.

Hàm băm được API URL trả về thay vì mảnh.

Tên miền đủ điều kiện (FQDN)

Địa chỉ đầy đủ của một trang web hoặc máy chủ, liên kết đến một địa chỉ IP.

URL FQDN
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

FQDN cho một URL không bao gồm cổng, ngay cả khi bạn sử dụng cổng không phải mặc định.

Hàm băm (hoặc quảng cáo cố định)

Một chuỗi theo sau ký tự # ở cuối URL cung cấp giá trị nhận dạng mảnh. (Trong một số ngữ cảnh, chuỗi này được gọi là "điểm neo".)

Phần không bao gồm # được gọi là mảnh. Bạn cũng có thể liên kết và đánh dấu một mảnh văn bản.

Hàm băm được trả về bởi URL API thay vì mảnh.

Máy chủ

Như được xác định trong tiêu chuẩn URL, máy chủ lưu trữ có thể là tên miền, địa chỉ IP v4, địa chỉ IPv6, máy chủ lưu trữ mờ hoặc máy chủ lưu trữ trống.

  • Định nghĩa của tiêu chuẩn URL host không bao gồm cổng.
  • URL.host bao gồm cổng, trừ phi cổng đó là mặc định cho lược đồ.
  • URL.hostname không bao gồm cổng.
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

Tên máy chủ

Tên máy chủ được xác định bằng API URL của JavaScript, nhưng không được xác định ở nơi khác theo tiêu chuẩn URL. Hãy xem phần đại diện máy chủ để biết thêm thông tin chi tiết.

URL.hostname trả về máy chủ mà không có cổng.

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

Điểm gốc

Tiêu chuẩn URL xác định origin và liên kết đến tiêu chuẩn HTML cho chế độ nền.

Đối với URL HTTP hoặc HTTPS, URL.origin sẽ trả về lược đồ, máy chủ lưu trữcổng (trừ khi cổng là mặc định cho lược đồ).

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

Thông số

Xem Search params (Thông số tìm kiếm)

Mật khẩu

Xem tên người dùng.

Tên đường dẫn

Đối với URL HTTP hoặc HTTPS, phần sau miền và cổng (nếu được xác định), bao gồm tên tệp (nếu được xác định) nhưng không bao gồm chuỗi tìm kiếm hoặc hàm băm.

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

Đôi khi, "Đường dẫn" được dùng để chỉ đường dẫn không có tên tệp. Ví dụ: đối với URL https://example.com/cat/pattern/tabby.html, "đường dẫn" là /cat/pattern.

Cổng

Số sau : trong URL xác định một cổng mạng. Ví dụ: đối với URL https://example.com:1234/tabby, số cổng là 1234.

Số cổng phải là số nguyên 16 bit chưa ký: nói cách khác, một số nguyên từ 0 đến 65535.

Đối với URL HTTP, cổng mặc định là 80; đối với HTTPS, cổng mặc định là 443. URL không cần chỉ định số cổng trừ phi sử dụng cổng không phải cổng mặc định.

API sẽ trả về một chuỗi trống nếu cổng là mặc định cho lược đồ.

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

Giao thức

Lược đồ theo sau là : (ví dụ: http: hoặc https:).

protocol có trong API URL, nhưng scheme thì không.

Truy vấn (hoặc "chuỗi truy vấn")

Phần tìm kiếm của URL, không bao gồm ? ở đầu.

Miền có thể đăng ký

  • Đối với URL có eTLD một phần như com hoặc org (tức là eTLD tương ứng với TLD), miền và miền cấp hai đứng trước: ví dụ: example.com hoặc example.org.
  • Đối với URL có TLD điện tử gồm hai phần mà chỉ cho phép đăng ký cấp ba (tức là các mục trong Danh sách hậu tố công khai như com.augithub.io), miền cấp cao nhất gồm hai phần ("hậu tố công khai") và tên miền cấp ba ngay trước đó. Ví dụ: example.org.au hoặc example.github.io.
  • Đối với những eTLD có từ 3 phần trở lên, đó là eTLD và miền trước đó.

Lược đồ

Phần của URL (trước ://) xác định giao thức mạng (hoặc hành động mà tác nhân người dùng sẽ thực hiện) khi một yêu cầu được gửi đến một URL. Ví dụ: bạn nên thực hiện yêu cầu đến một URL có giao thức https bằng giao thức HTTPS. Đối với yêu cầu đến một URL có giao thức như file, mailto hoặc git không tương ứng với giao thức mạng, hành vi sẽ phụ thuộc vào tác nhân người dùng. Ví dụ: khi người dùng nhấp vào đường liên kết mailto, hầu hết trình duyệt sẽ mở ứng dụng email mặc định, sử dụng các giá trị trong URL href của đường liên kết.

Dấu chấm hỏi, theo sau là một loạt cặp khoá-giá trị đại diện cho các tham số và giá trị của các tham số đó, được cung cấp sau đường dẫn.

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 hoặc "chuỗi truy vấn" đề cập đến search không có ? ở đầu.

Hãy xem thêm bài viết Thông số tìm kiếm.

Tìm kiếm thông số

Tham chiếu đến một mục dữ liệu được truyền trong chuỗi tìm kiếm (hoặc "chuỗi truy vấn").

  • Ví dụ: đối với https://example.com/cats?pattern=tabby&mood=bonkers, chuỗi tìm kiếm có 2 tham số: pattern=tabbymood=bonkers.

Miền cấp hai

Miền trước miền cấp cao nhất.

  • Đối với URL https://www.example.com, miền cấp hai là example.com, một miền con của miền cấp cao nhất com.

  • Đối với https://example.org.au, miền cấp cao nhất là au, miền cấp hai là org và miền cấp ba là example. Trong ví dụ này, org.au là miền con của auexample.org.au là miền con của org.au.

Trang web

Trang web được xác định theo tiêu chuẩn HTML, cùng với cùng một trang web, bao gồm giao thứctrang web cùng giao thức không có giao thức.

Trang web không được xác định trong tiêu chuẩn URL hoặc JavaScript API URL.

Trong ngữ cảnh này:

  • Đối với URL HTTP hoặc HTTPS có TLD mở rộng gồm một phần như https://example.com, trang web sẽ bao gồm scheme, TLD mở rộng và nhãn trước đó. Ví dụ: đối với URL https://www.example.com/cat, trang web là https://example.com. (Đối với URL này, eTLD giống với miền cấp cao nhất.)
  • Đối với eTLD nhiều phần như co.uk, github.io hoặc sa.edu.au, "trang web" bao gồm scheme, eTLDnhãn trước đó. Ví dụ: đối với URL https://cat.example.co.uk/tabby, trang web là https://example.co.uk và đối với https://www.education.sa.gov.au, trang web là https://education.sa.gov.au.
URL Trang web (có lược đồ và eTLD +1)
https://cat.example.com/tabby ("https", "example.com")
https://cat.example.co.uk/tabby ("https", "example.co.uk")

Không giống như nguồn gốc, trang web không bao gồm cổng.

Miền con

Một miền trong một miền cấp cao hơn.

Đối với các trang web có miền cấp cao nhất gồm một phần như com hoặc org, các phần trước miền cấp cao nhất, mỗi phần được phân tách bằng dấu chấm.

  • www.example.com là miền con của example.com.
  • support.api.example.org là miền con của api.example.org, là miền con của example.org.

Đối với các TLD điện tử gồm hai phần mà chỉ cho phép đăng ký cấp ba (tức là các mục trong Danh sách hậu tố công khai như co.ukgithub.io), miền con là các phần của tên miền trước đó.

  • Ví dụ: cat.example.co.uk là miền con của example.co.uk.

Mảnh văn bản

Một loại mảnh giúp bạn có thể liên kết đến và đánh dấu một loạt văn bản trên trang. Khi người dùng truy cập vào một đường liên kết có đoạn văn bản, trình duyệt sẽ cố gắng xác định vị trí, cuộn đến và làm nổi bật văn bản trong trang.

Mảnh văn bản bắt đầu bằng :~:text=, theo sau là cụm từ tìm kiếm.

Ví dụ: để liên kết đến lần xuất hiện đầu tiên của văn bản "mảnh" trên trang này, hãy sử dụng URL https://web.dev/articles/url-parts#:~:text=fragment.

Tìm hiểu thêm: Phân đoạn văn bản.

Miền cấp cao nhất (TLD)

Một tên miền được liệt kê trong Cơ sở dữ liệu vùng gốc, chẳng hạn như com hoặc org. Một số miền cấp cao nhất là miền cấp cao nhất theo mã quốc gia, chẳng hạn như uktv.

Khi mô tả các phần của URL HTTP hoặc HTTPS, TLD là tên miền theo sau dấu chấm cuối cùng.

  • Đối với https://example.org, miền cấp cao nhất của URL là org.
  • Đối với https://example.org.au, miền cấp cao nhất của URL là auorgmiền cấp hai (mặc dù org cũng là miền cấp cao nhất). org.au là một eTLD gồm hai phần.

Danh sách hậu tố công khai của eTLD bao gồm các miền có một, hai hoặc nhiều phần, vì vậy, TLD cũng có thể là eTLD. Ví dụ:

  • Đối với https://example.com, eTLD của URL là com, cũng là một TLD.

Tên người dùng

Bạn có thể cung cấp tên người dùng và mật khẩu không bắt buộc ở đầu URL, nhưng tính năng này không còn được dùng nữa vì lý do bảo mật và sẽ bị bỏ qua trong nhiều trường hợp.

Ví dụ: với https://user123:password1@example.com, tên người dùng là user123. Xin lưu ý rằng tên người dùng (và mật khẩu!) là văn bản thuần tuý và không được mã hoá. Nếu tên người dùng chứa ký hiệu : hoặc @, thì tên người dùng phải là URL được mã hoá thành %3A%40 tương ứng.


Tìm hiểu thêm