Odpověď na názor

Odpovídáte na názor ke článku Routování? Ano, ale jinak.

  • 28. 4. 2023 12:47

    Ondřej Novák

    Jen jsem si to přečetl, abych se podíval, jak se to dělá jinde. Já mám v C++ napsaný server, kde zaregistruju cestu-prefix a handler. Když se objeví v URL cesta, která prefixu handleru, zavolá se handler, ten dostane zbytek cesty. Pokud ji nechce (prozkoumá request a zjistí, že ho nechce), pak to ukončí a server najde nějaký kratší prefix, který na cestu sedí, pokud k němu má handler. A pokud nic nenajde, vrátí 404. Pokud najde prefix, ale nesedí metoda, tak postupuje stejně a pokud neuspěje, vrátí 405 a v Allow seznam metod, které cestou minul.

    Celé je to docela rychlé, protože se tam používá hash tabulka prefixů. Ta má lookup O(1) - proto mne zarazilo, že v jiných systémech záleží na počtu cest.

    Routování lze zapojit i kaskádně, tedy samotný handler může nechat request dál routovat podle jiné tabulky, ale málokdy to je potřeba.

    Kdybych měl fungovat jako třeba PHP, kdy každý script jede od nuly, tak si snad nechám někde vygenerovat statickou tabulku rout, která se prostě jen načte a použije. Ale jeden z důvodů (řekl bych ten nejzásadnější), proč nepoužívám PHP je právě tahle vlastnost.