index.html?blabla und http://domain.de/verzeichnis/datei
Inselchef
- webserver
0 Erwin0 Dieter Raber0 Dieter Raber0 MudGuard
0 CarstenP
0 Inselchef
Hallo,
habe zwei Fragen (und da ich die Antwort noch nicht weiß, kann das Thema auch falsch sein):
1. Wie macht man das, dass bei einem Link eine HTML-Seite aufgerufen wird, hinter der ein Fragezeichen und noch etwas steht, zum Beispiel:
index.html?blablabla
Bei Seiten z.B. in PHP kann ich mir das vorstellen (hab zwar keine Ahnung davon, aber das hängt wohl irgendwie mit PHP zusammen). Aber wie ist das mit normalen HTML-Seiten? Und: Was bringt das?
2. Man kann bekanntlich direkt Seiten aus Unterverzeichnissen aufrufen:
http://www.nurnbeispiel.de/irgendwas/guckmahier.html
Aber was ist hier mit?
http://www.nurnbeispiel.de/irgendwas/guckmahier
Also ohne Endung. Was ist das eigentlich?
Tschö
Inselchef
Hallo,
habe zwei Fragen (und da ich die Antwort noch nicht weiß, kann das Thema auch falsch sein):
- Wie macht man das, dass bei einem Link eine HTML-Seite aufgerufen wird, hinter der ein Fragezeichen und noch etwas steht, zum Beispiel:
index.html?blablabla
da muss in der HTML Datei ein SSI - Script stecken was den QUERY_STRING auswertet (?QUERY_STRING), oder die HTML - DAtei macht das selbst.
Bei Seiten z.B. in PHP kann ich mir das vorstellen (hab zwar keine Ahnung davon, aber das hängt wohl irgendwie mit PHP zusammen). Aber wie ist das mit normalen HTML-Seiten? Und: Was bringt das?
2. Man kann bekanntlich direkt Seiten aus Unterverzeichnissen aufrufen:
http://www.nurnbeispiel.de/irgendwas/guckmahier.html
Aber was ist hier mit?
http://www.nurnbeispiel.de/irgendwas/guckmahier
Also ohne Endung. Was ist das eigentlich?
Schau dir mal ModeRewrite an ;-)
Machs gut! Erwin
Hallo,
index.html?blablabla
Es bedeutet, dass man der Seite, die aufgerufen wird, noch Parameter mitgibt, die von der Seite in irgeneiner Art weiterverarbeitet werden. Das kann entweder mit einer serverseitigen Sprache geschehen, etwa PHP oder ASP oder aber mit Javascript, wobei letzteres eine unsichere Geschichte ist.
Beispiel fuer PHP zum Verstaendnis:
...seite.php?title=mein_titel
In der Seite 'seite.php' wird dann sowas stehen wie
<head>
<title><?php echo $_GET['title'] ?></title>
Die Parameter, die an die URL angehaengt werden, finden sich also im Array GET wieder.
Aber wie ist das mit normalen HTML-Seiten? Und: Was bringt das?
Wenn das hinter normalen HTML-Seiten steht, ist entweder Javascript im Spiel, oder die Seite ist in Wirklichkeit eine PHP-, ASP- usw. Seite, die mit einer Technik, die mod_rewrite heisst, als HTML-Seite angesprochen wird. Ob es allerdings sinnvoll ist eine Adresse mit mod_rewrite zu behandeln _und_ GET-Parameter anzuhaengen, steht auf einem anderen Blatt.
http://www.nurnbeispiel.de/irgendwas/guckmahier.html
Hier wird genau diese Seite angesprochen.
http://www.nurnbeispiel.de/irgendwas/guckmahier
Hier wird die Seite http://www.nurnbeispiel.de/irgendwas/guckmahier/index.htm angesprochen, zumindest in der Regel. Bei den Standardservereinstellungen, wird, sofern keine Seite, sondern nur ein Verzeichnis angegeben ist, vom Server eine Seite index.htm oder index.html oder default.htm oder, oder, oder ausgegeben. Das haengt ab von der Konfiguration des Servers, aber normalerweise liegt man mit index.htm(l) im gruenen Bereich.
Dieter
Hallo,
Was Erwin sagt, naemlich dass Server Side Includes im Spiel sein koennen, habe ich voellig uebersehen. Als Endung hast Du es dann in der Regel mir .shtml zu tun.
Dieter
Hi,
Hallo,
Was Erwin sagt, naemlich dass Server Side Includes im Spiel sein koennen, habe ich voellig uebersehen. Als Endung hast Du es dann in der Regel mir .shtml zu tun.
Irgendwelche Rückschlüsse aus irgendwelchen Buchstaben-Kombinationen in der URL (außer dem Protokoll) auf dahinterliegende Techniken zu ziehen, ist unsinnig.
Ein Server kann so konfiguriert sein, daß bei .php in der URL Serverside Includes verwendet werden, oder daß bei .html in der Url PHP im Spiel ist. Oder hinter .cgi ein Java-Servlet. Oder hinter .asp eine Java Server Page. Oder hinter .pl eine reine HTML-Seite.
cu,
Andreas
Hallo Andreas,
ist mir schon klar, dass man das kann. Ich wollte aber den armen Fragesteller nicht noch mehr verwirren. Vorsichtshalber habe ich immer schon geschrieben 'in der Regel', weil man es so halt meistens antrifft.
Dieter
Hallo,
http://www.nurnbeispiel.de/irgendwas/guckmahier
Hier wird die Seite http://www.nurnbeispiel.de/irgendwas/guckmahier/index.htm angesprochen, zumindest in der Regel.
Als allererstes wird die Ressource guckmahier angesprochen. Wenn diese nicht gefunden wird, dann schmeißt der Server seine Fehlerbehandlungsroutinen an und vermutet, daß eigentlich ein Verzeichnis gemeint ist und hängt das fehlende / hinten dran. Sofern tatsächlich das Verzeichnis gemeint ist, wird der Statuscode 301 (Moved Permanently) erzeugt und es erfolgt ein neuer Request. Ein fehlendes / bei einem Verzeichnis verursacht also unnötige Serverlast.
Eine weitere Möglichkeit, die hinter der obigen URL stecken könnte, ist "Content Negotiation" (http://aktuell.de.selfhtml.org/artikel/server/alt-http/index.htm). Hier wird anhand des Headers, den der Browser mitschickt, aus verschiedenen Möglichkeiten eine ausgewählt, die an den Browser zurückgeschickt wird.
Beispiel Sprachauswahl:
http://www.example.org/seite.de.html -> deutsche Seite
http://www.example.org/seite.en.html -> englische Seite
Bei der Anforderung von "http://www.example.org/seite" entscheidet der Server anhand der mitgeschickten Spracheinstellungen, welche der beiden Seiten er ausliefern soll.
Oder schau Dir mal die URLs der "Valid-HTML-Icons" vom W3C an:
http://www.w3.org/Icons/valid-xhtml10
Der Server entscheidet bei dieser URL anhand des Headers, ob er valid-xhtml10.png oder valid-xhtml10.gif ausliefern soll.
Viele Grüße
Carsten
Ach so, noch eine Frage:
Beispiel Sprachauswahl:
http://www.example.org/seite.de.html -> deutsche Seite
http://www.example.org/seite.en.html -> englische SeiteBei der Anforderung von "http://www.example.org/seite" entscheidet der Server anhand der mitgeschickten Spracheinstellungen, welche der beiden Seiten er ausliefern soll.
"Der Server", heißt das, dass man gar nichts programmieren muss, sondern der Server die Abkürzungen "en" und "de" erkennt und das Ganze automatisch macht?
Inselchef
Hallo,
"Der Server", heißt das, dass man gar nichts programmieren muss, sondern der Server die Abkürzungen "en" und "de" erkennt und das Ganze automatisch macht?
Naja, wenn Dein Provider so freundlich ist und den Server bereits entsprechend konfiguriert hat, dann muß man in der Tat nichts weiter mehr machen. Ansonsten lies Dir aber den von mir verlinkten Artikel durch, da ist die Geschichte sehr gut erklärt.
Viele Grüße
Carsten
Nabend,
danke für eure Antworten.
Inselchef