Aufbau einer URL
Gekürzter Beitrag aus http://www.it-academy.cc/article.php?ID=54.  Ergänzungen von Hubert Daubmeier. Die detaillierte Beschreibung findet sich in RFC 1738.

An diesem Beispiel eines URL (unique resource locator) wollen wir uns die Bestandteile ansehen.

http://www.domain.de/seiten/aktuell/scripte/beispiel.asp?vname=hans&nname=meier&ort=neuburg
Das Protokoll – http://
HTTP steht für Hyper Text Transfer Protokol, dieses Protokoll soll der Browser also benutzen. Andere bekannte Protokolle sind ftp://, das File Transfer Protokoll zum Übertragen von Dateien. Oder auch nntp: für den Zugriff auf Newsgruppen.  Bei den meisten modernen Browsern muss das Protokoll nicht angegeben werden, weil es der Browser automatisch einsetzt. Nichtsdestotrotz ist es ein erfoderlicher Bestandteil einer URL.
Der Servername – www.domain.de
Dies ist der Name des Servers, auf dem sich das Dokument befindet, dass der Browser abrufen soll. Anstatt einem Namen könnte hier auch die IP-Adresse des Servers stehen.

http://22.33.44.55/seiten/aktuell/scripte/beispiel.asp?vname=hans&nname=meier&ort=neuburg

So würde die URL aussehen, wenn wir die IP-Adresse kennen würden. Die tatsächliche TCP/IP Verbindung erfordert immer die IP Adresse. Allerdings wird die bei Angabe des Namens automatisch vom Browser über den zuständigen Nameserver (DNS) abgefragt. 
Das Verzeichnis
Es können, wie in unserem Beispiel mehrere Verzeichnisnamen angeben sein. Das ist letztlich abhängig von der Verzeichnisstruktur auf dem Server. 

/seiten/aktuell/scripte/beispiel.asp?vname=hans&nname=meier&ort=neuburg

Dies ist der Name des Verzeichnissses (anderer Name Ordner, englisch directory) in dem sich die gewünschte Datei befindet. Wird kein Verzeichnis angegeben, sucht der Server in seinem Stammverzeichnis nach der Datei
Der Dateiname 
Die Angabe des Dokuments, dass wir angezeigt bekommen möchten

beispiel.asp?vname=hans&nname=meier&ort=neuburg

Es ist möglich keinen Dateinamen anzugeben, dann sucht der Server nach einem Standard-Dokument im angegebenen Verzeichnis und zeigt dieses an (falls es vorhanden ist). Der Name des Standard-Dokuments ist meist INDEX.HTM oder DEFAULT.HTM. 
Die Textmarke
Bei umfangreichen Seiten kann man eine Unterteilung durch Textmarken vornehmen. Etwa Kapitel 1, Kapitel 2. Die beabsichtigte Textmarke wird an Ende des Dateinamen angehängt und mit einem Nummernkreuz vom restlichen Link abgetrennt.

http://www.domain.de/seiten/aktuell/scripte/beispiel.asp#textmarke
Die Parameter
Folgen nach dem Fragezeichen. Sind mehrere Parameter vorhanden werden alle folgenden mit einem kaufmännischen Und abgetrennt. 

?vname=hans&nname=meier&ort=neuburg

Sie dienen dazu einem Programm (nicht einer einfache Seite) auf dem Server verschiedene Eingaben zu machen. Enthalten die Parameter Sonderzeichen, wie Leerzeichen oder Umlaute werden diese Zeichen maskiert. So erscheint ein Leerzeichen etwa als %20 
Die Portnummer
Normalerweise, wird der Browser den Server auf dem Port kontaktieren, der als Standartport für das verwendete Protokoll definiert ist (z.B. Port 80 für HTTP, Port 21 für FTP). Es kann jedoch sein, das der Server auf einem anderen als dem Standartport betrieben wird und deshalb der kontakt auf einem anderen Port hergestellt wird.  Die Portnummer wird am Ende des Servernamen angehängt und mit einem Doppelpunkt getrennt 

