Hi,
Bin gerade dabei in meine Chatsoftware einen FileServer einzubauen.
Chat per http? Das ist Protokollvergewaltigung. Wofür gibt es eigentlich IRC?
Sollte nun eine zwar existente Datei abgerufen werden, die aber eine unbekannte Dateiendung hat sollte der Server den Statuscode "405 Method Not Allowed" senden.
Warum?
Method not allowed ist für was anderes vorgesehen.
Z.B. wenn ein POST auf eine statische HTML-Seite losgelassen wird.
403 Forbidden erscheint mir wesentlich besser geeignet
Zitat aus RFC 2616 (http 1.1 - siehe http://www.ietf.org/rfc/rfc2616.txt):
10.4.4 403 Forbidden
The server understood the request, but is refusing to fulfill it.
Authorization will not help and the request SHOULD NOT be repeated.
If the request method was not HEAD and the server wishes to make
public why the request has not been fulfilled, it SHOULD describe the
reason for the refusal in the entity. If the server does not wish to
make this information available to the client, the status code 404
(Not Found) can be used instead.
Dies tut er, doch kein Browser scheint damit etwas anfangen zu können. Der IE zB zeigt weiß und Opera ist der Meinung keine Verbindung zum Server aufbauen zu können.
Ist der header der Response korrekt aufgebaut?
Ist ein allow-Field vorhanden?
Zitat aus RFC 2616:
10.4.6 405 Method Not Allowed
The method specified in the Request-Line is not allowed for the
resource identified by the Request-URI. The response MUST include an
Allow header containing a list of valid methods for the requested
resource.
Ist es normal, daß die Browser teilweise gar nichts mit den Statuscodes anfangen können, sondern alle nur die standart 404, 200, usw. verstehen?
Standard hat nichts mit Stand-Art (Würschtelbude, Glühweinstand, ...) zu tun.
Wenn die Fehlermeldungen KORREKT gesendet werden, kommen die Browser eigentlich damit zurecht.
cu,
Andreas
Der Optimist: Das Glas ist halbvoll. - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.