Sometimes getting back to the basics is a good thing. Alan Skorkin has done just that in his latest post looking at the basics of URLs including their structure and what characters are allowed (or are special).
Several people made a valid point in response to that post [about fundamentals in software development], in that it is often difficult to know what the fundamentals actually are (be they macro or micro level). So, I thought it would be a good idea to do an ongoing series of posts on some of the things that I consider to be fundamental – this post is the first installment.
He defines the structure of a URL (the scheme, host, port, etc), reserved characters and absolute versus relative URLs and how they're usually used.