MudGuard: korrekte Fehlermeldung wenn HTTPS gefordert ist

Hi,

welcher HTTP-Status-Code ist der richtige, wenn eine Anforderung ist, daß die Seite per https aufgerufen wird, der Aufruf aber per http erfolgt?

400 Bad Request?

404 Method not allowed wäre ja, wenn statt des geforderten POST ein GET-Request daherkäme. Paßt also nicht.

406 Not Acceptable?
412 Precondition Failed?
417 Expectation Failed?

Was würdet Ihr in diesem Fall als Antwort-Code wählen?

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  1. Hallo Andreas.

    Vielleicht 426 Upgrade Required?

    Servus,
    Flo

    1. Vielleicht 426 Upgrade Required?

      Das wäre, so der Server Möglichkeiten hat, die angeforderte Ressource mittels TLS zu servieren, die eleganteste Methode, auf die missgebildete Anfrage zu reagieren.

      Gruß aus Berlin!
      eddi

      --
      Könnte bitte jemand mal langsam dafür sorgen, dass da draußen nicht dauernd die Filmrolle "Planet der Affen" abgedudelt wird? Danke!
    2. Hallo!

      Vielleicht 426 Upgrade Required?

      Nein, auf gar keinen Fall! Außer Dein Server implementiert RFC 2817, was kein mir bekannter Server unterstützt (und selbst wenn: kein Browser kann es, also genauso dämlich). Siehe </archiv/2008/1/t164710/#m1073897> für Details zu den Statuscodes 101 & 426 sowie RFC 2817.

      Viele Grüße,
      Christian

      --
      Mein "Weblog" [RSS]
      Using XSLT to create JSON output (Saxon-B 9.0 for Java)
      »I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
                  -- Kommentar bei TDWTF
      1. Hallo Christian.

        Nein, auf gar keinen Fall! Außer Dein Server implementiert RFC 2817, was kein mir bekannter Server unterstützt (und selbst wenn: kein Browser kann es, also genauso dämlich). Siehe /archiv/2008/1/t164710/#m1073897 für Details zu den Statuscodes 101 & 426 sowie RFC 2817.

        Vielen Dank - da habe ich etwas gelernt. :-)

        Servus,
        Flo

  2. Hallo,

    417 Expectation Failed?

    Der Server sendet dies, wenn der Client zusätzliches Handling im Expect-Header sendet, und er dem nicht nachkommen kann. Mangels Relevanz scheidet dies aus.

    412 Precondition Failed?

    Der Server wird in diesem Fall von einem Clienten kontaktiert, der eine Repräsentanz einer Ressource im Cache vorhält, lässt diese z. B. durch If-Match-Header abgleichen und der Server findet keine entsprechenden Ressource dazu (weil sie verändert/verschoben wurde). Das trifft es also auch nicht.

    406 Not Acceptable?

    Dies hat mit den Accept-*-Header zutun. So will bsw. der Client das MIME-Type text/html haben, der Server kann aber nur mit application/xml+xhtml dienen.

    404 Method not allowed wäre ja, wenn statt des geforderten POST ein GET-Request daherkäme. Paßt also nicht.

    Weder 404 noch 405 sind hier ebenso richtig - genau.

    400 Bad Request?

    http://tools.ietf.org/html/rfc2616#section-10.4.1:  The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.

    Meiner Auffassung nach ist die Anfrage an eine Ressource, die nur über die URL http://.... erreichbar ist, einem Syntaxfehler gleichzusetzen. Andernfalls ist auch ein 403 möglich. Strenggenommen erlabt der Server die Anfrage nicht und kann in einem entsprechendem Error-Dokument Gründe dazu benennen.

    Gruß aus Berlin!
    eddi

    --
    Könnte bitte jemand mal langsam dafür sorgen, dass da draußen nicht dauernd die Filmrolle "Planet der Affen" abgedudelt wird? Danke!
  3. Tach,

    welcher HTTP-Status-Code ist der richtige, wenn eine Anforderung ist, daß die Seite per https aufgerufen wird, der Aufruf aber per http erfolgt?
    Was würdet Ihr in diesem Fall als Antwort-Code wählen?

    301 Moved Permanently vermutlich. Hat nur den Nachteil, dass der Benutzer nicht direkt informiert wird.

    Microsoft nutzt übrigens HTTP "Error 403.4 - Forbidden: SSL is required to view this resource. (HTTP-Fehler 403.4 - Verboten: SSL ist zum Anzeigen der Ressource erforderlich.)"

    mfg
    Woodfighter

    1. Hallo,

      301 Moved Permanently vermutlich. Hat nur den Nachteil, dass der Benutzer nicht direkt informiert wird.

      darüber hinaus besteht bei einer fehlerhaften Software, die auf Weiterleitungen reagiert, die Gefahr eine Weiterleitungsschleife zu erzeugen, wenn der Client aufgrund der Programmierlogik erneut falsch anfragt.

      Gruß aus Berlin!
      eddi

      --
      Könnte bitte jemand mal langsam dafür sorgen, dass da draußen nicht dauernd die Filmrolle "Planet der Affen" abgedudelt wird? Danke!
      1. Tach,

        darüber hinaus besteht bei einer fehlerhaften Software, die auf Weiterleitungen reagiert, die Gefahr eine Weiterleitungsschleife zu erzeugen, wenn der Client aufgrund der Programmierlogik erneut falsch anfragt.

        du meinst eine Software, die bei einer Weiterleitung wieder die Original-URL aufruft?

        mfg
        Woodfighter

    2. Hallo Jens,

      welcher HTTP-Status-Code ist der richtige, wenn eine Anforderung ist, daß die Seite per https aufgerufen wird, der Aufruf aber per http erfolgt?
      Was würdet Ihr in diesem Fall als Antwort-Code wählen?

      301 Moved Permanently vermutlich.

      Ja, das wäre auch das, was ich nehmen würde. Bzw. wenn der Benutzer informiert werden soll, dann vermutlich 403, da der Benutzer so informiert wird, dass "der Zugriff auf die Ressource ohne SSL nicht erlaubt ist". Die anderen von Andreas vorgeschlagenen Codes würde ich definitiv nicht nehmen wollen, weil sie sich auf den Request und nicht die Verbindung beziehen. Bei 403 dagegen ist das IMO kein Problem.

      Viele Grüße,
      Christian

      --
      Mein "Weblog" [RSS]
      Using XSLT to create JSON output (Saxon-B 9.0 for Java)
      »I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
                  -- Kommentar bei TDWTF
  4. Hi,

    404 Method not allowed

    sollte natürlich 405 heißen.

    Danke schon mal für die Antworten, da die Meinungen ja weit auseinandergehen, warte ich mal noch auf weitere Beiträge.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  5. Hi,

    welcher HTTP-Status-Code ist der richtige, wenn eine Anforderung ist, daß die Seite per https aufgerufen wird, der Aufruf aber per http erfolgt?

    ich habe mich jetzt für 403 Forbidden entschieden.

    Da keine automatische Umstellung auf https erfolgen soll, kommen die 30x nicht in Frage.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.