I’m currently learning JavaScript, and I don’t understand why it is important to encode URLs.
>>> var url = 'http://www.packtpub.com/scr ipt.php?q=this and that';
>>> encodeURI(url);
“http://www.packtpub.com/scr%20ipt.php?q=this%20and%20that”
For instance, in this example what purpose would it serve to change the first URL to the latter one.
Only a limited number of characters are allowed in URLs, according to the RFC 3986 standard. If you have a space in a URL, for example, this will make the URL invalid unless you encode it.
Often, browsers can deal with URLs that are not properly encoded by doing the encoding themselves, but that’s not something you should rely on as a web developer.
URL encoding is also critical when using URLs as parameters of another URL. In this case the reserved characters of the URL need to be encoded, not just the non-permitted characters. For this, however, you don’t use
encodeURI, butencodeURIComponent.