URI::compare

Description

Compares two URI’s as recommended by RFC2616 section 3.2.3.
ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt

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 these exceptions:

      - A port that is empty or not given is equivalent to the default
        port for that URI-reference;

        - Comparisons of host names MUST be case-insensitive;

        - Comparisons of scheme names MUST be case-insensitive;

        - An empty abs_path is equivalent to an abs_path of "/".

   Characters other than those in the "reserved" and "unsafe" sets (see
   RFC 2396 [42]) are equivalent to their ""%" HEX HEX" 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

Syntax

URI::compare <uri1> <uri2>

URI::compare <uri1> <uri2>

  • Compare two URI’s as recommended by RFC2616 section 3.2.3.

Examples

when HTTP_REQUEST {
  set uri_to_check "/dir1/somepath"
  if { [URI::compare [HTTP::uri] $uri_to_check] } {
    log local0. "URI's are equal!"
  }
}