Normalizace URL
Normalizace adresy URL je proces, při kterém je adresa URL převedena do jednotné podoby. Účelem normalizačního procesu je transformovat URL do normalizované podoby, aby bylo možné určit ekvivalenci dvou syntakticky odlišných URL. [jeden]
Vyhledávače používají normalizaci URL ke snížení indexování duplicitních stránek a k seřazení stránek podle důležitosti. Vyhledávací roboti provádějí normalizaci adres URL, aby se vyhnuli opětovnému procházení zdroje. Prohlížeče mohou provádět normalizaci, aby určily, zda došlo k návštěvě nebo zda je stránka uložena v mezipaměti.
Existuje několik typů normalizace, které lze použít na URL: některé si ponechávají původní adresu , jiné nezachovávají .
Proces normalizace
Normalizace, které zachovávají původní pravopis
Níže uvedené normalizační metody jsou popsány v RFC 3986 [2] a jejich výsledkem jsou ekvivalentní adresy URL.
- Převést na malá písmena. Komponenty schématu a hostitele nerozlišují velká a malá písmena a většina normalizátorů převádí adresy URL na malá písmena. Například:
HTTP://www.Example.com/→http://www.example.com/
- Převod řídicích struktur na velká písmena Všechny znaky s označením procenta (například "%3A") rozlišují malá a velká písmena a musí být převedeny na velká písmena. Například:
http://www.example.com/a%c2%b1b→http://www.example.com/a%C2%B1b
- Překódování řídicích struktur do explicitních symbolů. Procentuální konstrukce jsou přeloženy do přátelských znaků pro konektivitu ( Alfa ( %41- %5Aa %61- %7A), Číselné ( %30- %39), pomlčka ( %2D), tečka ( %2E), podtržítko ( %5F) nebo vlnovka ( %7E) by poskytovatelé URI neměli generovat a pokud by takové URI s jsou nalezeny procentuální konstrukty , musí být převedeny na znaky. [3] Například:
http://www.example.com/%7Eusername/→http://www.example.com/~username/
- Odstraňte výchozí port. Výchozí port (port 80 pro protokol http) lze z adresy URL odstranit. Například:
http://www.example.com:80/bar.html→http://www.example.com/bar.html
Normalizace s částečným zachováním původního pravopisu
Pro protokoly http a https mohou následující normalizace RFC 3986 vést k ekvivalentním adresám URL, ale to není zaručeno standardem.
- Přidání koncového lomítka . Zobrazení adresáře s koncovým lomítkem obsaženým v adrese URL. Například:
http://www.example.com/alice→http://www.example.com/alice/
Neexistuje však způsob, jak zjistit, zda adresa URL obsahuje cestu k adresáři nebo ne.
RFC 3986 uvádí, že pokud původní adresa URL přesměrovává na normalizovanou adresu URL, jedná se o znak ekvivalence .
- Odstranění bodových segmentů. Segmenty ".." a "." mohou být odstraněny z adresy URL podle algoritmu popsaného v RFC 3986 (nebo podobném). Například:
http://www.example.com/../a/b/../c/./d.html→http://www.example.com/a/c/d.html
Normalizace, které mění pravopis
Používají se následující metody normalizace, které vedou k různému pravopisu adres URL vedoucích ke stejnému zdroji:
- Odstranění hlavového indexu. Například:
http://www.example.com/default.asp→http://www.example.com/
http://www.example.com/a/index.html→http://www.example.com/a/
- Odstranění fragmentů. Fragment adresy URLse na serveru nikdy nezobrazí a lze je smazat. Například:
http://www.example.com/bar.html#section1→http://www.example.com/bar.html
Aplikace AJAX však často používají proměnné v takových fragmentech a jejich odstranění může vést k přesměrování na jiný zdroj.
- Nahrazení IP adresy názvem domény. Kontrola, zda adresa IP má název domény. Například:
http://208.77.188.166/→http://www.example.com/
Zpětná výměna je zřídka bezpečná kvůli použití virtuálních webových serverů.
- Zkratka identifikátorů protokolu. Různé protokoly aplikační vrstvy, jako je https, lze přeložit na http. Například:
https://www.example.com/→http://www.example.com/
- Odstranění duplicitních lomítek Dvě sousední lomítka v cestě lze převést na jedno. Například:
http://www.example.com/foo//bar.html→http://www.example.com/foo/bar.html
- Odebrání nebo přidání „www“ jako prvku nejvyšší úrovně. Některé stránky fungují se dvěma internetovými doménami. Například http://example.com/a http://www.example.com/může vést k jednomu zdroji. Mnoho webových stránek přesměrovává uživatele z www na jinou než www adresu nebo naopak. Normalizační algoritmy mohou tato přesměrování detekovat a podle toho přeložit adresu URL. Například:
http://www.example.com/→http://example.com/
- Seřadit parametry dotazu. Některé webové stránky používají v URL více než jeden parametr. Normalizační algoritmy mohou řadit parametry abecedně (zachovat jejich hodnoty) a regenerovat URL. Například:
http://www.example.com/display?lang=en&article=fred→http://www.example.com/display?article=fred&lang=en
Pořadí parametrů v URL však může být významné (nedefinováno standardy) a webový server může umožnit, aby se proměnné objevily vícekrát.
[čtyři]
- Odstranění nepoužívaných proměnných v dotazu. Stránka může očekávat pouze určité parametry a nepoužívané parametry lze odstranit. Například:
http://www.example.com/display?id=123&fakefoo=fakebar→http://www.example.com/display?id=123
Parametr bez hodnoty neznamená, že parametr není použit.
- Odebrat výchozí parametry dotazu. Výchozí hodnoty parametrů v řetězci dotazu mohou ukazovat stejný výsledek, i když nejsou zadány. Například:
http://www.example.com/display?id=&sort=ascending→http://www.example.com/display
- Odebírání "?" na prázdnou žádost. Když je dotaz prázdný, znak "?" nemusí být potřeba. Například:
http://www.example.com/display?→http://www.example.com/display
Normalizace na základě seznamů URL
Některá pravidla normalizace lze vyvinout pro konkrétní webové stránky prozkoumáním seznamů adres URL získaných z předchozích skenování protokolu nebo protokolů serveru. Například pokud URL
http://foo.org/story?id=xyz
se v log logu objeví několikrát spolu s
http://foo.org/story_xyz
lze předpokládat, že tyto dvě URL jsou ekvivalentní a lze je normalizovat do jedné z forem.
Sconfeld a kol . Ukázali, že jakmile byla nalezena správná pravidla DUST a aplikována na normalizační algoritmy, byli schopni najít až 68 % nadbytečných URL v seznamech URL.
Viz také
Poznámky
- ↑ RFC3986, 2005 , oddíl 6, str. 38.
- ↑ RFC3986, 2005 .
- ↑ RFC3986, 2005 , oddíl 2.3.
- ↑ Ben, 2009 .
- ↑ DUST2006, 2006 , s. 1015-1016.
Literatura