Worauf beziehen sich relative URL-Angaben im Quelltext?

Folgend ein kleines Referat zu Webadressen (der Laie sagt 'URL', der IT-Profi 'URI') im Internet. Beim schreiben eines Vim-Makros stieß ich als IT-Laie auf entsprechende Wissensdefizite, was relative Pfadangaben in Quelltexten von Webseiten betrifft.

Beispielsweise ist auf einer Webseite die URL http://www.daserste.de/wort verlinkt. Wenn ich nun diese Seite aufgerufen habe, ist im Quelltext unter anderem die relative Linkangabe <a href="sendung.asp" > zu finden.

Diese Angabe bedeutet, dass die Datei sendung.asp im selben Ordner ist, wie diese Seite. Aber wie findet man diesen Ordner heraus? Ist 'wort' ein Ordner oder eine Datei? Aber in Wirklichkeit ist schon dieser Lösungsansatz, nämlich diese Frage, schon im Ansatz falsch.

Denn die relative URL-Angabe bezieht sich nicht auf die URL, mit der man die Seite aufrief, sondern auf die sogenannte "REQUEST_URI". Das ist die URL, die der Browser in der Adressleiste nach Aufruf der Seite anzeigt.

Nachdem man nämlich http://www.daserste.de/wort aufgerufen hat, steht in der Adressleiste die REQUEST_URI geschrieben; in diesem Fall ist dies http://www.daserste.de/wort/. Der Slash am Ende der URL verrät nun, dass 'wort' ein Ordner und keine Datei ist.

Somit kann der Link sendung.asp nur http://www.daserste.de/wort/sendung.asp sein. Aber auch, wenn ich die Seite ohne www aufrufe, also mit http://daserste.de/wort; erhalte in der Adressleiste die REQUEST_URI http://www.daserste.de/wort/Default.asp.

Auch bei dieser URL ist 'wort' der Ordner, in dem die Datei Default.asp ist, welche die aufgerufene Webseite ist. Und auch hier ist diese REQUEST_URI die URL, auf die sich alle relativen Pfadangaben im Quelltext beziehen. Mehr zu relativen URL-Angaben in Quelltexten siehe diese beiden Webseiten!

http://de.selfhtml.org/html/verweise/projektintern.htm
http://tools.ietf.org/html/rfc3986

Code: Alles auswählen
"g:h"      =  "g:h" (absolute URL)
"g"        =  "http://a/b/c/g"
"./g"      =  "http://a/b/c/g"
"g/"       =  "http://a/b/c/g/"
"/g"       =  "http://a/g"
"//g"      =  "http://g"
"?y"       =  "http://a/b/c/d;p?y"
"g?y"      =  "http://a/b/c/g?y"
"#s"       =  "http://a/b/c/d;p?q#s"
"g#s"      =  "http://a/b/c/g#s"
"g?y#s"    =  "http://a/b/c/g?y#s"
";x"       =  "http://a/b/c/;x"
"g;x"      =  "http://a/b/c/g;x"
"g;x?y#s"  =  "http://a/b/c/g;x?y#s"
""         =  "http://a/b/c/d;p?q"
"."        =  "http://a/b/c/"
"./"       =  "http://a/b/c/"
".."       =  "http://a/b/"
"../"      =  "http://a/b/"
"../g"     =  "http://a/b/g"
"../.."    =  "http://a/"
"../../"   =  "http://a/"
"../../g"  =  "http://a/g"

Folgende 4 URLs sind identisch:




Dank an alle User, die mir auf der Forumsseite

http://forum.de.selfhtml.org/?t=204825&m=1387835

meine diesbezüglichen Fragen beantworteten, sodass ich dieses Problem lösen konnte!




Laut Wikipedia (URL-Encoding) kann eine URL beispielsweise so aussehen:

http://joe:passwd@www.example.net:8080/index.html?action=something&session=A54C6FE2#info

Und laut Selfhtml.org kann zudem zwischen den Slashes / eine Zusatzangabe zu einem lokalen Netzwerknamen möglich sein.