Trong hầu hết trường hợp, bạn có thể nói những câu như "Tôi đã mua 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 site và origin.
Tên cho các phần URL được chỉ định trong một tiêu chuẩn, tiêu chuẩn này cũng xác định API JavaScript:
- Tiêu chuẩn URL xác định URL và các khái niệm liên quan để cho phép các kỹ sư xây dựng các trình duyệt web có khả năng tương tác.
- Thành phần API URL của tiêu chuẩn xác định các phương thức để cung 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ữ dùng với chuỗi URL loại 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 URL dữ liệu. Đối với những thuật ngữ như host
và origin
, việc định nghĩa chính xác vốn đã phức tạp, vì vậy, tài liệu này đưa ra các ví dụ và đường liên kết đến URL chuẩn, thay vì cố gắng 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);
Trình 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 cho 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 (miền cấp cao nhất theo mã quốc gia) làio
.
Tên miền
Các phần của URL loại HTTP hoặc HTTPS được phân tách bằng dấu chấm: mọi nội dung nằm 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ục nhập trong Danh sách hậu tố công khai, bao gồm cả TLD và(đối với eTLD có nhiều phần) các miền bổ sung bên dưới: cấp 2, cấp 3, 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ư những 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 Chromium và Firefox sử dụng danh sách này trong bản dựng của chúng.
eTLD+1
Xem phần miền có thể đăng ký.
Một eTLD 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 một 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 ánh xạ trực tiếp đến một 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.
Các trình duyệt cũng sử dụng giá trị tên tệp để đặt tên cho thành phần nếu thành phần đó được tải xuống.
Ví dụ: https://example.com/images/image.jpg
thường sẽ được lưu cục bộ vào image.jpg
.
Fragment
Một chuỗi theo sau một ký tự # ở cuối URL cung cấp giá trị nhận dạng mảnh.
- Ví dụ: URL
https://example.com/cats#tabby
có giá trị nhận dạng mảnh làtabby
.
Phần chứa #
được gọi là hash hoặc liên kết.
Bạn cũng có thể liên kết đến 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 đủ cho một trang web hoặc máy chủ, ánh xạ với 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 sử dụng cổng không phải cổng mặc định.
Hàm băm (hoặc liên kết)
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à "neo".)
Phần loại trừ #
được gọi là mảnh.
Bạn cũng có thể liên kết đến 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.
Thành phần lưu trữ
Như đã 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ủ mờ hoặc máy chủ trống.
- Định nghĩa
host
của chuẩn URL 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ởi API JavaScript URL
, nhưng không được xác định ở nơi nào khác theo tiêu chuẩn URL. Vui lòng xem phần nội dung trình bày của người tổ chức để biết thêm chi tiết.
URL.hostname
trả về máy chủ lưu trữ 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 làm nền.
Đối với các URL HTTP hoặc HTTPS, URL.origin
sẽ trả về lược đồ, máy chủ lưu trữ và cổng (trừ phi 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ố
Mật khẩu
Xem phần tên người dùng.
Tên đường dẫn
Đối với URL loại HTTP hoặc HTTPS, phần nằm 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 |
"Đường dẫn" đôi khi được dùng để tham chiếu đến tên đườ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 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, đó là một số nguyên từ 0 đến 65535.
Đối với URL loại HTTP, cổng mặc định là 80; đối với HTTPS, giá trị mặc định là 443. URL không cần chỉ định số cổng trừ phi sử dụng một 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à giá trị 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
Giao thức theo sau là :
(ví dụ: http:
hoặc https:
).
protocol
có sẵn 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, ngoại trừ ?
ở đầu.
Miền có thể đăng ký
- Đối với URL có eTLD gồm một phần như
com
hoặcorg
(tức là một eTLD tương ứng với một TLD), miền và miền cấp hai trước miền này, chẳng hạn nhưexample.com
hoặcexample.org
. - Đối với một URL có eTLD gồm hai phần mà chỉ cho phép đăng ký cấp thứ ba (tức là các mục trong Danh sách hậu tố công khai, chẳng hạn như
com.au
vàgithub.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ặcexample.github.io
. - Đối với eTLD có từ 3 phần trở lên, 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 cần thực hiện) khi gửi yêu cầu cho một URL. Ví dụ: bạn phải thực hiện yêu cầu tới một URL có lược đồ https
bằng giao thức HTTPS. Đối với yêu cầu tới một URL có lược đồ như file
, mailto
hoặc git
không tương ứng với giao thức mạng, hành vi phụ thuộc vào tác nhân người dùng. Ví dụ: khi người dùng nhấp vào một đường liên kết mailto
, hầu hết các trình duyệt sẽ mở ứng dụng email mặc định bằng cách sử dụng các giá trị trong URL href
của đường liên kết đó.
Tìm kiếm
Dấu chấm hỏi theo sau là một loạt cặp khoá-giá trị đại diện cho tham số và giá trị của các tham số đó, được cung cấp sau tên đườ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" tham chiếu đến search
không có ?
ở đầu.
Xem thêm về Thông số tìm kiếm.
Thông số tìm kiếm
Tham chiếu đến một mục dữ liệu được chuyển trong một 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ó hai tham số:pattern=tabby
vàmood=bonkers
.
Miền cấp hai
Miền trước một 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ấtcom
.Đố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ủaau
vàexample.org.au
là miền con củaorg.au
.
Trang web
Trang web được xác định theo tiêu chuẩn HTML, cùng với same-site bao gồm lược đồ và cùng trang web không có giao diện.
Trang web không được xác định trong chuẩn URL hoặc API URL JavaScript.
Trong ngữ cảnh này:
- Đối với URL loại HTTP hoặc HTTPS có eTLD gồm một phần, chẳng hạn như
https://example.com
, trang web sẽ bao gồmscheme
, eTLD và nhãn trước phần đó. Ví dụ: đối với URLhttps://www.example.com/cat
, trang web làhttps://example.com
. (Đối với URL này, eTLD giống như miền cấp cao nhất.) - Đối với các eTLD nhiều phần, chẳng hạn như
co.uk
,github.io
hoặcsa.edu.au
, "trang web" bao gồmscheme
, eTLD và nhãn trước đó. Ví dụ: đối với URLhttps://cat.example.co.uk/tabby
, trang web làhttps://example.co.uk
và đối vớihttps://www.education.sa.gov.au
trang web làhttps://education.sa.gov.au
.
URL | Trang web (có giao thứ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ư origin (nguồn gốc), trang web không bao gồm cổng.
Miền con
Miền trong miền cấp cao hơn.
Đối với những trang web có miền cấp cao nhất 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ủaexample.com
.support.api.example.org
là một miền con củaapi.example.org
(là miền con củaexample.org
).
Đối với các eTLD gồm hai phần mà chỉ cho phép đăng ký cấp thứ ba(tức là các mục nhập trong Danh sách hậu tố công khai như co.uk
và github.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ủaexample.co.uk
.
Mảnh văn bản
Một loại mảnh giúp bạn có thể liên kết và đánh dấu một dải văn bản trong một trang. Khi người dùng nhấp vào đường liên kết có một mảnh văn bản, trình duyệt sẽ cố gắng tìm, cuộn đến và đánh dấu văn bản trên trang.
Một 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 "fragment" 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: Đoạn văn bản.
Miền cấp cao nhất (TLD)
Tên miền có 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ư uk
và tv
.
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àau
vàorg
là miề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ả những miền có một, hai hoặc nhiều phần, vì vậy, TLD cũng có thể là một 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 thuộc tính này không đượ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 sẽ là user123
. Xin lưu ý rằng tên người dùng (và mật khẩu!) ở dạng 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ì chúng phải được mã hoá URL tương ứng thành %3A
và %40
.
Tìm hiểu thêm
- WhatWG: Tiêu chuẩn sống của URL
- WhatWG: Tiêu chuẩn sống HTML
- API URL
- Tìm hiểu "same-site" và "same-origin"
- RFC: Bộ định vị tài nguyên thống nhất (URL)
- RFC: URI, URL và URN
- Cơ sở dữ liệu vùng gốc (thư mục của TLD)
- Danh sách hậu tố công khai (thư mục của eTLDs): "Hậu tố công khai là một tập hợp các tên DNS hoặc ký tự đại diện được nối với dấu chấm. Thuộc tính này đại diện cho một phần tên miền không thuộc quyền kiểm soát của người đăng ký cá nhân.")
- Bảng thuật ngữ của ICANN
- Tên miền đủ điều kiện là gì?
- Có bao nhiêu cách để chia nhỏ URL và đặt tên cho các thành phần đó?
- Bảng chú giải thuật ngữ về Tài liệu web MN
- URL là gì?
- Lịch sử của URL