URL là gì?

Trong các sách báo về lập trình web nói riêng và công nghệ thông tin nói chung, chúng ta gặp rất nhiều các từ viết tắt như URL, URI, URN, URC… và thường gặp nhất là URL, có thể bạn hiểu mang máng URL là đường dẫn đến trang web nhưng không biết chính xác URL là gì, nó có các thành phần cấu tạo lên như thế nào… Sau bài viết, bạn sẽ hiểu chính xác các khái niệm cơ bản về hệ thống các website này.

URL là gì?

URL là một thuật ngữ thường xuyên gặp trong các tài liệu Công nghệ thông tin, nó được viết tắt từ cụm từ Uniform Resource Locator tạm dịch là Định vị tài nguyên thống nhất. URL được sử dụng để xác định vị trí các tài nguyên giúp tạo lên các siêu văn bản (Hypertext – Xem thêm bài viết HTML công cụ tạo ra siêu văn bản để biết thêm Siêu văn bản là gì?). Các tài nguyên trên Internet được liên kết với nhau thông qua các URL thông qua các liên kết. Ví dụ:

https://allaravel.com là một URL.

Trong thực tế, khi bạn mở một trình duyệt và gõ vào một địa chỉ trang web ví dụ https://allaravel.com thì đây chính là một URL.

URL là gì?

Với URL này trình duyệt sẽ biết được nơi cung cấp nội dung của allaravel.com (một website chuyên chia sẻ kiến thức công nghệ thông tin) và tải nội dung này về cho người dùng. URL này cũng có thể đưa vào các nội dung trang web để liên kết. URL được định nghĩa lần đầu vào năm 1994 bởi nhà vật lý Tim Berners-Lee trong tài liệu RFC 1738, ông cũng là người đề xuất và phác thảo ra ngôn ngữ HTML. Bên cạnh đó một nhóm kỹ sư khác của IETF – Lực lượng quản lý kỹ thuật mạng Internet cũng có những hợp tác đưa ra các đề xuất về URL.

Thành phần cấu tạo URL

Cấu tạo của một URL như sau:

URL = 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 #.

Trong thực tế, các URL có thể không cần phải chứa đầy đủ các thành phần như trên, chúng ta cùng xem một số ví dụ:

Ví dụ 1: https://allaravel.com/tutorials/lap-trinh/khoa-hoc-html-tu-co-ban-den-nang-cao/

Chúng ta có các thành phần như sau:

  • scheme: Giao thức mạng ở đây là https – Giao thức truyền tải siêu văn bản bảo mật, nó là phiên bản của HTTP với dữ liệu truyền dẫn được mã hóa.
  • domain: Tên miền allaravel.com là tên có thể nhớ được thay vì nhớ địa chỉ IP của máy chủ chứa nội dung trang allaravel.com là 45.32.23.201.
  • port: Ở đây tuy không xuất hiện thông tin về cổng dịch vụ do mặc định HTTPS sử dụng cổng 443, nếu máy chủ hoạt động ở cổng khác thì thông tin về cổng dịch vụ cần có URL mới hoạt động được.
  • path: /tutorials/lap-trinh/khoa-hoc-html-tu-co-ban-den-nang-cao/ là đường dẫn của bài viết Khóa học HTML từ cơ bản đến nâng cao.

Ví dụ 2: https://allaravel.com/?s=vuejs+tutorial&paged=2

Các thành phần trong ví dụ này tương tự với ví dụ 1 chỉ khác ở phần chuỗi truy vấn thông tin s=vuejs+tutorial&paged=2. Dấu ? là ký tự đánh dấu sự bắt đầu của chuỗi truy vấn thông tin, chuỗi này bao gồm 2 cặp dữ liệu:

  • s=vuejs+tutorial: s là viết tắt của search, do lập trình viên quy định, ý nghĩa là  từ khóa tìm kiếm “vuejs tutorial”
  • paged=2: lấy các kết quả ở trang thứ 2

Ví dụ 3: https://firebird@allaravel.com:12345678@member.allaravel.com/member

Trong ví dụ này chúng ta có thêm thành phần userinfo:

  • username: firebird@allaravel.com
  • password: 12345678
  • domain: member.allaravel.com
  • path: member

Add Comment