URI là gì?

URI (Uniform Resource Identifier) là một chuỗi ký tự để định vị tài nguyên (tài nguyên đó ở đâu, là gì trên internet). Các tài nguyên có để là tài liệu (document - text, html ...), hình ảnh (image) ..., tài nguyên chính là mục tiêu của HTTP Request.

URI xác định tài nguyên bằng cách định vị vị trí (locator - địa chỉ) hoặc bằng tên, hoặc cả hai. Từ đó URI phân ra làm hai loại là URL và URN. (Có thể nói URL là URI, URN cũng là URI)

URN - Uniform Resource Name

URN (Uniform Resource Name) - Định danh tài nguyên thống nhất, là một loại URI, xác định tài nguyên thông qua tên hợp lệ, duy nhất (các tài nguyên ở trường hợp này có thể là bất kỳ thứ gì). Cấu trúc của URN thường có dạng: URN:NID:NSS ví dụ như URN:ISBN:8934974170617 trong đó:

  • URN chuỗi cho biết đây là URL
  • NID không gian tên (namespace) do IANA cấp (Internet Assigned Numbers Authority). Ví dụ ISBN (Mã số sách quốc tế) là một namespace. Các namespace khác có thể xem tại urn-namespaces
  • NSS chuỗi xác định đối tượng cụ thể

Ví dụ URN:ISBN:978-0531230145 là một URN, nó cho phép xác định cuốn sách là President Donald Trump (A True Book) . Còn URN URN:ISBN:8934974170617 tra cứu lưu chiểu thì đó là tiểu thuyết CON CHIM XANH BIẾC BAY VỀ của Nguyễn Nhật Ánh. Chú ý mỗi quốc gia có một cơ quan ISBN riêng, phải truy cập dữ liệu lưu chiểu của quốc gia đó mới tra được thông tin cuốn sách.

URN
Ví dụ mã vạch URN (URN ISBN)

URL - Uniform Resource Locator

URL (định vị tài nguyên thống nhất), nó là địa chỉ xác định tài nguyên trên internet, nó là một loại URI được dùng trong các siêu văn bản (Hypertext) và giao thức HTTP, nó được sử dụng bởi các browser (client) để lấy về hay cập nhật tài nguyên trên web. URL là địa chỉ xác định tài nguyên (trang HTML, file JS, file CSS, file ảnh ....) duy nhất trên Web.

URN
Các thành phần URL (Wikipedia)

Ví dụ:

http:// site.yourdomain.com /path/to/page/ ?a=1&b=price #section

  • scheme ví dụ https://, http://, ftp:// ... cho biết giao thức sử dụng để yêu cầu tài nguyên
  • host hoặc domain (ví dụ xuanthulab.net) có thể có port ví dụxuanthulab.net:80 ... không cần chỉ ra nếu sử dụng cổng tiêu chuẩn (cổng 80 với http và 443 với https)
  • path (ví dụ /path/to/page/) đường dẫn trên server dẫn tới tài nguyên, hiện nay không hẳn là một đường dẫn thực mà có thể là một logic ánh xạ bởi web server
  • query là chuỗi truy vấn, nó chứa các tham số ví dụ ?a=1&b=price, bắt đầu chuỗi query là dấu ? mỗi tham số thường gồm key=value, các tham số cách nhau bởi &
  • fragment (ví dụ #section), trỏ đến một phần củ thể trong tài nguyên, ví dụ một vị trí nào đó trong văn bản HTML.

URL được sử dụng để nhập vào thanh địa chỉ trình duyệt, để lấy về tài nguyên. Nó sử dụng trong các thẻ <a> để tạo ra các liên kết (đường link). URL trình bày đầy đủ ở trên là đường dẫn tuyệt đối, có đầy đủ thành phần scheme, host

Địa chỉ URL tương đối

Ngoài địa chỉ URL tuyệt đối, còn có thể sử dụng địa chỉ URL tương đối - địa chỉ này không cần có scheme, host, nó cho biết tài nguyên nằm cùng trên một host của tài nguyên ban đầu, nó thường bắt đầu bằng /, ví dụ:

Địa chỉ tuyệt đối ban đầu là: https://xuanthulab.net/abc/xyz trong nó có các địa chỉ tương đối, thì các địa chỉ tương đối xác định như sau:

Địa chỉ tương đối Địa chỉ tuyệt đối tương ứng
/abc/x1 https://xuanthulab.net/abc/x1

Địa chỉ tương đối bắt đầu với / thì nó cùng host, scheme với URL ban đầu

/abc-1 https://xuanthulab.net/abc-1
xxx/zzz https://xuanthulab.net/abc/xyz/xxx/zzz

Địa chỉ không bắt đầu bởi / thì nó địa chỉ con bắt đầu bởi địa chỉ tuyệt đối ban đầu

../xxx https://xuanthulab.net/abc/xxx

Kí hiệu ../ cho biết địa chỉ bắt đầu trở về gốc 1 cấp so với ban đầu. Ban dầu là https://xuanthulab.net/abc/xxx về gốc một cấp là https://xuanthulab.net/abc, sau đó là đường dẫn con xxx

Đăng ký theo dõi ủng hộ kênh