http://www.domain.de:80/seiten/aktuell/scripte/beispiel.asp?vname=hans&nname=meier&ort=neuburg

oder bei einem Nicht-Standardport dann 

http://www.domain.de:81/seiten/aktuell/scripte/beispiel.asp
Der Username
Normalerweise sind die meisten Seiten von jedermann frei zugänglich. In Fällen wo nur bestimmte Benutzer Zugriff erhalten sollen, wird der Benutzername nach dem Protokoll angegeben und vom Servernamen mit einem At-Zeichen getrennt. 

http://benutzername@www.domain.de/seiten/aktuell/scripte/beispiel.asp

Sollte zusätzlich eine Kennwort erforderlich sein – was praktisch immer der Fall ist, wenn ein Benutzername gefordert wird, dann wird das Kennwort nach dem Benutzernamen und mit Doppelpunkt getrennt. 

http://benutzername:kennwort@www.domain.de/seiten/aktuell/scripte/beispiel.asp

In diesem Fall wird der Browser angewiesen, sich mit dem Benutzernamen „benutzername“ und dem Kennwort „kennwort“ auf dem Server anzumelden.

Zusammenfassung
Aus den obigen Beispielen kann man erkennen, dass eine URL eine erhebliche Länge erreichen kann. Sie kann ziemlich kompliziert aufgebaut sein, auch wenn die Einzelelemente klar und verständlich sind. 
Beispiele für Missbrauch
Missbrauch des Benutzernamens. 
Zunächst schwer erkennbar wird hier ein unsinniger Benutzername eingeführt der glauben macht der Link würde zu Microsoft führen. 

http://www.microsoft.com:mehrf@www.domain.de/seiten/aktuell/scripte/beispiel.asp

Den angegebenen Benutzername muss auf dem Zielserver nicht geben. Wenn aber eh keine Benutzervalidierung erfoderlich ist, führt die Angabe eines überflüssigen Benutzernamens zu keinem Ergebnis. 

Oder ein Link in dieser From. Sieht nach CNN aus, ist aber ganz was anderes

http://www.cnn.com@194.105.226.1/sandholt/breakingsnews/news.htm 

Eine lustige Form findet sich hinter diesem Link

http://www.microsoft.com&item=q209354@hardware.no/nyheter/feb01/Q20935 
Missbrauch des Domainnamens. 
Es gibt einfache Domain, wie etwa www.domaene.de, so wie Masterdomains. Ein Beispiel für Masterdomains sind Servernamen wie mail.neusob.de, www.neusob.de, projekt.neusob.de.  Damit sind Server oder Servergruppen eindeutig beschrieben. Man könnte nun auf die Idee kommen und einen furchtbar langen Namen angeben, der ganz anders aussieht als das was er ist.

http://www.microsoft.com.hundertneunzigdialer.de 

Der Name wird technisch von rechts nach links aufgelöst. Zuerst die Top Level Domain DE, dann die vielleicht einfache Domain und damit ist der Server vollständig erreichbar.  Alles was weiter nach links noch steht wird vollständig ignoriert.  Da der Mensch von links nach rechts liest sieht es auf einen flüchtigen Blick nach ganz was anderem aus. 
Angabe der IP Adresse in ungewohnter Form
Eine IP-Adresse wird üblicherweise in der Form 22.33.44.55 geschrieben. Das ist letztlich eine abgekürzte und menschenlesbare Form eines 32-Bit Wertes in hexadezimaler Form.  Hex ist wiederrum eine menschenlesbare Abkürzung für Binärzahlen.  Also letztendlich die Kurzform für 32 Einser und Nullen.  Tatsächlich steckt dahinter zu guter Letzt eine ziemlich große Zahl und natürlich kann die Zahl auch direkt verwendet werden. 

http://3286991312/seiten/aktuell/scripte/beispiel.asp

Es gab früher Probleme mit diversen Browsern, die eine solche Adresse fälschlicherweise als betriebsinterne Adresse verstanden und damit andere Sicherheitsregeln angewandt haben. Diese Probleme sind mittlerweile aus dem Weg geschafft.