Luôn an toàn
Đây là an toàn (về lý thuyết / thông số kỹ thuật), về cơ bản bất cứ nơi nào ngoại trừ tên miền.
Phần trăm mã hóa bất cứ thứ gì không được liệt kê, và bạn tốt để đi.
A-Z a-z 0-9 - . _ ~ ( ) ' ! * : @ , ;
Đôi khi an toàn
Chỉ an toàn khi được sử dụng trong các thành phần URL cụ thể; sử dụng cẩn thận.
Paths: + & =
Queries: ? /
Fragments: ? / # + & =
Không bao giờ an toàn
Theo thông số URI (RFC 3986), tất cả các ký tự khác phải được mã hóa theo phần trăm. Điêu nay bao gôm:
<space> <control-characters> <extended-ascii> <unicode>
% < > [ ] { } | \ ^
Nếu khả năng tương thích tối đa là một mối quan tâm, hãy giới hạn bộ ký tự ở AZ az 0-9 - _.
(với các khoảng thời gian chỉ dành cho phần mở rộng tên tệp).
Giữ bối cảnh trong tâm trí
Ngay cả khi hợp lệ cho mỗi thông số, một URL vẫn có thể "không an toàn", tùy thuộc vào ngữ cảnh. Chẳng hạn như một tệp: /// URL chứa các ký tự tên tệp không hợp lệ hoặc thành phần truy vấn có chứa "?", "=" Và "&" khi không được sử dụng làm dấu phân cách. Việc xử lý chính xác các trường hợp này thường tùy thuộc vào kịch bản của bạn và có thể được xử lý, nhưng đó là điều cần lưu ý.