URL normalizálása
Az URL normalizálása az a folyamat, amelynek során az URL egységes formába kerül. A normalizálási folyamat célja, hogy egy URL-t normalizált formává alakítson, hogy meghatározza két szintaktikailag különböző URL egyenértékűségét. [egy]
A keresőmotorok az URL-ek normalizálását használják az ismétlődő oldalak indexelésének csökkentésére és az oldalak fontossági sorrendbe állítására. A keresőrobotok URL-ek normalizálását hajtják végre, hogy elkerüljék az erőforrás újbóli feltérképezését. A böngészők normalizálást hajthatnak végre annak megállapítására, hogy történt-e látogatás, vagy egy oldal gyorsítótárban van-e.
A normalizálásnak többféle típusa is alkalmazható egy URL-re: egyesek megtartják az eredeti címet , mások nem tartják meg a .
Normalizálási folyamat
Normalizálások, amelyek megőrzik az eredeti helyesírást
Az alább felsorolt normalizálási módszereket az RFC 3986 [2] írja le, és egyenértékű URL-eket eredményez.
- Átalakítás kisbetűre. A séma és a gazdagép összetevői nem különböztetik meg a kis- és nagybetűket, és a legtöbb normalizáló az URL-eket kisbetűssé alakítja. Például:
HTTP://www.Example.com/→http://www.example.com/
- Vezérlőszerkezetek átalakítása nagybetűssé Minden százalékos jelölésű karakter (például "%3A") megkülönbözteti a kis- és nagybetűket, és nagybetűssé kell alakítani. Például:
http://www.example.com/a%c2%b1b→http://www.example.com/a%C2%B1b
- Vezérlőstruktúrák átkódolása explicit szimbólumokká. A százalékos konstrukciókat a rendszer barátságos karakterekké fordítja le a kapcsolódás érdekében ( Alfa ( %41- %5Aés %61- %7A), numerikus ( %30- %39), kötőjel ( %2D), pont ( %2E), aláhúzás ( %5F) vagy hullámvonal ( %7E) nem hozhatók létre az URI-szolgáltatók, és ha az ilyen URI-t százalékos konstrukciók találhatók, azokat karakterekké kell alakítani [3] Például:
http://www.example.com/%7Eusername/→http://www.example.com/~username/
- Törölje az alapértelmezett portot. Az alapértelmezett port (a http protokoll 80-as portja) eltávolítható az URL-ből. Például:
http://www.example.com:80/bar.html→http://www.example.com/bar.html
Normalizálás az eredeti helyesírás részleges megőrzésével
A http és https protokollok esetében a következő RFC 3986 normalizálások egyenértékű URL-eket eredményezhetnek, de ezt a szabvány nem garantálja.
- Záró perjel hozzáadása . Könyvtár megjelenítése az URL-ben záró perjellel. Például:
http://www.example.com/alice→http://www.example.com/alice/
Azonban nem lehet tudni, hogy az URL tartalmaz-e könyvtárútvonalat vagy sem.
Az RFC 3986 kimondja, hogy ha az eredeti URL egy normalizált URL-re irányít át, akkor ez az egyenértékűség jele .
- Pontszegmensek eltávolítása. ".." és "." szegmensek eltávolítható az URL-ből, az RFC 3986 -ban (vagy hasonlóban) leírt algoritmus szerint . Például:
http://www.example.com/../a/b/../c/./d.html→http://www.example.com/a/c/d.html
A helyesírást megváltoztató normalizálások
A következő normalizálási módszereket használjuk, amelyek az URL-címek eltérő helyesírását eredményezik, és ugyanahhoz az erőforráshoz vezetnek:
- A fejindex eltávolítása. Például:
http://www.example.com/default.asp→http://www.example.com/
http://www.example.com/a/index.html→http://www.example.com/a/
- Töredékek eltávolítása. URL-részletsoha nem látható a szerveren, és törölhető. Például:
http://www.example.com/bar.html#section1→http://www.example.com/bar.html
Az
AJAX -alkalmazások azonban gyakran használnak változókat az ilyen töredékekben, és ezek törlése egy másik erőforrásra való átirányítást eredményezhet.
- IP-cím cseréje tartománynévvel. Annak ellenőrzése, hogy egy IP-címhez tartozik-e domain név. Például:
http://208.77.188.166/→http://www.example.com/
A fordított csere ritkán biztonságos a virtuális webszerverek használata miatt.
- A protokollazonosítók rövidítése. Különféle alkalmazási rétegbeli protokollok, például a https, lefordíthatók http-re. Például:
https://www.example.com/→http://www.example.com/
- Ismétlődő perjelek eltávolítása Egy görbe két szomszédos perjelét egyé alakíthatja. Például:
http://www.example.com/foo//bar.html→http://www.example.com/foo/bar.html
- A „www” eltávolítása vagy hozzáadása legfelső szintű elemként. Egyes webhelyek két internetes domainnel működnek. Például a http://example.com/és http://www.example.com/egy erőforráshoz vezethet. Sok webhely átirányítja a felhasználót a www -ről egy nem www-címre, vagy fordítva. A normalizációs algoritmusok képesek észlelni ezeket az átirányításokat, és ennek megfelelően lefordítani az URL-t. Például:
http://www.example.com/→http://example.com/
- Lekérdezési paraméterek rendezése. Egyes weboldalak egynél több paramétert használnak az URL-ben. A normalizáló algoritmusok képesek ábécé sorrendbe rendezni a paramétereket (megőrizni értékeiket), és újra előállítani az URL-t. Például:
http://www.example.com/display?lang=en&article=fred→http://www.example.com/display?article=fred&lang=en
Azonban a paraméterek sorrendje az URL-ben jelentős lehet (a szabványok nem határozzák meg), és a webszerver lehetővé teheti a változók többszöri megjelenését.
[négy]
- A nem használt változók eltávolítása a lekérdezésből. Az oldal csak bizonyos paraméterekre számíthat, a fel nem használt paraméterek eltávolíthatók. Például:
http://www.example.com/display?id=123&fakefoo=fakebar→http://www.example.com/display?id=123
Az érték nélküli paraméter nem jelenti azt, hogy a paraméter nincs használatban.
- Távolítsa el az alapértelmezett lekérdezési paramétereket. A lekérdezési karakterlánc alapértelmezett paraméterértékei ugyanazt az eredményt mutathatják akkor is, ha nincsenek megadva. Például:
http://www.example.com/display?id=&sort=ascending→http://www.example.com/display
- "?" eltávolítása üres kérésre. Ha a lekérdezés üres, előfordulhat, hogy a "?" karakterre nincs szükség. Például:
http://www.example.com/display?→http://www.example.com/display
Normalizálás URL-listák alapján
A naplók vagy a szervernaplók korábbi vizsgálataiból nyert URL-listák vizsgálatával bizonyos normalizálási szabályokat is ki lehet fejleszteni bizonyos webhelyekre. Például, ha az URL
http://foo.org/story?id=xyz
többször megjelenik a naplóban együtt
http://foo.org/story_xyz
feltételezhető, hogy ez a két URL ekvivalens, és normalizálható az egyik formába.
Sconfeld és munkatársai 2006-ban [5] bevezették a DustBuster heurisztikus rendszert, amely észleli a DUST-okat (különböző URL-ek hasonló szöveggel), amelyek olyan szabályok, amelyek alkalmazhatók az URL-listákra. Megmutatták, hogy miután megtalálták a megfelelő DUST-szabályokat, és alkalmazták a normalizáló algoritmusokra, képesek voltak megtalálni a redundáns URL-ek 68%-át az URL-listákban.
Lásd még
Jegyzetek
- ↑ RFC3986, 2005 , 6. szakasz, p. 38.
- ↑ RFC3986, 2005 .
- ↑ RFC3986, 2005 , 2.3. szakasz.
- ↑ Ben, 2009 .
- ↑ DUST2006, 2006 , pp. 1015-1016.
Irodalom