PUT Methode wird nicht akzeptiert

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PUT Methode wird nicht akzeptiert

Postby Musketier » 02. January 2014 21:29

Hallo

die PUT Methode wird nicht akzeptiert. Bekomme immer den Status 405 (Method Not Allowed)
Es gibt ja scheinbar auch kein put.php oder upload.php.
Woran liegt es? In der php.ini sind die betreffenden Tags schon gesetzt. Sollte dann eigentlich funktionieren.
Für eine schnelle Lösung währe ich dankbar.
Musketier
 
Posts: 4
Joined: 02. January 2014 21:24
Operating System: Windows 7 (win32)

Re: PUT Methode wird nicht akzeptiert

Postby Altrea » 02. January 2014 22:29

Hallo Musketier,

Ich verstehe leider nur die Hälfte von deinem Beitrag.

Musketier wrote:Es gibt ja scheinbar auch kein put.php oder upload.php.

Weshalb sollte es diese Dateien geben und was sollen diese bewirken? PUT ist ersteinmal nur eine HTTP Anfragemethode.

Musketier wrote:In der php.ini sind die betreffenden Tags schon gesetzt.

Welche Tags hast du wie und wo gesetzt?
Wie bereits gesagt spielt sich die Anfragemethode auf HTTP Protokollebene ab.
PHP ist dort fast am Ende der Anfragekette.

Musketier wrote:Für eine schnelle Lösung währe ich dankbar.

Für eine solche Forderung musst deutlich Gesprächiger werden. Wir wissen absolut garnichts über deine Umgebung.
Wir wissen nicht, welche Anfragen du wie produzierst, ob du dafür vielleicht ein PHP RESTful Framework verwendest und Beispielcode zum Testen haben wir auchnicht, geschweige denn überhaupt vollständige Fehlermeldungen, vollständige Informationen über den Request und Response, Logdateiinformationen, etc pp.

Bevor du uns nicht das Gegenteil beweist gehe ich stark davon aus, dass ein Drittanbieterscript (zum Beispiel das RESTful Framework) selbst diesen HTTP Response sendet, weil du den Request in einer Art und Weise sendest, die das Framework nicht erwartet.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8298
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: PUT Methode wird nicht akzeptiert

Postby Musketier » 03. January 2014 10:45

Hallo

ok. Ich habe einen kleinen File Uploader programmiert welcher über Http Files auf einen Http Server überträgt. Protokolltechnisch geht das entweder über eine POST Anweisung oder einfacher über eine PUT Anweisung. Prinzipiell scheint mein Uploader zu funktionieren (POST habe ich noch nicht getestet), GET funzt. . Mit der PUT Methode scheint es aber ein Problem zu geben. Bekomme wie schon beschrieben die Fehlermeldung 405 (was Methode nicht unterstützt bedeutet). Das access.log zeigt darauf hin folgenden Trace:
"PUT /image00.bmp HTTP/1.1" 405 973 "-" "HttpTester 1.0 (Windows NT 6.1; win32)". War also der Meinung das PUT Kommando wird nicht unterstützt. Die anderen Logs zeigen keinen Traces bezüglich des PUT Versuches. Habe dann die php.ini bezüglich der Upload Funktion angepasst ( file_uploads=On, upload_tmp_dir="C:\Windows\Temp", upload_max_filesize=200M, max_file_uploads=20).
Habe dann noch ein wenig im Web gesucht und einige PHP Skripte gefunden welche sich ebenfalls mit der Thematik beschäftigen. Die Lösungen dafür waren immer mit einem put.php oder upload.php gelöst. Da ich keine PHP Experte bin ging ich davon aus dass es für das PUT Kommando u.U. einen eigenen PHP Event Handler gibt.
Ich denke aber mir fehlen da noch ein paar Informationen. Definitv ist dass das PUT nicht funktioniert wie ich es erwarte.
Meine Frage deshalb: Unterstützt Apachee (XAMPP) ohne besondere Config die PUT Methode?
Bin für jede weitere Info Dankbar.
Musketier
 
Posts: 4
Joined: 02. January 2014 21:24
Operating System: Windows 7 (win32)

Re: PUT Methode wird nicht akzeptiert

Postby Nobbie » 03. January 2014 11:34

Musketier wrote:Meine Frage deshalb: Unterstützt Apachee (XAMPP) ohne besondere Config die PUT Methode?.


Nein, das liegt u.a. an der Problematik, dass man sonst einfach von außen eine Datei "irgendwo" (mit vollem Pfadnamen) auf den Server kopieren könnte. Das birgt natürlich derbe Rechteprobleme u.v.m.

Ein ganz gutes Tutorial, wie man einen sog. PUT Handler in Apache definiert und in PHP ausprogrammiert, findest Du hier:

http://www.php.net/manual/en/features.f ... method.php

Eine reine Apache Lösung nur mit HTTP PUT gibt es nicht, die scheitert bereits daran, dass die gängigen Browser die PUT Methoder gar nicht erst beherrschen bzw. den entsprechenden Request an den Apache Server schicken. Browser kennen eigentlich nur GET, POST und HEAD. Man müßte quasi im Formular schreiben können

<form action="blabla.php" method="PUT" ... />

aber das unterstützt kein Browser. Also müßtest Du die PUT Methode anders auslösen als über den Browser.

