it-swarm-vi.com

Những ký tự đặc biệt nào an toàn để sử dụng trong url?

Những ký tự đặc biệt nào an toàn để sử dụng trong url?

13
YOU

Các ký tự an toàn là a-z, A-Z, 0-9 và _ - (gạch dưới và dấu trừ), bên cạnh các ký tự dành riêng được sử dụng cho các tham số.

Các nhân vật khác sẽ đưa ra vấn đề ở một mức độ nào đó. ví dụ: nếu một tham số là một mảng ?param=array[content] tức là sẽ hiển thị một url làm trắng dấu ngoặc vuông được mã hóa, trông xấu và không thể đọc được.

Nhưng vấn đề không chỉ là nó xấu, giả sử bạn có jpg với một nhân vật bên cạnh những nhân vật an toàn hơn, nhiều lần trình duyệt sẽ không thể tải xuống khi nhận được 404. Đây là vấn đề của trình duyệt cũ và một số trình duyệt di động.

Làm thế nào để kiểm tra điều này?

  • đặt một loạt các hình ảnh/js/css với các ký tự bạn muốn kiểm tra tên trong một trang công khai có nhiều khách truy cập
  • Tạo trang 404 gửi cho bạn email mỗi lần truy cập

Tôi có một hộp thư đến với 14000 email chứng minh quan điểm của mình.

10
The Disintegrator

Các ký tự sau có ý nghĩa đặc biệt trong thành phần đường dẫn của URL của bạn (thành phần đường dẫn là tất cả mọi thứ trước '?'):

  ";" | "/" | "?"

Ngoài những ký tự đó, các ký tự sau có ý nghĩa đặc biệt trong phần truy vấn của URL của bạn (mọi thứ sau '?'). Do đó, nếu họ theo sau '?' bạn cần phải thoát khỏi chúng:

  ":" | "@" | "&" | "=" | "+" | "$" | ","

Để được giải thích sâu hơn, hãy xem RFC .

11
Thomas Bonini

Các câu trả lời ở đây là tốt, nhưng có một ngoại lệ nữa tôi nghĩ là đáng nói - các nhân vật không phải tiếng Anh. Tham khảo câu hỏi SF này tại đây , các ký tự như ñ (như trong Español) là hoàn toàn hợp pháp, NẾU chúng đã được mã hóa chính xác trong DNS của bạn.

Bạn phải sử dụng Punycode trong DNS của mình để khiến chúng giải quyết trong các trình duyệt hiện đại (mục nhập cho Español là xn--espaol-zwa) nhưng giờ đây chúng hoàn toàn an toàn để sử dụng trong tên miền, vì chúng ' cũng dễ dàng cho những người không nói tiếng Anh để gõ.

3
Mark Henderson