Und eine Suchfunktion gibt es schließlich auch. Und was eine statische Route ist @TS erklärt sich eigentlich von selbst. Dynamisch hingegen sind Parameter die zu einer statischen Route hinzukommen.
Parameter, das sind Komponenten die über die Schnittstelle CGI/1.1 vom Webserver adressiebar gemacht wurden; sie sind in einem abstrakten Datentyp mit dem Namen Serverumgebung für den nachgelagerten Prozess zugänglich. Des Weiteren definiert CGI/1.1 STDIN und STDOUT als Common Gateway.
Parameter kann es unendlich viele geben, z.b. QUERY_STRING's die an einen statischen URL angehängt werden können. Es ist technisch nicht möglich, unendlich viele Routen die sich daraus ergeben, in einer Tabelle im Hauptspeicher vorzuhalten. Schon von daher ergibt sich objektiv eine Notwendigkeit der Trennung, die Anzahl statischer Routen ist endlich.
Praktisch sollte zu einem unerwarteten Parameter like /index.html?edit=123&admin=hugo
auch eine Fehlermeldung generiert werden die sich auf den statischen Anteil /index.html
bezieht anstatt sowas mit einem generellen Status 404 Not Found zu beantworten.
Frameworks wie z.B. .net routen über eine Mustererkennung was zum Ziel hat, aus einer unendlichen Anzahl möglicher Routen eine endliche Anzahl zu machen die sich im Code wiederfindet. Eine saubere Trennung ist das jedoch nicht.
Und schließlich Content-Negotiation: /index.html
liefert verschiedene Inhalte. Also ein URL, verschiedene Inhalte. Das kann man über die Klassenbindung regeln dass der URL bleibt aber wenn die Klassenbindung im URL kodiert ist, hast Du eben verschiedene URLs.
Das sind sozusagen Überlegungen erster Ordnung, d.h. beim Code sind wir da noch lange nicht.
MfG