Bài viết được sự cho phép của tác giả Kien Dang Chung
URI là một khái niệm tổng quát, có trước cả URL tuy nhiên do thực tế việc sử dụng URL nhiều hơn nên mọi người thường biết đến URL nhiều hơn. Vậy chính xác URI là gì? nó có quan hệ như thế nào với URL, chúng ta cùng tìm hiểu.
URI là gì?
URI là viết tắt của Uniform Resource Identifier – Nhận diện tài nguyên thống nhất, URI là một chuỗi ký tự được sử dụng để nhận diện các tài nguyên, chuỗi ký tự này có thể là một định vị tài nguyên hoặc một định danh tài nguyên hoặc cả hai. Tài nguyên ở đây là tài nguyên mạng như các siêu văn bản, file hình ảnh, file âm thanh, file video… Với định nghĩa ở trên, các chuỗi sau đây là URI:
- https://allaravel.com
- https://allaravel.com/wp-content/uploads/2018/06/uri-url-urn-urc-khac-nhau-nhu-the-nao.png
- urn:isbn-13:978-1786469946
- view-source:https://allaravel.com
Với một số URI, trình duyệt không thể yêu cầu nội dung trực tiếp, tuy nhiên nó vẫn là nhận diện một tài nguyên duy nhất và có thể có những ứng dụng máy chủ tạo ra dịch vụ để chuyển nó thành nội dung mà trình duyệt có thể yêu cầu được.
Cấu trúc URI
Cấu tạo của một URI như sau:
URI = scheme:[//authority]path[?query][#fragment]
Trong đó:
- scheme: chính là giao thức mạng sử dụng để truyền dẫn dữ liệu, các giao thức phổ biến mà chúng ta biết là http, https, ftp, mailto, irc…, phân cách giao thức với phần còn lại bằng ký tự :.
- authority là phần tổ hợp bao gồm các phần nhỏ hơn
authority = [userinfo@]domain[:port]
- userinfo: Thông tin người dùng bao gồm tên đăng nhập và mật khẩu, chỉ sử dụng với các URL được bảo mật cần đăng nhập.
- domain: tên miền của website là ánh xạ 1 – 1 từ một tên có thể nhớ sang địa chỉ IP của máy chủ web nơi chứa nội dung trang web.
- port: Số cổng sử dụng bởi giao thức trên máy chủ.
- path: Đường dẫn đến nội dung trang web, đường dẫn này là đường dẫn trong nội bộ website, phân cách giữa thư mục cha và thư mục con bởi dấu gạch chéo (/).
- query: là chuỗi truy vấn, chứa các thông tin theo cặp tên/giá trị được gửi đến máy chủ web, mỗi cặp này cách nhau bởi dấu &.
- fragment: là các chỉ mục con của nội dung, được bắt đầu với dấu #.
Ví dụ về URI
userinfo domain port
┌───┴──┐ ┌────┴──────┐ ┌┴┐
https://[email protected]:443/forum/questions/?search=vuejs+tutorial&paged=2#top
└─┬─┘ └─────────────┬──────────┘└───────┬───────┘ └────────────┬──────────────┘ └┬┘
scheme authority path query fragment
ldap://[192.168.0.101]/c=GB?objectClass?one
└─┬┘ └─────┬───────┘└─┬─┘ └──────┬──────┘
scheme authority path query
mailto:[email protected]
└──┬─┘ └─────────┬───────────┘
scheme path
news:comp.infosystems.www.servers.unix
└─┬┘ └───────────────┬───────────────┘
scheme path
tel:+084-904-666-888
└┬┘ └──────┬───────┘
scheme path
telnet://192.0.2.16:21/
└──┬─┘ └─────┬─────┘│
scheme authority path
urn:isbn-13:<span id="ebooksProductTitle" class="a-size-extra-large a-text-bold"><span class="a-size-base a-color-base">978-1786469946</span></span>
└┬┘ └─────────┬──────────┘
scheme path
Bài viết gốc được đăng tải tại allaravel.com