| 
 | Please Whitelist This Site?I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)
 If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads. If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK. Thanks for your understanding! Sincerely, Charles KozierokAuthor and Publisher, The TCP/IP Guide
 | 
 
 
   
  
    | 
  
| NOTE: Using software to mass-download the site degrades the server and is prohibited. If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.
 |  |  | 
| 
 
 
 | 
 
 URL Relative Syntax and Base URLs
 (Page 3 of 4)
 Practical Interpretation of Relative URLs The description above probably seems 
confusing, but relative URLs are actually fairly easy to understand, 
because they are interpreted in a rather common sense way. 
You simply take the base URL and the relative URL, and you substitute 
whatever information is in the relative URL for the appropriate information 
in the base URL to get the resulting equivalent absolute reference. 
In so doing, you must drop any elements that are more specific 
than the ones being replaced. What do I mean by more specific? 
Well, most URLs can be considered to move from most general 
to most specific in terms of the location they specify. 
As you go from left to right, you go through the host name, then high-level 
directories, subdirectories, the file name, and optionally, parameters/query/fragment 
applied to the file name. If a relative URL specifies a new file name, 
it replaces the file name in the base URL, and any parameters/query/fragment 
are dropped as they no longer have meaning given that the file name 
has changed. If the relative URL changes the host name, the entire directory 
structure, file name and everything else to the right of 
the host name goes away, replaced with any that might have 
been included in the new host name specification. This is hard to explain in words 
but easy to understand with a few examples. Let's assume we start with 
the following explicit base URL: http://site.net/dir1/subdir1/file1?query1#bookmark1 Table 224 
shows some example of relative URLs and how they would be interpreted. 
 Table 224: Relative URL Specifications and Absolute Equivalents  
| Relative 
URL | Equivalent 
Absolute URL | Explanation |  
| #bookmark2 | http://site.net/dir1/subdir1/file1?query1#bookmark2 | The URL is the same except that 
the bookmark is different. This can be used to reference different places 
in the same document in HTML.
 (Technically, the URL has not changed here, since the fragment 
(bookmark) is not part of the actual URL. A Web browser given a new 
bookmark name will usually not try to re-access the resource.)
 |  
| ?query2 | http://site.net/dir1/subdir1/file1?query2 | The same file 
but with a different query string. Note that the bookmark reference 
from the base URL is stripped off. |  
| file2 | http://site.net/dir1/subdir1/file2 | Here we have referred to a file 
using the name file2, which replaces file1 in 
the base URL. Here both the query and bookmark are removed. |  
| /file2 | http://site.net/file2 | Since a single 
slash was included, this means file2 is in the root directory; 
this relative URL replaces the entire <url-path> of the base URL. |  
| .. | http://site.net/dir1/ | The pair of dots refers to the 
parent directory of the one in the base URL. Since the directory in 
the base URL is dir1/subdir1, this refers to dir1/. |  
| ../file2 | http://site.net/dir1/file2 | Specifies that 
we should go up to the parent directory to find the file file2 
in dir1. |  
| ../subdir2/file2 | http://site.net/dir1/subdir2/file2 | Go up one directory with .., 
then enter the subdirectory subdir2 to find file2. |  
| ../../dir2/subdir2/file2 | http://site.net/dir2/subdir2/file2 | Same thing 
as above but going up two directory levels, then down through dir2 
and subdir2 to find file2. |  
| //file2 | http://file2 | Two slashes means that file2 
replaces the host name, causing everything to the right of the host 
name to be stripped. This is probably not what was intended, and shows 
how important it is to watch those slashes. J |  
| //www.newsite.net/otherfile.htm | http://www.newsite.net/otherfile.htm | Here everything 
but the scheme has been replaced. (In practice this form of relative 
URL is not that commonthe scheme is usually included if the site 
name is specified, for completeness.) |  
| file2?query2#bookmark2 | http://site.net/dir1/subdir1/file2?query2#bookmark2 | Here we replace the file name, 
query name and bookmark name. |  
| ftp://differentsite.net/whatever | ftp://differentsite.net/whatever | Using a new 
scheme forces the URL to be interpreted as absolute. | 
 | 
 | If you find The TCP/IP Guide useful, please consider making a small Paypal donation to help the site, using one of the buttons below. You can also donate a custom amount using the far right button (not less than $1 please, or PayPal gets most/all of your money!) In lieu of a larger donation, you may wish to consider purchasing a download license of The TCP/IP Guide. Thanks for your support! |  
|  | 
 | 
 Home - 
Table Of Contents - Contact Us
 
 The TCP/IP Guide (http://www.TCPIPGuide.com)
 Version 3.0 - Version Date: September 20, 2005
 
 © Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
 Not responsible for any loss resulting from the use of this site.
 |