Ankündigung

Einklappen
Keine Ankündigung bisher.

Error 400 (Bad Request) bei Bild-Element

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Error 400 (Bad Request) bei Bild-Element

    Hallo Christian,

    auf meiner Wetter-Seite habe ich Bild-Elemente bspw. mit der URL https://www.yr.no/place/Switzerland/.../meteogram.png. Gefühlt seit dem Update auf die 1.51 werden diese Bilder nicht mehr geladen (so richtig sicher bin ich mir da aber nicht).

    Schaue ich mit den Developer-Tools etwas genauer nach, erhalte ich beim Laden der externern Grafiken einen 400er Fehler, also "Bad Request". Im Quellcode der Visu-Seite wird an die URL noch ein Timestamp angehängt, obiges Beispiel sieht damit dann so aus:

    https://www.yr.no/place/Switzerland/...S3172017215455

    Damit bekommt man dann in der Tat einen Bad Request als Antwort. Offenbar reagiert der entferne Webserver darauf etwas angesäuert. Hast Du dazu eine Idee resp. kann man diese Timestamps abschalten? Was haben diese überhaupt für einen Sinn und Zweck?
    Kind regards,
    Yves

    #2
    Sinn und Zweck ist das Verhindern eines Cachings des Bildes oder einer sonstigen URL (auf die harte Tour). Normaler Weise lassen sich Browser damit "täuschen" (die URL ist ja jedesmal anders) und laden das Bild brav erneut vom Server.

    "Dein" Server mag allerding die Get-Parameter offenbar nicht (oder nicht mehr) - dat is blöd. Natürlich kann man den TS auch weglassen, nur ist dies aktuell nicht vorgesehen. Aber ich pack's gerne mal uff Liste
    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

    Kommentar


      #3
      Ich habe das gleiche Problem im Rahmen der Cometvisu, die Ursache ist aber unabhängig von der eingesetzten Visualisierung:
      Offenbar gab es irgendwann in den letzten Wochen eine Änderung bei yr.no, die verhindert dass man Bilder mit Cachebuster (angehängter Timestamp in einem ungenutzten Parameter) aufruft. Vermutlich wollen sie damit erzwingen, dass man die Meteogramme nicht mehr nach Belieben neu lädt - was für deren Server eine Lastveränderung bedeutet.

      Möglichkeiten die ich sehe:
      • refresh des Bildes nur bei Neuladen der Visu im Browser (wahlweise indem man das reload für das Visu-Element entfernt, oder aber die URL mit einer Raute beendet:
      Code:
      https://www.yr.no/place/Switzerland/Aargau/Aarau/meteogram.png#
      • sich selbst einen lokalen Proxy aufsetzen, den man aus der Visu heraus mit Cachebuster aufruft, der aber intern einen ungecachten Request an yr.no einsetzt. Kann für nginx beispielsweise so aussehen:
      Code:
      server {
              listen  3030;
              location /meteogram.png {
                  set $args "";
                  proxy_buffering off;
                  proxy_pass https://www.yr.no/place/Switzerland/Aargau/Aarau/meteogram.png;
              }
          access_log /dev/null;
          error_log /dev/null;
      }
      Dabei sollte man immer auch fair use sowie die Nutzungsbedingungen von yr.no berücksichtigen - das Meteogramm bei yr.no wird alle 60 Minuten aktualisiert, es ergibt wenig Sinn wenn man in seiner Visu das Bild dann alle Minute neu lädt.

      Viele Spaß
      Julian

      Kommentar


        #4
        Hallo Julian

        Zitat von netzkind Beitrag anzeigen
        Ich habe das gleiche Problem im Rahmen der Cometvisu, die Ursache ist aber unabhängig von der eingesetzten Visualisierung:
        Offenbar gab es irgendwann in den letzten Wochen eine Änderung bei yr.no, die verhindert dass man Bilder mit Cachebuster (angehängter Timestamp in einem ungenutzten Parameter) aufruft. Vermutlich wollen sie damit erzwingen, dass man die Meteogramme nicht mehr nach Belieben neu lädt - was für deren Server eine Lastveränderung bedeutet.
        Ah ok, also war die Vermutung, dass das mit dem Edomi-Update zu tun hat, ein Zufall.


        Zitat von netzkind Beitrag anzeigen
        refresh des Bildes nur bei Neuladen der Visu im Browser (wahlweise indem man das reload für das Visu-Element entfernt, oder aber die URL mit einer Raute beendet:
        Code:
        https://www.yr.no/place/Switzerland/Aargau/Aarau/meteogram.png#
        Das funktioniert wunderbar, die Grafiken werden nun wieder dargestellt.


        Zitat von netzkind Beitrag anzeigen
        Dabei sollte man immer auch fair use sowie die Nutzungsbedingungen von yr.no berücksichtigen - das Meteogramm bei yr.no wird alle 60 Minuten aktualisiert, es ergibt wenig Sinn wenn man in seiner Visu das Bild dann alle Minute neu lädt.
        Deswegen habe ich für diese Bildelemente auch eine Refreshzeit von einer Stunde.

        Danke für den Tip!
        Kind regards,
        Yves

        Kommentar

        Lädt...
        X