Mã hóa URL

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Một số ký tự không được chứa trong URL (ví dụ: dấu cách) và một số ký tự khác có ý nghĩa đặc biệt trong URL. Trong biểu mẫu HTML, ký tự = được dùng để phân tách tên khỏi một giá trị. Cú pháp chung của URI sử dụng mã hóa URL để xử lý vấn đề này, trong khi biểu mẫu HTML thực hiện một số thay thế bổ sung thay vì áp dụng mã hóa phần trăm cho tất cả các ký tự đó.

Ví dụ: dấu cách trong một chuỗi được mã hoá bằng %20 hoặc thay thế bằng dấu cộng (+). Nếu bạn sử dụng ký tự dấu gạch đứng (|) làm dấu phân tách, hãy nhớ mã hoá đường ống dưới dạng %7C. Dấu phẩy trong một chuỗi phải được mã hoá dưới dạng %2C.

Bạn nên sử dụng các thư viện tạo URL thông thường của nền tảng để tự động mã hoá URL, nhằm đảm bảo URL được thoát đúng cách cho nền tảng của bạn.

Tạo một URL hợp lệ

Bạn có thể nghĩ rằng một URL "hợp lệ" là hiển nhiên, nhưng không phải lúc nào cũng như vậy. URL được nhập trong thanh địa chỉ trong một trình duyệt, chẳng hạn như có thể chứa các ký tự đặc biệt (ví dụ: "上海+中國"); trình duyệt cần dịch nội bộ các ký tự đó sang một mã hoá khác trước khi truyền. Tương tự như vậy, mọi mã tạo hoặc chấp nhận dữ liệu đầu vào UTF-8 đều có thể coi các URL có ký tự UTF-8 là "hợp lệ", nhưng cũng cần dịch các ký tự đó trước khi gửi đến máy chủ web. Quá trình này gọi là mã hoá URL hoặc mã hoá phần trăm.

Các ký tự đặc biệt

Chúng tôi cần dịch các ký tự đặc biệt vì tất cả các URL đều phải tuân theo cú pháp chỉ định trong thông số kỹ thuật Mã nhận dạng tài nguyên đồng nhất (URI). Trên thực tế, điều này có nghĩa là URL chỉ được chứa một tập hợp con đặc biệt các ký tự ASCII: ký hiệu chữ và số quen thuộc và một số ký tự dành riêng để sử dụng làm ký tự điều khiển trong URL. Bảng này tóm tắt các ký tự sau:

Tóm tắt các ký tự URL hợp lệ
Đặtký tựSử dụng URL
Chữ và số Chuỗi văn bản, cách sử dụng lược đồ (http), cổng (8080), v.v.
Không dành riêng – _ . ~ Chuỗi văn bản
Đã đặt chỗ ! * ' ( ) ; : @ & = + $ , / ? % # [ ] Kiểm soát ký tự và/hoặc chuỗi văn bản

Khi tạo một URL hợp lệ, bạn phải đảm bảo rằng URL đó chỉ chứa những ký tự xuất hiện trong bảng Tóm tắt các ký tự URL hợp lệ. Việc xây dựng một URL để sử dụng bộ ký tự này thường dẫn đến 2 vấn đề, một là bỏ qua và một là thay thế:

  • Các ký tự mà bạn muốn xử lý tồn tại bên ngoài tập hợp nêu trên. Ví dụ: các ký tự bằng tiếng nước ngoài, chẳng hạn như 上海+中國 cần được mã hoá bằng các ký tự ở trên. Theo quy ước phổ biến, dấu cách (không được phép trong URL) cũng được biểu thị bằng ký tự dấu cộng '+'.
  • Các ký tự tồn tại trong bộ ký tự ở trên được đặt làm ký tự dành riêng, nhưng cần được sử dụng theo nghĩa đen. Ví dụ: ? được dùng trong các URL để cho biết phần đầu của chuỗi truy vấn. Nếu muốn sử dụng chuỗi "? và Bí ẩn", bạn sẽ cần mã hóa ký tự '?'.

Tất cả các ký tự cần mã hoá URL đều được mã hoá bằng ký tự '%' và giá trị thập lục phân gồm 2 ký tự tương ứng với ký tự UTF-8. Ví dụ: 上海+中國 trong UTF-8 sẽ được mã hoá URL là %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B. Chuỗi ? and the Mysterians sẽ được mã hoá bằng URL dưới dạng %3F+and+the+Mysterians hoặc %3F%20and%20the%20Mysterians.

Ký tự phổ biến cần mã hoá

Một số ký tự phổ biến phải được mã hoá là:

Ký tự không an toàn Giá trị được mã hoá
Vũ trụ %20
" %22
Gần %3C
> %3E
# %23
% %25
| %7C

Đôi khi, việc chuyển đổi một URL mà bạn nhận được từ hoạt động đầu vào của người dùng khá khó khăn. Ví dụ: người dùng có thể nhập địa chỉ là "5&Main St." Nhìn chung, bạn nên tạo URL từ các phần của URL đó, coi mọi hoạt động đầu vào của người dùng là ký tự cố định.

Ngoài ra, URL được giới hạn ở 8192 ký tự đối với tất cả các dịch vụ web trên Nền tảng Google Maps và API web tĩnh. Đối với hầu hết các dịch vụ, giới hạn ký tự này sẽ ít được sử dụng. Tuy nhiên, hãy lưu ý rằng một số dịch vụ có nhiều tham số có thể dẫn đến các URL dài.