Weil diese Schnittstelle (HTTP PUT) so zurückgeblieben ist, hat sich schon seid einiger Zeit eine Erweiterung durchgesetzt, nämlich die sog. WebDAV Spezfikation. Dazu muss in Apache ein bestimmtes Modul geladen werden und man muss einen WebDAV Client haben (auf dem PC), aber es gibt auch Browser, die die WebDAV Schnittstelle direkt bedienen können (wobei ich zugebenerweise nicht weiß, wie da der aktuelle Stand bei den heutigen Platzhirschen aussieht - ich habe vor vielen Jahren mit einem Linux Browser herumgespielt, der WebDAV nativ beherschen konnte).

Insgesamt ist natürlich die Frage naheliegend, warum Du nicht FTP für Deine Anforderung benutzt, denn das ist das gängige und mit Abstand am meisten verbreitete Protokoll für Dateiübertragung?!
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04

Re: PUT Methode wird nicht akzeptiert

Postby Musketier » 03. January 2014 20:33

Hallo

ok. Ich dachte mir schon das da was nicht ganz "straight forward" ist. Die Sache mit dem einfachen PUT auf einen Server ist klar. Das wird dann auch über Accounts esteuert. FTP haben wir bisher verwendet. Der Kunde hat sich aber Http in den Kopf gesetzt. Ich verwendet XAMPP nur als Testumgebung.
Letztendlich sehe ich aktuell nicht, egal ob PUT oder POST warum der Server einen 404er Fehlercode zurückliefert.
Gibt es eine Möglichkeit herauszubekommen warum die 404 als Fehler hesetzt wird? Erweitertes Logging..?
Musketier
 
Posts: 4
Joined: 02. January 2014 21:24
Operating System: Windows 7 (win32)

Re: PUT Methode wird nicht akzeptiert

Postby Altrea » 03. January 2014 21:01

Musketier wrote:FTP haben wir bisher verwendet. Der Kunde hat sich aber Http in den Kopf gesetzt. Ich verwendet XAMPP nur als Testumgebung.

Der Kunde wird aber nicht ohne Grund einen Externen angeheuert haben, nämlich in der Regel weil ihm die tiefgründige Fachkenntnis fehlt dieses Problem selbst zu lösen.
Die Berufsehre verpflichtet dazu, einen Kunden auch vor falschen Entscheidungen auf Grund von Fehleinschätzungen der Probleme und Anforderungen zu schützen. Dies muss natürlich wohl begründet sein (Ich kann nicht beurteilen, weshalb dein Kunde unbedingt auf FTP verzichten möchte).

Musketier wrote:Letztendlich sehe ich aktuell nicht, egal ob PUT oder POST warum der Server einen 404er Fehlercode zurückliefert.
Gibt es eine Möglichkeit herauszubekommen warum die 404 als Fehler hesetzt wird? Erweitertes Logging..?

Ein nicht selbst gesetzter HTTP Status 404 bedeutet immer, dass der Webserver eine Ressource nicht finden kann (entweder weil sie für den Webserver versteckt ist oder nicht existiert)
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8298
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: PUT Methode wird nicht akzeptiert

Postby Nobbie » 04. January 2014 22:58

Musketier wrote:Der Kunde hat sich aber Http in den Kopf gesetzt


Das ist sowieso mein Ausstieg - wenn der Kunde mich bezahlt, helfe ich ihm gerne weiter.
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04

Re: PUT Methode wird nicht akzeptiert

Postby Musketier » 08. January 2014 12:45

Ok. Habe die POST Methode zum laufen gebracht. Ich kann nun Dateien beliebiger Größe und Types per Http auf Apache Server uploaden.
Zur Info. Wir reden hier über eine API Level Implementierung. Es ist also keine Browseranwendung. Es ist auch keine klassiche Webserver Anwendung.
Also bitte keine Belehrungen bezüglich Http Webserver Vorgehensweisen.
So, was mir jetzt noch fehlt ist die PUT Methode. Wie schon mehrfach geschrieben wird die PUT Methode "stiefmütterlich" unterstützt. Obwohl sie einfacher und eigentlich
dafür gemacht ist. Wenn das PUT Kommando standard Http Protokoll ist warum wird es dann nicht standardmäßig von Apachee unterstützt? Muß ich mich wohl noch einwenig tiefer damit bschäftigen ;-}
Musketier
 
Posts: 4
Joined: 02. January 2014 21:24
Operating System: Windows 7 (win32)

Re: PUT Methode wird nicht akzeptiert

Postby Nobbie » 08. January 2014 14:42

Musketier wrote:Also bitte keine Belehrungen bezüglich Http Webserver Vorgehensweisen.


Fehlerhafte Implementierungen werden nicht richtig dadurch, dass man sich nicht belehren lassen will. Aber HTTP ist kein gut geeignetes Protokoll für Massenuploads. Aber es wird so viel herumgemurkst, das macht den Braten auch nicht mehr fett.

Musketier wrote:Wenn das PUT Kommando standard Http Protokoll ist warum wird es dann nicht standardmäßig von Apachee unterstützt?


Weil das Apache Team nicht die HTTP Spezifikation definiert, sondern lediglich eine eigene Implementierung umsetzt. Andere Webserver unterstützen es auch kaum, die Probleme der Rechteverwaltung sind ja bekannt. Das Apache Team unterstützt nur die Umsetzung via Handler.

Außerdem haben ja auch quasi alle Browserhersteller den PUT nicht umgesetzt. Und die Browser halten sich auch nicht an W3C HTML Spezifikationen, irgendwo bröselt jeder seinen Mist vor sich. So ist das Computerleben halt. Jeder definiert sich seinen eigenen Standard...
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04

Re: PUT Methode wird nicht akzeptiert

Postby Altrea » 08. January 2014 15:21

Das erinnert mich immer ein wenig an das hier:

Image

Quelle: http://xkcd.com/927/
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8298
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 8 guests