warum gibt es keinen 404-er
Norbert
- webserver
Hallo,
wenn man diese Adresse http://www.uris.de/admin/addto aufruft, bekommt man je nach Browser unterschiedliche Dokumente praesentiert. Da die URL nicht vollstaendig ist, sollte IMHO jedoch eine 404-er Antwort kommen.
Hat jemand eine Idee, warum dies nicht so ist ?
PS:
Es ist ein 1&1-Server, d.h. ich habe daran nicht gedreht ... ;-)
Gruss und Dank
Norbert
Hallo,
wer mit dem IE kommt, kann auf [Strn][R] druecken und bekommt noch ein anderes Dokument zu sehen. Alle anderen Browser haben IMHO keine Auswahl.
Gruss und Dank
Norbert
Hallo,
..] d.h. ich habe daran nicht gedreht ... ;-)
Vielleicht MultiViews in d. htaccess?
bei ../addto wird ../addto.png angezeigt, bei ../addt gibt es die von dir
vermisste 404-Meldung
Grüsse
Cyx23
Hallo Cyx23,
Vielleicht MultiViews in d. htaccess?
Jain,
erstens gibt es dort keine .htaccess und zweitens liegen viele Dateien addto.* dort.
Wer entscheidet, und warum, welche Datei ausgeliefert wird.
Es muss ja nicht unbedingt ein GIF, JPG oder PNG sein, der Server koennte genauso eine TXT, HTM oder PHP rausruecken. MultiViews sollen doch nur das optimalste Dokument auswaehlen und nicht entscheiden, welche Art es hat, also Bild oder Text.
Gruss Norbert
hi,
wenn man diese Adresse http://www.uris.de/admin/addto aufruft, bekommt man je nach Browser unterschiedliche Dokumente praesentiert. Da die URL nicht vollstaendig ist, sollte IMHO jedoch eine 404-er Antwort kommen.
Hat jemand eine Idee, warum dies nicht so ist ?
Das schon erwähnte MultiViews, und ggf. noch mod_spelling.
gruß,
wahsaga
Hi wahsaga,
Das schon erwähnte MultiViews, und ggf. noch mod_spelling.
hmm,
also MultiViews waere echt falsch, es geht ja nicht um eine Sprachauswahl.
Und mod_spelling soll eine Liste der moeglichen Dokumente zurueckliefern.
http://www.mailarchives.org/list/apache-httpd-docs/msg/2003/01212
Tut es aber nicht tun, habe ich mit PHP und fsockopen ausprobiert.
Gruss Norbert
Hallo Norbert,
Das schon erwähnte MultiViews, und ggf. noch mod_spelling.
hmm,
also MultiViews waere echt falsch, es geht ja nicht um eine Sprachauswahl.
Woher nimmst du eigentlich die Vorstellung, dass MultiViews nur für die Sprachauswahl zuständig wäre? Content-Negotiation kann sich auch auf andere Eigenschaften eines Dokuments erstrecken.
Schöne Grüße,
Johannes
Hallo Johannes,
Woher nimmst du eigentlich die Vorstellung, dass MultiViews nur für die Sprachauswahl zuständig wäre?
na-ja,
man kann doch nicht alles in einen Topf werfen.
Es gibt MultiViews dann Content Negotiation und mod_spelling ist wieder etwas anderes.
Da in dem urspruenglichen Link _keine_ Extension angegeben ist, ist auch nicht klar, ob Text- oder Bild-Daten angefordert werden. Damit fallen MultiViews und Content Negotiation weg und mod_spelling muesste greifen. Dann jedoch sollte der Client eine Liste der vergleichbaren Dateien erhalten um sich was passendes auszusuchen. Das wiederum passiert nicht, sondern es wird einfach etwas uebertragen. Und das entspricht absolut nicht den Anforderungen.
Gruss Norbert
hi,
man kann doch nicht alles in einen Topf werfen.
Ja dann lass es doch endlich.
Da in dem urspruenglichen Link _keine_ Extension angegeben ist, ist auch nicht klar, ob Text- oder Bild-Daten angefordert werden.
Eben.
Und deshalb wird aus den Accept-Headern, die der Client mitgeschickt hat, versucht zu ermitteln, was er denn wohl am ehesten brauchen könnte.
Damit fallen MultiViews und Content Negotiation weg
Nö, die sind genau die Verantwortlichen, die du hier suchst.
gruß,
wahsaga
Moin!
man kann doch nicht alles in einen Topf werfen.
Es gibt MultiViews
Wie du an der von dir selbst verlinkten Seite feststellen kannst, ist MultiViews nicht nur für die Sprache, sondern auch für die Auslieferung eventuell komprimierter Seiten zuständig.
Der Apache-Webserver erlaubt es, dass man mehrere Dateiendungen durch Punkte abtrennt, um damit den Dateiinhalt näher zu beschreiben. Dabei kann jeder Dateiendung durch die Apache-Konfiguration eine bestimmte Bedeutung zugeordnet werden.
.html, .txt, .jpg, .png und .gif ordnen der Datei Content-Typen zu.
.en, .de, .fr etc. ordnen der Datei Sprachen zu.
.gz, .zip, .Z etc. ordnet der Datei Komprimierungstypen zu.
Das Zeichenencoding läßt sich ebenfalls einstellen.
Alle diese Metainformationen gehören in das Gebiet von mod_mime.
Sie werden aber genutzt von mod_negotiation, zu dem auch die Option MultiViews gehört (Option ist eine Kern-Direktive, die aber nur bei aktiviertem mod_negotiation auch MultiViews kennt).
Da in dem urspruenglichen Link _keine_ Extension angegeben ist, ist auch nicht klar, ob Text- oder Bild-Daten angefordert werden. Damit fallen MultiViews und Content Negotiation weg
Falsch, genau diese Mechanismen kommen dann erst zum Tragen. Der angegebenen URL kann keine Datei direkt zugeordnet werden, es gibt nur Dateien, die zusätzliche Dateiendungen haben - und die Dateiendungen erklären dem Webserver die Metainformationen, wie oben erwähnt.
mod_negotiation sorgt dann, basierend auf den Client-Headern, in denen dieser seine Präferenzen mitteilt, für die automatische Auswahl einer passenden Datei.
Das wäre kein Problem, gäbe es beispielsweise nur Grafiken (png/gif/jpg) zur Auswahl. Dein Spezialfall ist, dass es zusätzlich noch HTML, TXT und PHP gibt. Das macht die Sache schwieriger.
und mod_spelling muesste greifen. Dann jedoch sollte der Client eine Liste der vergleichbaren Dateien erhalten um sich was passendes auszusuchen.
Du meinst so eine Liste: http://www.uris.de/admin/addto.bla
Die kommt nicht von mod_speling (das würde im Hintergrund arbeiten und einfach eine passende Ressource auswählen), sondern auch von MultiViews.
Das wiederum passiert nicht, sondern es wird einfach etwas uebertragen. Und das entspricht absolut nicht den Anforderungen.
Deinen Anforderungen?
Du kannst ja mal checken, was dein Browser so an Headern mitschickt:
http://forum.de.selfhtml.org/cgi-bin/http_trace.pl
- Sven Rautenberg
Hallo Sven,
zuerst mal, wenn man etwas falsches eingibt erwartet man eine Fehlermeldung.
Darauf hat man doch wohl ein Recht - oder ?
Wenn man die URL mit PHP via fsockopen(); oeffnet, gibt es absolut keine Header, die der Server auswerten koennte, ausser, man sendet sie ausdruecklich mit. Trotzdem kommt auch hier kein Error, sondern eine Datei zurueck. Das ist kein Fiedscher, das ist definitiv Murks.
Stell Dir das mal bei einer Downloadseite vor. Du tippst aus versehen .../haus[enter] und bekommst .../hausfrauen.jpg (96,99 Euro) statt .../hausbau.pdf (12,50 Euro) und der Richter meint, zahlen sie, das ist ein gutes Fiedscher.
Du kannst ja mal checken, was dein Browser so an Headern mitschickt:
http://forum.de.selfhtml.org/cgi-bin/http_trace.pl
habe ich gemacht,
aber den Server interessiert das nicht, zumindestens liefert er nicht in der Reihenfolge von Accept.
Gruss Norbert
hi,
zuerst mal, wenn man etwas falsches eingibt erwartet man eine Fehlermeldung.
Darauf hat man doch wohl ein Recht - oder ?
Zuerst Mal, das richtige Konfigurieren des Server ist Sache dessen, der ihn administriert.
Und das ist nicht sein gutes Recht, sondern seine Pflicht.
Wenn man die URL mit PHP via fsockopen(); oeffnet, gibt es absolut keine Header, die der Server auswerten koennte, ausser, man sendet sie ausdruecklich mit. Trotzdem kommt auch hier kein Error, sondern eine Datei zurueck. Das ist kein Fiedscher, das ist definitiv Murks.
Das würde ich als eindeutiges Fehlerverhalten des Servers bezeichnen (ggf. Konfigurationsfehler?)
http://httpd.apache.org/docs/1.3/content-negotiation.html besagt im Abschnitt "Apache Negotiation Algorithm":
"1. First, for each dimension of the negotiation, check the appropriate Accept* header field and assign a quality to each variant. If the Accept* header for any dimension implies that this variant is not acceptable, eliminate it. If no variants remain, go to step 4."
Und Step 4 wäre dann die Ausliefung einer Liste unter dem Status Code 406 Not acceptable.
gruß,
wahsaga
Hi,
zuerst mal, wenn man etwas falsches eingibt erwartet man eine Fehlermeldung.
Darauf hat man doch wohl ein Recht - oder ?
Zuerst Mal, das richtige Konfigurieren des Server ist Sache dessen, der ihn administriert.
Und das ist nicht sein gutes Recht, sondern seine Pflicht.
hmm,
warum sagst Du das mir, sag das 1&1 ...
Mich interessiert in der Regel eigentlich nur, warum etwas so ist, wie es ist. Aendern kann man das als User/Coder sowieso nur in absoluten Ausnahmefaellen. In den Firmen bin ich kein Admin, bei 1&1 macht das auch jemand anderes und mein lokaler Indianer macht sowieso was ER will. No chance ... ;-)
Schoenes WE
Norbert
Hallo Norbert,
Mich interessiert in der Regel eigentlich nur, warum etwas so ist, wie es ist. Aendern kann man das als User/Coder sowieso nur in absoluten Ausnahmefaellen. In den Firmen bin ich kein Admin, bei 1&1 macht das auch jemand anderes und mein lokaler Indianer macht sowieso was ER will. No chance ... ;-)
Schönes Hobby hast du da. Für alle anderen nochmal vorsorglich der
Hinweis auf die Datei .htaccess und Einträge wie Options -MultiViews,
es muß ja nicht immer die httpd.conf sein.
Grüsse
Cyx23