We are planning to have urls like
http://www.nowhere.nu/path/file;key:value,key2:value2.html
This document says the special characters must be escaped, which kind of defeats the purpose of having “nice” urls:
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
However, testing the major browsers, it seems unnecessary to urlencode ;: and , in this position
Can you provide a popular browser where it doesn’t work, or an argument against such a scheme?
Similar question for & (invalid but works) versus & amp; (valid).
As mentioned in the comments the information referenced is outdated. Any questionable characters should be escaped for safety.
With URLs you have 2 target audiences, humans and machines. Most humans cannot efficiently process URL paths that contain anything but alphanumeric characters,
.s, and/s. They also degrade in efficiency the further along you go past the host name. So essentially once you get to a character that you would have to encode, you’ve already lost being human friendly (and many don’t even know where the location bar is let alone pay any attention to it).Machines on the other hand don’t have a problem with escaped characters. They may have a problem with un-escaped characters that they don’t recognize. As HTTP is incredibly simple there are tons of clients available including little custom clients for doing things like mashups. So even if you cover the major browsers being able to plow through your unescaped characters, you may break some unforeseen client. Overall you’re left with no practical benefit but higher risk.