Utilia

Analýza a rozdělení URL

Vlož URL a zobrazí se protokol, hostitel, port, segmenty cesty, dekódované parametry dotazu a fragment; parametry pak můžeš upravit a URL znovu sestavit.

Jak analyzovat URL

  1. Vlož URL do pole URL k analýze. Zpracuje se během psaní; můžeš také stisknout Enter nebo kliknout na Analyzovat URL.
  2. Přečti si části: Protokol, Název hostitele, Port, Hostitel (s portem), Původ (origin), Uživatelské jméno, Heslo, Cesta a Fragment (#).
  3. Zkontroluj seznam Segmenty cesty a tabulku Parametry dotazu, která ukazuje každý klíč a hodnotu dekódované vedle Původního zápisu.
  4. V části Upravit a znovu sestavit změň klíč nebo hodnotu, klikni na Přidat parametr nebo Odebrat, případně uprav fragment. Znovu sestavené URL se aktualizuje během psaní.
  5. Klikni na Kopírovat a zkopíruj nové URL.

Pokud vložíš adresu bez schématu, například example.com/page, nástroj předpokládá https:// a upozorní na to.

Části URL

Nástroj používá vestavěný parser URL prohlížeče, který se řídí standardem WHATWG URL, takže vidí adresu přesně tak jako prohlížeč. Vezměme https://ann:secret@shop.example.com:8080/en/products?size=M#reviews:

  • Protokol (https:) je schéma, které prohlížeči říká, jak zdroj získat.
  • Uživatelské jméno a Heslo (ann, secret) jsou nepovinné přihlašovací údaje. Heslo je ve výchozím stavu skryté; zaškrtni Zobrazit heslo, pro zobrazení. Prohlížeče dnes takové údaje v odkazech odstraňují nebo odmítají a URL, které je obsahuje, nikdy nesdílej.
  • Název hostitele (shop.example.com) je jméno serveru. Internacionalizované doménové názvy se zobrazují v podobě punycode (xn--…), kterou používá DNS.
  • Port (8080) se zobrazí, když ho URL uvádí. Jinak nástroj uvede výchozí port schématu: 80 pro http a ws, 443 pro https a wss, 21 pro ftp. Port shodný s výchozím, například :443 u https, parser vypustí.
  • Hostitel (s portem) obojí spojuje a Původ (origin) je schéma + hostitel + port, jednotka, kterou prohlížeče používají pro bezpečnostní pravidla jako CORS.
  • Cesta (/en/products) se rozdělí na Segmenty cesty, každý procentově dekódovaný, takže caf%C3%A9 se čte café.
  • Fragment (#) (reviews) ukazuje na část stránky. Na server se nikdy neposílá.

Parametry dotazu

Řetězec dotazu se dělí podle & a každá dvojice podle prvního =. Klíče a hodnoty se dekódují tak, jak je kódují formuláře HTML: sekvence %XX se změní na znaky a + na mezeru. Opakované klíče, časté u filtrů a polí s vícenásobným výběrem (size=M&size=L), se zachovají všechny a popíšou se postupně „(opakováno 1/2)“, „(opakováno 2/2)“. Klíč bez = se zobrazí s prázdnou hodnotou. Pokud sekvenci nelze dekódovat, zobrazí se místo ní původní text.

Úpravy a opětovné sestavení

Editor začíná se stávajícími parametry. Prázdné řádky se ignorují. Nový řetězec dotazu se kóduje jako odeslání formuláře, tak jak to dělá URLSearchParams: mezery se změní na + a vyhrazené znaky jako &, = nebo # se kódují procenty, takže je hodnota může bezpečně obsahovat. Hodí se to k odstranění sledovacích parametrů, změně čísla stránky nebo sestavování testovacích odkazů. Když je heslo skryté, maskuje se i v poli Znovu sestavené URL, ale Kopírovat zkopíruje skutečné URL.

Časté dotazy

Proč nástroj říká, že moje URL není platné?

Nejčastějšími příčinami jsou mezery v názvu hostitele, port nad 65535, chybějící hostitel za https:// nebo znaky, které v názvu hostitele nejsou povoleny. Text bez tečky, například jediné slovo, se také nepovažuje za název hostitele.

Navštěvuje se URL nebo se někam posílá?

Ne. Adresa se jen zpracuje ve tvém prohlížeči. Na web se neodesílá žádný požadavek.

Proč se %20 v znovu sestaveném URL změnilo na +?

Obojí znamená v řetězci dotazu mezeru. Sestavení používá kódování formulářů, které vytvářejí prohlížeče a většina serverových frameworků a které zapisuje mezery jako +.

Zvládá i URL mailto:, tel: nebo data:?

Ano. Zpracují se také, ale nemají hostitele ani port: jejich obsah se objeví v poli Cesta.

V čem se liší Hostitel a Název hostitele?

Název hostitele je jen jméno. Hostitel (s portem) přidá port, když je uveden výslovně, jako v example.com:8080.