MikroBI Robot Logo

MikroBI | DevKit

route

URL elemző

Egy URL felbontása séma, host, útvonal, lekérdezési paraméterek és töredék (fragment) részekre — teljesen a böngésződben.

Kapcsolódó eszközök

Az eszközről

Egy URL egyetlen karakterláncnak tűnik, valójában viszont egy kicsi, szigorúan strukturált dokumentum, több jól elkülönülő részből: egy sémából (`https:`), opcionális felhasználói adatokból (`user:pass@`), egy hostból és opcionális portból (`example.com:8443`), egy útvonalból (`/a/b`), egy lekérdezési karakterláncból (`?key=value`), és egy fragmentből (`#section`). Mindegyik résznek megvan a saját szabálya és saját jelentése — a lekérdezési karakterláncot a szerver olvassa ki, hogy eldöntse, mit adjon vissza, a fragment soha nem is jut el a szerverig, a host és a port együtt pedig meghatározza, pontosan hova irányítódik a kérés. Ha egy URL hosszú, mélyen egymásba ágyazott, vagy tele van kódolt karakterekkel, bármelyik rész szemmel történő kikeresése gyorsan hibalehetőséggé válik.

Ez az eszköz a beillesztett URL-t a böngésződ saját, natív `URL` és `URLSearchParams` osztályain futtatja át — ugyanazon a parseren, amit a böngésződ belsőleg a navigációhoz használ —, és minden egyes komponenst egy-egy címkézett sorként jelenít meg: protokoll, felhasználónév és jelszó, ha vannak, host, port, eredet (origin), útvonal, nyers lekérdezési karakterlánc, és fragment. Mivel a böngésző beépített URL-specifikáció implementációjára támaszkodik ahelyett, hogy saját kézzel írt reguláris kifejezést használna, helyesen kezeli azokat a szélsőséges eseteket is, amelyek egy naiv parsert gyakran megzavarnak, például a felhasználói adatokat, az IPv6 host literálokat, vagy a szokatlan kódolású lekérdezési karakterláncokat.

A lekérdezési paraméterek saját, dedikált szekciót kapnak, egyedi kulcs-érték sorokra bontva egyetlen átláthatatlan karakterlánc helyett. Az ismétlődő kulcsok (`?tag=a&tag=b`) külön sorokként jelennek meg ahelyett, hogy csendben egybeolvadnának — ez fontos, amikor egy URL egy listát vagy tömböt ugyanazzal a paraméternévvel többször is kódol, mert az összevonás csendben adatot veszítene.

Ez a valós fejlesztői és rendszergazdai munkában folyamatosan előkerül: kideríteni, pontosan hova irányít egy átirányítási lánc egy felhasználót, kiolvasni egy marketing linkhez csatolt UTM vagy nyomkövetési paramétereket, megvizsgálni egy OAuth callback URL belsejében lévő `redirect_uri` és `state` értékeket, vagy dupla ellenőrizni, valójában melyik portra mutat egy belső szolgáltatás URL-je, mielőtt egy kapcsolódási hiba után máshol kezdenél nyomozni.

Minden helyben történik — a beillesztett URL, beleértve az esetlegesen benne lévő hitelesítő adatokat vagy tokeneket is, soha nem hagyja el a böngésződet, és az eszköz az oldal betöltése után internetkapcsolat nélkül is tovább működik. Ha megvan az eredmény, használd a "Küldés" gombot, hogy a teljes URL-t, a puszta hostot, vagy egy lekérdezési értéket közvetlenül átadj az eszköztár egy másik eszközének — például a host elküldése egy DNS-lekérdezésnek, vagy egy lekérdezési érték elküldése az URL kódoló/dekódolónak, hogy dekódolva lásd.

Gyakran ismételt kérdések

Miért mondja az eszköz, hogy érvénytelen az URL-em, pedig szerintem jónak tűnik? expand_more

A leggyakoribb ok a hiányzó séma — egy URL-nek valamivel, például `https://` vagy `ftp://` kell kezdődnie. Az `example.com/path` önmagában nem teljes URL; a `https://example.com/path` viszont igen.

Miért jelenik meg néhány lekérdezési paraméter több mint egyszer? expand_more

Ha az URL ugyanazt a paraméternevet ismétli (pl. `?tag=a&tag=b`), minden előfordulás külön érték, nem pedig összevonandó duplikátum — a szerverek és keretrendszerek gyakran így reprezentálnak egy listát, ezért az eszköz minden előfordulást láthatóan megőriz.

Dekódolja ez az eszköz a százalék-kódolt karaktereket a lekérdezési karakterláncban? expand_more

A lekérdezési paraméterek értékeit a böngésző `URLSearchParams` osztálya automatikusan dekódolja. A nyers lekérdezési karakterlánc sor változatlan (még kódolt) formában jelenik meg; ha egy adott kódolt értéket önmagában szeretnél dekódolni, használd az URL kódoló / dekódoló eszközt.

Biztonságos beilleszteni egy jelszót vagy API tokent tartalmazó URL-t? expand_more

Igen. Az elemzés teljes egészében a böngésződben történik, natív URL API-kat használva — semmi nem kerül elküldésre egy szerverre, és az eszköz az oldal betöltése után offline is tovább működik.

Mi a különbség az eredet (origin) és a teljes URL között? expand_more

Az eredet csak a protokollt, a hostot és a portot tartalmazza (pl. `https://example.com:8443`) — ez határozza meg a böngészőben az azonos eredetű (same-origin) biztonsági szabályokat. A teljes URL emellett tartalmazza az útvonalat, a lekérdezési karakterláncot és a fragmentet is.