Normalizare URL
Normalizarea URL -ului este procesul prin care URL-ul este adus într-o formă uniformă. Scopul procesului de normalizare este de a transforma un URL într-o formă normalizată pentru a determina echivalența a două URL-uri diferite sintactic. [unu]
Motoarele de căutare utilizează normalizarea adreselor URL pentru a reduce indexarea paginilor duplicate și pentru a clasifica paginile în ordinea importanței. Roboții de căutare efectuează normalizarea adreselor URL pentru a evita accesarea din nou cu crawlere a resursei. Browserele pot efectua normalizarea pentru a determina dacă a avut loc o vizită sau dacă o pagină este stocată în cache.
Există mai multe tipuri de normalizare care pot fi aplicate unei adrese URL: unele păstrează adresa inițială , altele nu păstrează .
Procesul de normalizare
Normalizări care păstrează ortografia originală
Metodele de normalizare enumerate mai jos sunt descrise în RFC 3986 [2] și au ca rezultat URL-uri echivalente.
- Convertiți în minuscule. Schema și componentele gazdă nu țin cont de majuscule, iar majoritatea normalizatorilor convertesc adresele URL în litere mici. De exemplu:
HTTP://www.Example.com/→http://www.example.com/
- Conversia structurilor de control în majuscule Toate caracterele cu un indicator procentual (cum ar fi „%3A”) sunt sensibile la majuscule și trebuie convertite în majuscule. De exemplu:
http://www.example.com/a%c2%b1b→http://www.example.com/a%C2%B1b
- Recodificarea structurilor de control în simboluri explicite. Construcțiile procentuale sunt traduse în caractere prietenoase pentru conectivitate ( Alfa ( %41- %5Ași %61- %7A), Numeric ( %30- %39), cratima ( %2D), punct ( %2E), liniuță de subliniere ( %5F) sau tilde ( %7E) nu ar trebui să fie generate de furnizorii de URI și atunci când astfel de URI-uri cu sunt găsite constructe procentuale, acestea trebuie convertite în caractere. [3] De exemplu:
http://www.example.com/%7Eusername/→http://www.example.com/~username/
- Ștergeți portul implicit. Portul implicit (portul 80 pentru protocolul http) poate fi eliminat din URL. De exemplu:
http://www.example.com:80/bar.html→http://www.example.com/bar.html
Normalizare cu păstrarea parțială a ortografiei originale
Pentru protocoalele http și https, următoarele normalizări RFC 3986 pot avea ca rezultat URL-uri echivalente, dar acest lucru nu este garantat de standard.
- Adăugarea unui slash final . Afișarea unui director cu o bară oblică finală inclusă în adresa URL. De exemplu:
http://www.example.com/alice→http://www.example.com/alice/
Cu toate acestea, nu există nicio modalitate de a ști dacă URL-ul include sau nu o cale de director.
RFC 3986 afirmă că, dacă URL-ul original redirecționează către o adresă URL normalizată, atunci acesta este un semn de echivalență .
- Eliminarea segmentelor de puncte. Segmentele „..” și „.” poate fi eliminat din URL, conform algoritmului descris în RFC 3986 (sau similar). De exemplu:
http://www.example.com/../a/b/../c/./d.html→http://www.example.com/a/c/d.html
Normalizări care schimbă ortografia
Sunt utilizate următoarele metode de normalizare, care duc la ortografie diferită a adreselor URL care duc la aceeași resursă:
- Îndepărtarea indexului capului. De exemplu:
http://www.example.com/default.asp→http://www.example.com/
http://www.example.com/a/index.html→http://www.example.com/a/
- Îndepărtarea fragmentelor. Fragment de adresă URLnu se vede niciodată pe server și poate fi șters. De exemplu:
http://www.example.com/bar.html#section1→http://www.example.com/bar.html
Cu toate acestea, aplicațiile
AJAX folosesc adesea variabile în astfel de fragmente, iar ștergerea acestora poate duce la o redirecționare către o altă resursă.
- Înlocuirea unei adrese IP cu un nume de domeniu. Verificarea dacă o adresă IP are un nume de domeniu. De exemplu:
http://208.77.188.166/→http://www.example.com/
Înlocuirea inversă este rareori sigură datorită utilizării serverelor web virtuale.
- Abrevierea identificatorilor de protocol. Diverse protocoale de nivel de aplicație, cum ar fi https, pot fi traduse în http. De exemplu:
https://www.example.com/→http://www.example.com/
- Eliminarea barelor oblice duplicate Două bare oblice adiacente dintr-o cale pot fi convertite într-una singură. De exemplu:
http://www.example.com/foo//bar.html→http://www.example.com/foo/bar.html
- Eliminarea sau adăugarea „www” ca element de nivel superior. Unele site-uri operează cu două domenii de internet. De exemplu http://example.com/, și http://www.example.com/poate duce la o singură resursă. Multe site-uri web redirecționează utilizatorul de la www la o adresă non-www sau invers. Algoritmii de normalizare pot detecta aceste redirecționări și pot traduce URL-ul în consecință. De exemplu:
http://www.example.com/→http://example.com/
- Sortați parametrii de interogare. Unele pagini web folosesc mai mult de un parametru în adresa URL. Algoritmii de normalizare pot sorta parametrii alfabetic (pastrandu-le valorile) si pot regenera URL-ul. De exemplu:
http://www.example.com/display?lang=en&article=fred→http://www.example.com/display?article=fred&lang=en
Cu toate acestea, ordinea parametrilor într-o adresă URL poate fi semnificativă (nu este definită de standarde), iar serverul web poate permite variabilelor să apară de mai multe ori.
[patru]
- Eliminarea variabilelor neutilizate dintr-o interogare. Pagina se poate aștepta doar la anumiți parametri, iar parametrii neutilizați pot fi eliminați. De exemplu:
http://www.example.com/display?id=123&fakefoo=fakebar→http://www.example.com/display?id=123
Un parametru fără valoare nu înseamnă că parametrul nu este utilizat.
- Eliminați parametrii impliciti de interogare. Valorile implicite ale parametrilor din șirul de interogare pot afișa același rezultat chiar dacă nu sunt specificate. De exemplu:
http://www.example.com/display?id=&sort=ascending→http://www.example.com/display
- Se elimină „?” la o cerere goală. Când interogarea este goală, este posibil ca caracterul „?” să nu fie necesar. De exemplu:
http://www.example.com/display?→http://www.example.com/display
Normalizare bazată pe liste de adrese URL
Unele reguli de normalizare pot fi dezvoltate pentru anumite site-uri web prin examinarea listelor de adrese URL obținute din scanările anterioare ale jurnalului sau ale jurnalelor de server. De exemplu, dacă adresa URL
http://foo.org/story?id=xyz
apare în jurnalul de jurnal de mai multe ori împreună cu
http://foo.org/story_xyz
se poate presupune că aceste două adrese URL sunt echivalente și pot fi normalizate într-una dintre forme.
Sconfeld et al., în 2006 [5] au introdus sistemul euristic DustBuster, care detectează DUST-uri (URL-uri diferite cu text similar), care sunt reguli care pot fi aplicate listelor de URL-uri. Ei au arătat că, odată ce regulile DUST potrivite au fost găsite și aplicate algoritmilor de normalizare, au fost capabili să găsească până la 68% dintre adresele URL redundante în listele de adrese URL.
Vezi și
Note
- ↑ RFC3986, 2005 , Secțiunea 6, p. 38.
- ↑ RFC3986, 2005 .
- ↑ RFC3986, 2005 , Secțiunea 2.3.
- ↑ Ben, 2009 .
- ↑ DUST2006, 2006 , pp. 1015-1016.
Literatură