Part of it is case sensitive and part is case insensitive. From
draft-ietf-http-v11-spec-rev-06:
3.2.3 URI Comparison
When comparing two URIs to decide if they match or not, a client SHOULD=
use
a case-sensitive octet-by-octet comparison of the entire URIs, with the=
se
exceptions:
=B7 A port that is empty or not given is equivalent to the default p=
ort
for that URI-reference;
=B7 Comparisons of host names MUST be case-insensitive;
=B7 Comparisons of scheme names MUST be case-insensitive;
=B7 An empty abs_path is equivalent to an abs_path of =93/=94.
Characters other than those in the =93reserved=94 and =93unsafe=94 sets=
(see
section 3.2) are equivalent to their =93"%" HEX HEX=94 encoding.
For example, the following three URIs are equivalent:
http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html
=