Routing mit HTTP – Query-String oder Verzeichnis-Notation?

In loser Folge werde ich in den nächsten Monaten einige Vorgehensweisen im Netz technisch etwas näher beleuchten und hinterfragen.

Jedes aktuelle Framework, das etwas auf sich hält im Bereich Webentwicklung, bringt einen Routing-Mechanismus mit. Was macht das Ding? Es kümmert sich darum, dass aus einer URL heraus die passende Applikation bzw. Teilapplikation aufgerufen wird. Wenn man also http://example.com/cart/list aufruft, dann wird der passende Programmcode ausgeführt, der sich um die Anzeige des Warenkorbs kümmert. Soweit so einfach. Innerhalb der Frameworks wird dann häufig per Model-View-Controler gearbeitet. Die Url wird dann noch weiter “genutzt” um den passenden Controller und die passende Action (sofern es verschiedene gibt) zu ermitteln. Mittlerweile auch gängige Praxis ist es alles was danach noch als scheinbare Verzeichnisstruktur kommt als Parameter zu betrachten, immer wechselweise Name/Wert.

Auf den ersten Blick sieht das ja schick aus, denn die URLs werden dadurch ggf. “sprechender” bzw. man kann sie sich leichter merken. Aber nicht alles was schön / schick aussieht ist auch technisch sinnvoll. Ich selbst reibe mich regelmäßig an dieser Form der Applikationssteuerung.

Am ärgerlichsten finde ich den Missbrauch der Verzeichnisstruktur zur Parameterübergabe. Hierfür hat das HTTP-Protokoll bzw. das generische URL-Schema nämlich seit den Kindertagen des Netzes eine passende Lösung. Diese nennt sich Query-String und ist an vielen Stellen des Netzes erfolgreich im Einsatz. Es handelt sich dabei um das “Anhängsel” an Internet-Adressen die nach einem Fragezeichen folgen: Also z.B. http://example.org/suche.html?was=einThema. Die Applikation kann den Querystring (im Code wird er häufig als “GET-Parameter” genannt) dann direkt auswerten. Auch für den Fall mehrerer Parameter ist vorgesorgt: Diese werden per Kaufmanns-Und (Ampersand) getrennt. Das sieht dann so aus: http://example.org/suche.html?was=einThema&wo=wohnort

Technisch steht dabei das Konzept des Parametrisierens von Programmen (und letztlich Funktionen) dahinter. Das Äquivalent aus der Vor-Web-Zeit (das auch heute immer noch ständig im Einsatz ist) auf einer Kommandozeile (also Bash, SSH und Co) sind Parameter die man dem Programmaufruf mitgeben hat. In den meisten Programmiersprachen werden die Parameter in arg oder argv Array übergeben.

Ich finde es nicht weniger ansprechend als die Verzeichnisschreibweise. Ganz im Gegenteil – ich muss als Benutzer ggf. nicht raten was jetzt Parameter und was noch Verzeichnis ist.

 

Posted in Web |

Radtaschen-Halterung für IKEA Ivar-Regal

Seit einiger Zeit hat mich die Frage umgetrieben wie ich unsere Radtaschen (immerhin 4 Stück für den Gepäckträger zzgl. einer Top-Case) vernünftig verstauen kann. Anforderungen waren für mich recht klar: Nicht irgendwo in einen Schrank, denn mindestens eine brauche ich nahezu täglich (mit dem Rad zur Arbeit). Schnell war auch klar: Hängen wäre eine schicke Lösung, immerhin haben die Taschen schon fertige Anhänge-Haken für an den Gepäckträger.

Die Lösung ergab sich dann recht einfach, als ich wieder einmal die Taschen neben unser Ivar-Regal von IKEA gelegt habe und sie wieder wegnehmen wollte. An einer Querverstrebung hatten sich zwei Haken eingehängt. Bingo! Bleibt nur noch die Frage wie man das sauber löst.

Ich habe mir einfach passende Stahlstäbe besorgt, die in die ohnehin vorhandenen Aufnahmen für die Regelträger (Stahlbolzen mit 5mm Durchmesser) passen. Diese habe ich auf 1x Lochtiefe (25mm)+ lichte Regalweite (43,5cm), also insgesamt 46cm abgelängt. Damit sie nicht versehentlich wieder rausfallen wenn man die Taschen anhängt, musste ich die noch sichern. Kurzerhand habe ich von beiden Seiten Gewinde auf den Stahlstab geschnitten – das ist aufwändiger und schweißtreibender als gedacht. Ein solider Schraubstock und ein guter Gewindeschneider sind Pflicht.

Von beiden Seiten Muttern aufschrauben, Scheiben unterlegen, einsetzen und mit den Muttern gegen das Regal ein wenig verspannen. Fertig. Falls sich die Muttern im Betrieb lösen, kann man eine weitere einsetzen und kontern.

Eine alternative Lösung wäre es gewesen auf den Rundstab einen Ring mit einer Madenschraube zu fixieren. Das ist aber ein wenig aufwändiger was die Materiabeschaffung betrifft.

Natürlich eignet sich diese Konstruktion auch um andere Dinge aufzuhängen.

Zusammenfassung zum Nachbauen:

  • Stahl / Edelstahlstab 5mm in ausreichender Länge je nach Anzahl Hängemöglichkeiten (ca. 50 cm pro Halter, bei schmaleren Regalen natürlich weniger)
  • 2 Scheiben M5 pro Stab
  • 2 Muttern M5 pro Stab
  • Gewindeschneider M5
  • Schraubstock
  • Öl / Kühlmittel zum Gewindeschneiden.

Aufwand ca. 20 bis 30 Minuten, Komplexität gering.