Giới thiệu ngắn gọn về Mã hóa URL

URL của trang web, cũng thường được gọi là "địa chỉ trang web", là những gì ai đó sẽ nhập vào trình duyệt web để truy cập một trang web cụ thể. Khi bạn chuyển thông tin qua URL, bạn cần phải đảm bảo thông tin chỉ sử dụng các ký tự được cho phép cụ thể. Các ký tự được phép này bao gồm ký tự chữ cái, chữ số và một vài ký tự đặc biệt có ý nghĩa trong chuỗi URL. Bất kỳ ký tự nào khác cần được thêm vào URL phải được mã hóa để chúng không gây ra sự cố trong chuyến đi của trình duyệt để định vị các trang và tài nguyên bạn đang tìm kiếm.

Mã hóa một URL

Ký tự được mã hóa phổ biến nhất trong chuỗi URL là ký tự . Bạn thấy ký tự này bất cứ khi nào bạn nhìn thấy dấu cộng (+) trong URL. Điều này đại diện cho ký tự khoảng trắng. Dấu cộng hoạt động như một ký tự đặc biệt biểu thị không gian đó trong URL. Cách phổ biến nhất bạn sẽ thấy điều này là trong một liên kết mailto bao gồm một chủ đề. Nếu bạn muốn đối tượng có không gian trong đó, bạn có thể mã hóa chúng như là điểm cộng:

mailto: email? subject = this + là + chủ đề của tôi

Điều này bit của văn bản mã hóa sẽ truyền một chủ đề của "đây là chủ đề của tôi". Ký tự "+" trong bảng mã sẽ được thay thế bằng

Để mã hóa một URL, bạn chỉ cần thay thế các ký tự đặc biệt bằng chuỗi mã hóa của chúng. Điều này sẽ gần như luôn luôn bắt đầu với một ký tự%.

Mã hóa một URL

Nói đúng ra, bạn nên luôn mã hóa bất kỳ ký tự đặc biệt nào được tìm thấy trong URL. Một lưu ý quan trọng, trong trường hợp bạn cảm thấy hơi bị đe dọa bởi tất cả bài nói hoặc mã hóa này, bạn thường sẽ không tìm thấy bất kỳ ký tự đặc biệt nào trong URL bên ngoài ngữ cảnh bình thường ngoại trừ dữ liệu biểu mẫu.

Hầu hết các URL sử dụng các ký tự đơn giản luôn được cho phép, vì vậy không cần mã hóa nào cả.

Nếu bạn gửi dữ liệu đến các script CGI bằng phương thức GET, bạn nên mã hóa dữ liệu vì nó sẽ được gửi qua URL. Ví dụ: nếu bạn đang viết liên kết để quảng bá nguồn cấp dữ liệu RSS , URL của bạn sẽ cần phải được mã hóa để thêm vào URL tập lệnh mà bạn đang quảng cáo trên đó.

Những gì nên được mã hóa?

Bất kỳ ký tự nào không phải là ký tự chữ cái, số hoặc ký tự đặc biệt đang được sử dụng ngoài ngữ cảnh thông thường sẽ cần phải được mã hóa trong trang của bạn. Dưới đây là bảng các ký tự phổ biến có thể tìm thấy trong URL và mã hóa của chúng.

Mã hóa URL ký tự dành riêng

Tính cách Mục đích trong URL Mã hóa
: Giao thức riêng biệt (http) từ địa chỉ % 3B
/ Tên miền và thư mục riêng biệt % 2F
# Neo riêng biệt % 23
? Chuỗi truy vấn riêng biệt % 3F
& Tách biệt các phần tử truy vấn % 24
@ Tách tên người dùng và mật khẩu từ miền % 40
% Cho biết ký tự được mã hóa % 25
+ Cho biết một không gian % 2B
Không được đề xuất trong URL % 20 hoặc +

Lưu ý rằng những ví dụ được mã hóa này khác với những gì bạn tìm thấy với các ký tự đặc biệt HTML . Ví dụ: nếu bạn cần mã hóa URL bằng ký tự dấu và (&), bạn sẽ sử dụng% 24, là những gì được hiển thị trong bảng ở trên. Nếu bạn đang viết HTML và bạn muốn thêm dấu và vào văn bản, bạn không thể sử dụng% 24. Thay vào đó, bạn sẽ sử dụng "& amp;"; hoặc "& # 38;", cả hai đều sẽ viết & trong trang HTML khi được hiển thị. Điều này có vẻ khó hiểu lúc đầu, nhưng về cơ bản là sự khác biệt giữa văn bản xuất hiện trên trang, là một phần của mã HTML và chuỗi URL, là một thực thể riêng biệt và do đó tuân theo các quy tắc khác nhau.

Thực tế là "&" nhân vật, cũng như nhiều nhân vật khác, có thể xuất hiện trong mỗi không nên nhầm lẫn bạn với sự khác biệt giữa hai.

Bài báo gốc của Jennifer Krynin. Biên tập bởi Jeremy Girard.