Khi duyệt web bạn chắc hẳn bạn đã từng bắt gặp khái niệm URL, thế nhưng chính xác URL là gì, cấu trúc URL như thế nào và các thành phần ra sao? Bài viết này sẽ cung cấp đến cho bạn đọc một cái nhìn tổng quan về URL và cấu trúc của nó.
URL là gì?
URL là từ viết tắt của Uniform Resource Locator, dịch sang tiếng Việt nghĩa là định vị tài nguyên thống nhất. Cụ thể, URL sẽ là địa chỉ của một tài nguyên duy nhất trên Web. Mỗi URL được xem là hợp lệ sẽ trỏ đến một tài nguyên duy nhất, tài nguyên đó sẽ có thể là trang HTML, tài liệu CSS, các loại hình ảnh, video, file PDF… Trong một số trường hợp ngoại lệ, URL cũng có thể trỏ đến những tài nguyên không còn tồn tại nữa hoặc đã bị di chuyển sang địa chỉ khác (moved).
URL có thể chứa rất nhiều các loại thành phần khác nhau. Nó bao gồm cả hostname (tên máy) ánh xạ tới địa chỉ IP của một tài nguyên cụ thể trên mạng Internet và một loạt các thông tin bổ sung các thông báo cho trình duyệt và máy chủ biết cách xử lý mọi thứ. Bạn có thể nghĩ về địa chỉ IP như số điện thoại, hostname như là tên của người sở hữu số điện thoại đó mà bạn muốn tra cứu. Và một tiêu chuẩn khác được gọi là Hệ thống tên miền (Domain Name System – DNS) hoạt động ở trong nền giống như một cuốn danh bạ điện thoại, dịch các hostname thành các địa chỉ IP để mạng sử dụng để định tuyến những lưu lượng truy cập.
Nói chung, các loại URL được dùng phổ biến nhất hiện nay là tuyệt đối và tương đối. Một URL tuyệt đối có chứa thông tin cực kỳ đầy đủ, từ giao thức cho đến đường dẫn đến các tài nguyên hoặc tham số. Trong khi đó, một URL tương đối thì sẽ chỉ bao gồm đường dẫn đến tài nguyên.
URL nằm ở đâu?
URL có thể được tìm thấy ở trong thanh địa chỉ của trình duyệt
Một URL sẽ thường có thể được tìm thấy trong thanh địa chỉ ở đầu cửa sổ của các trình duyệt web. Trên máy tính xách tay và các máy tính để bàn, URL của trang web cũng sẽ luôn hiển thị trên thanh địa chỉ khi mà người dùng cuộn qua trang web.
Trong trường hợp các thiết bị di động, hành vi mặc định của trình duyệt khiến một URL bị biến mất ngay khi người dùng bắt đầu cuộn xuống. Tuy nhiên, nó lại sẽ xuất hiện lại khi người dùng cuộn lên.
Lịch sử URL
Việc lưu giữ các dữ liệu liên quan đến việc sử dụng web đã trở thành một mối quan tâm cực kỳ lớn về quyền riêng tư. Ngày sẽ càng có nhiều người dùng yêu cầu các nhà cung cấp dịch vụ các ứng dụng và công cụ tìm kiếm phải minh bạch về những thông tin họ thu thập, lưu giữ và bán cho bên thứ 3.
Ví dụ, vào tháng 3 năm 2019, Google hiện đã cập nhật chính sách bảo mật của Chrome. Gooogle cũng lưu ý rằng trong chế độ trình duyệt cơ bản của trình Chrome, công cụ tìm kiếm giúp lưu trữ thông tin cục bộ trên hệ thống của bạn. Thông tin này sẽ bao gồm lịch sử duyệt web, tức là URL của các trang web đã truy cập, cùng với bộ nhớ cache của văn bản, hình ảnh cùng các tài nguyên khác từ những trang đó.
Tuy nhiên, Google cũng đã thu thập và lưu giữ dữ liệu trong rất nhiều khoảng thời gian khác nhau. Một số dữ liệu có thể bị xóa đi bất cứ khi nào một người muốn, một số sẽ bị xóa tự động và một số khác được Google giữ lại trong thời gian dài hơn so với khi cần thiết.
Cấu trúc của URL
Cấu trúc URL lần đầu tiên được xác định vào năm 1994 bởi Sir Tim Berners-Lee, người mà đã tạo ra web và trình duyệt đầu tiên. Về cơ bản, URL kết hợp các tên miền với việc sử dụng đường dẫn file để có thể xác định cấu trúc file và thư mục cụ thể. Vì vậy, nó cũng tương tự như sử dụng đường dẫn C: DocumentsPersonalmyfile.txt trong Windows, nhưng có thêm một số thứ ở đầu để có thể tìm đúng được máy chủ trên Internet nơi chứa đường dẫn đó và sử dụng các giao thức để truy cập thông tin.
URL cũng sẽ chứa một vài đường dẫn khác. Ví dụ, bên dưới chính là hình ảnh một URL cơ bản, cùng phân tích cấu trúc của nó.
URL đơn giản này đã được chia thành hai thành phần chính: Scheme (giao thức kết nối) và phần Authotiry (nhà cung cấp).
Scheme
Rất nhiều người cho rằng URL như một địa chỉ web nhưng nó cũng không hoàn toàn đơn giản như vậy. Một địa chỉ web là URL nhưng thực tế tất cả URL không phải là địa chỉ web. Các dịch vụ khác bạn hoàn toàn có thể truy cập trên Internet như FTP hoặc thậm chí MAILTO cũng sẽ là URL. Phần Scheme của các URL (các chữ cái theo sau của dấu hai chấm) biểu thị giao thức mà mỗi ứng dụng (như trình duyệt web) và máy chủ giao tiếp.
Các địa chỉ web là các URL phổ biến nhất, tuy nhiên còn có các loại URL khác nữa. Do đó, bạn cũng sẽ thấy các Scheme như:
- Giao thức truyền thông tải siêu văn bản (HTTP): Đây là giao thức truyền thông cơ bản của web, xác định hành động của các máy chủ web và các trình duyệt cần thực hiện để đáp ứng các lệnh nhất định.
- Giao thức HTTP kiểu an toàn (HTTPS): Đây là một dạng HTTP được hoạt động trên một lớp bảo mật, được mã hóa để truyền tải nhiều thông tin an toàn hơn.
- Giao thức truyền tập tin (File Transfer Protocol – FTP): Giao thức này cũng thường được sử dụng để truyền file qua Internet.
HTTP (Hypertext Transfer Protocol) và giao thức HTTPS (Hypertext Transfer Protocol Secure) là các giao thức giao tiếp qua mạng giữa máy chủ web và trình duyệt web. Chúng truyền đi những thông điệp, truy xuất thông tin thông qua các hệ thống tên miền (DNS) và gửi lại cho trình duyệt.
Sự khác biệt ở giữa HTTP và HTTPS là HTTPS mã hóa cho quá trình truyền dữ liệu. Giao thức bảo mật này sẽ bảo vệ trang web tốt hơn và cũng là yếu tố cần thiết để cải thiện thứ hạng trên kết quả tìm kiếm.
Một điểm khác biệt nữa đó là HTTPS sử dụng cổng Transmission Control Protocol/Internet Protocol (TCP/IP) có số 443 được mã hóa lại bởi Transport Layer Security (TLS). Trong khi đó, một số URL HTTP sử dụng cổng TCP/IP số 80.
Lưu ý cực kỳ quan trọng là trình duyệt web cũng có thể xử lý được các giao thức khác, bao gồm FTP và mailto. FTP cho phép được chia sẻ file giữa các máy chủ web khác nhau, cục bộ hoặc là từ xa. Sau đó hướng người dùng đến với một địa chỉ email cụ thể.
Trong các trình duyệt hiện đại, về mặt kỹ thuật thì Scheme không nhất thiết sẽ là một phần của URL. Nếu bạn nhập trang web như là www.webmax.vn, trình duyệt sẽ tự động xác định được giao thức phù hợp để sử dụng. Tuy nhiên, một số ứng dụng khác (và giao thức) lại cần yêu cầu sử dụng scheme.
Authority
Phần Authority của một loại URL (phần bắt đầu ở sau hai dấu gạch chéo) sẽ được chia thành các phần nhỏ. Hãy bắt đầu chỉ với một URL đơn giản, thường sẽ là URL dẫn bạn đến trang chủ lớn của một trang web.
Trong ví dụ đơn giản thế này, toàn bộ phần “www.example.com” được gọi là một hostname và có nhiệm vụ lấy một địa chỉ IP. Nếu biết được địa chỉ IP, bạn có thể gõ nó vào thanh địa chỉ trình duyệt thay vì cần hostname.
Đây là một số thành phần:
- Tên miền cấp cao nhất: Trong ví dụ ở đây, “com” chính là tên miền cấp cao nhất. Đây là phân mức cao nhất trong hệ thống tên miền phân cấp đang được sử dụng để dịch địa chỉ IP thành địa chỉ với ngôn ngữ đơn giản, dễ nhớ. Những tên miền cấp cao bậc nhất này được Tập đoàn Internet cấp số và các tên miền (ICANN) tạo và quản lý. Có ba tên miền cấp cao nhất hiện rất phổ biến là .com., .net, .gov. Hầu hết các quốc gia sẽ đều có trên miền cấp cao nhất bao gồm hai chữ cái, bạn sẽtìm thấy tên miền như .us (Mỹ), .vn (Việt Nam), .ca (Canada), v.v… Có một số những tên miền cấp cao nhất bổ sung (như .museum) được những tổ chức cá nhân tài trợ và quản lý. Ngoài ra, cũng sẽ có một số tên miền cấp cao nhất được dùng chung như.club, .life và .news.
- Tên miền phụ (Subdomain): Subdomain sẽ bao gồm bất kỳ từ hoặc cụm từ nào được đứng trước dấu chấm đầu tiên của URL. Đề cập đến khái niệm world wide web, www là loại phổ biến nhất. Nó sẽ chỉ ra rằng một trang web có thể truy cập được vào thông qua Internet và sử dụng HTTP để thực hiện giao tiếp. Vì DNS là một hệ thống giúp phân cấp, cả hai phần “www” và “example” của các URL ví dụ trên được xem là tên miền phụ. Phần “www” chính là tên miền phụ của tên miền cấp cao nhất là “com” và phần “www” là tên miền phụ của tên miền “example”. Đó là lý do giải thích tại sao bạn thấy công ty có tên đăng ký như là “google.com” được chia thành các phần tên miền phụ như “www.google.com”, “news.googlecom”, “mail.google.com”, v.v…Chủ sở hữu của trang web có thể sử dụng bất kỳ từ nào làm subdomain cho những mục đích tổ chức trang web vì nó trỏ đến lớn như một thư mục cụ thể từ domain chính. Một số tùy chọn phổ biến nhất hiện nay là “blog” và “news”.
Đây là một ví dụ cơ bản nhất về phần Authority của URL, các URL khác cũng có thể phức tạp hơn. Có hai thành phần khác cùng ở trong phần Authority:
- Thông tin người dùng: Phần Authority có thể chứa tên người dùng và mật khẩu chính của trang web bạn đang truy cập. Ngày nay, bạn cũng có thể ít bắt gặp cấu trúc URL này. Phần thông tin của người dùng ở trước tên máy chủ và nó sẽ theo sau bởi dấu @.
- Số cổng: Thiết bị mạng đang sử dụng địa chỉ IP để có thể nhận thông tin đến máy tính phù hợp trên mạng. Khi lưu lượng truy cập đến, số cổng sẽ thông báo với máy tính biết ứng dụng mà lưu lượng truy cập vào đó đang nhắm đến. Bạn sẽ thường không thấy số cổng khi lướt web, nhưng lại có thể thấy nó trong các ứng dụng mạng như là những trò chơi có yêu cầu nhập URL.
Thành phần bổ sung cho URL
Có ba phần bổ sung cho URL mà bạn có thể thấy sau phần Authority: đường dẫn, phần truy vấn và phân mảnh.
Đường dẫn (path)
Phần Authority của các URL đưa trình duyệt (hoặc các loại ứng dụng khác) đến đúng các loại máy chủ trên mạng. Đường dẫn (hoạt động giống như đường dẫn trong Windows, macOS hoặc Linux) đưa được bạn đến đúng thư mục hoặc file trên máy chủ đó. Đường dẫn cũng được bắt đầu bằng dấu gạch chéo và cũng có các dấu gạch chéo giữa các loại thư mục và thư mục con.
Phần cuối cùng chính là tên file sẽ được mở khi truy cập vào trang web. Mặc dù có thể bạn sẽ không thấy đường dẫn này trên thanh địa chỉ, nhưng chắc hẳn điều đó không có nghĩa là nó không có. Một vài ngôn ngữ sẽ được sử dụng để tạo trang web ẩn phần tên và phần mở rộng của từng file để người dùng dễ nhớ và gõ URL hơn.
Truy vấn (query)
Phần truy vấn trong một URL sẽ được sử dụng để xác định ra được những thứ không phải là thành phần của một cấu trúc đường dẫn cố định. Thông thường, bạn cũng sẽ tìm thấy chúng được sử dụng để thực hiện việc tìm kiếm hoặc khi trang web phân phối các dữ liệu thông qua biểu mẫu. Phần truy vấn này cũng được bắt đầu bằng dấu hỏi chấm và theo sau sẽ là đường dẫn (hoặc sau các tên máy chủ nếu không có đường dẫn).
Tham số (parameter)
?key1=value1&key2=value2 chính là các tham số bổ sung được cung cấp cho phần máy chủ web. Các tham số đó là một danh sách các cặp khóa/giá trị được phân tách bằng các ký hiệu &. Máy chủ web cũng có thể sử dụng các tham số đó để thực hiện được các công việc bổ sung trước khi trả lại tài nguyên. Mỗi máy chủ của web có các quy tắc riêng của mình về những tham số và cách đáng tin cậy duy nhất để có thể biết liệu một máy chủ web cụ thể có đang xử lý được các tham số hay không là hỏi chủ sở hữu máy chủ web.
Liên kết neo (anchor)
#SomewhereInTheDocument chính là một anchor cho một phần khác của chính phần tài nguyên. Anchor đại diện cho một loại “bookmark” ngay bên trong tài nguyên, cung cấp cho các trình duyệt các hướng dẫn để hiển thị nội dung nằm tại vị trí đã “được bookmark” đó. Ví dụ, trên một tài liệu loại HTML, trình duyệt sẽ cuộn đến điểm mà ký tự liên kết được xác định; trên một tài liệu kiểu video hoặc âm thanh, trình duyệt sẽ cố gắng đi đến các thời điểm mà anchor thể hiện. Cần lưu ý chính xác rằng phần sau dấu #, còn được gọi là dấu fragment identifier, không bao giờ được gửi thẳng đến máy chủ cùng với yêu cầu.
Phân mảnh (fragment)
Thành phần cuối cùng của một URL mà bạn có thể thấy được gọi là phần phân mảnh. Phân mảnh được bắt đầu bằng đánh dấu một dấu thăng (#) và được sử dụng để xác định các vị trí cụ thể của trang web. Khi viết code cho một loại trang web, các nhà thiết kế có thể tạo liên kết neo (anchor) cho các văn bản cụ thể như tiêu đề. Khi sử dụng được một phân mảnh thích hợp ở cuối URL, trình duyệt của bạn cũng sẽ tải trang và sau đó chuyển đến liên kết neo đó. Liên kết neo và liên kết URL cùng với phân mảnh thường được sử dụng để có thể tạo mục lục trang web giúp điều hướng dễ dàng hơn.
Các loại URL
Nói chung, các loại URL được dùng phổ biến nhất hiện nay là tuyệt đối và tương đối. Một URL tuyệt đối có chứa thông tin cực kỳ đầy đủ, từ giao thức cho đến đường dẫn đến các tài nguyên hoặc tham số. Trong khi đó, một URL tương đối thì sẽ chỉ bao gồm đường dẫn đến tài nguyên.
Những gì chúng ta đã thấy ở trên sẽ được gọi là URL tuyệt đối, nhưng cũng có một thứ sẽ được gọi là URL tương đối. Tiêu chuẩn URL xác định trên cả hai – mặc dù nó sử dụng thuật ngữ chuỗi URL tuyệt đối và thuật ngữ chuỗi URL tương đối, để phân biệt được chúng với các đối tượng URL (là những đại diện ở trong bộ nhớ của URL).
Hãy xem xét về sự khác biệt giữa “tuyệt đối” và “tương đối” ở trong ngữ cảnh của URL.
Các phần bắt buộc của một URL phụ thuộc rất nhiều vào ngữ cảnh mà các URL được sử dụng. Trong thanh địa chỉ của trình duyệt, một URL sẽ không có bất kỳ ngữ cảnh nào, vì vậy bạn cần phải cung cấp một URL đầy đủ (hay URL tuyệt đối), giống như là những URL mà chúng ta đã thấy ở trên. Bạn cũng không cần phải bao gồm giao thức (trình duyệt thường sử dụng HTTP theo mặc định) hoặc cổng (chỉ cần bắt buộc khi web server được nhắm mục tiêu đang sử dụng được một số cổng bất thường), nhưng tất cả các thành phần khác của URL là cần thiết.
Khi một URL đã được sử dụng trong tài liệu, chẳng hạn như ở trong trang HTML, mọi thứ sẽ khác một chút. Bởi vì trình duyệt cũng đã có URL riêng của tài liệu, nó có thể sử dụng các thông tin này để điền vào các phần còn thiếu của bất kỳ URL nào đang có sẵn bên trong tài liệu đó. Chúng ta cũng có thể phân biệt giữa URL tuyệt đối và URL tương đối bằng cách nhìn vào phần đường dẫn của các URL. Nếu phần đường dẫn của các URL bắt đầu bằng ký tự “/”, trình duyệt sẽ có thể tìm nạp tài nguyên đó từ gốc trên cùng của máy chủ mà sẽ không cần tham chiếu đến ngữ cảnh được cung cấp nhanh bởi tài liệu hiện tại.
Khái niệm URL là một khái niệm cực kỳ quen thuộc trong cuộc sống bao phủ bởi mạng Internet như hiện nay. Hi vọng bài viết trên đây về URL là gì, cấu trúc URL như thế nào và các thành phần hoạt động ra sao sẽ cung cấp đến cho bạn đọc những thông tin hữu ích cũng như có một cái nhìn tổng quan về URL và cấu trúc của nó.