: Oduvek sam želeo ovo da razumem, ali njegov značaj je bio toliko mali da je uvek postojao razlog da to ne uradim :)
da li ste se zapitali: URL - šta je to?
Uvek nailazim na ovo, ali i dalje nisam hteo da shvatim koja je razlika između pojmova URI, URL, URN, i onda odjednom posta (nažalost, već je potonuo u zaborav), odlučio sam - pročitaću ga sebi, a reći ću i drugima, iako, kao što je gore spomenuto, to neće ništa promijeniti, ali ponekad volim da igram riječi, pa pročitajte prevoditelj s objašnjenjima:
Jeste li ikada primijetili adresnu traku u vašem pretraživaču? Šta je ovo? URI, URL ili URN? Mnogi od nas ne razlikuju URI, URL, URN, a neki od nas nisu ni čuli pojmove URI i URN, svi samo koriste termin URL. Pokušajmo zajedno to shvatiti.
Objašnjenje skraćenica
URI - Jedinstveni identifikator resursa (jedinstveni identifikator resurs)
URL - Jedinstveni lokator resursa (jedinstveni lokator resurs)
URN - Uniformni naziv resursa (jedinstveni ime resurs)
Pažnja, ovdje se istina krije u malim stvarima, ali zasad ništa nije jasno, nekakav nered. Idemo dalje.
Definicija
URI: Označava ime i adresu resursa na mreži. Obično se dijeli na URL i URN, tako da su URL i URN dio URI-ja.
URL: Adresa nekog izvora na webu. URL identificira lokaciju resursa i način na koji mu se pristupa.
URN: Naziv nekog izvora na webu. Značenje URN-a je da identifikuje samo naziv određene stavke, koja se može naći na mnogim određenim lokacijama.
Ne postoji ništa bolje od konkretnog primjera.
URI = http: //site/2009/09/uri-url-urn.html
URL = http: // stranica
URN = /2009/09/uri-url-urn.html
Hajde da sumiramo
URI je koncept apstraktnog identifikatora, dok su URL i URN konkretne implementacije adrese i imena.
Nadam se da svi razumeju sve. Budite pismeni!
Percepcija svakog od nas je individualna, stoga - raspravljajte i čitajte rasprave u komentarima na članak, ima mnogo zanimljivih stvari.
Sporovi o ovom pitanju - kako ispravno napisati URL, sa ili bez kose crte? - bili i biće. Argumentacija je raznolika i često kontradiktorna. Postoje dvije vrste povrata za netačan unos URL-a. Od strane pretraživača, to su navodno kazne za duple stranice. Sa stanovišta performansi, ovo je navodno dodatno preusmjeravanje na ispravnu stranicu zapisa, koju automatski generiše server.
Međutim, analizirajući tehničke specifikacije internetskih standarda, posebno dokumenta „RFC 1738 – Uniform Resource Locators (URL)“, moramo priznati da su obje verzije zapisa adrese web resursa formalno ispravne, te da je sankcija za korištenje jedna ili druga verzija nije ništa drugo do quirk pretraživač ili pseudo-SEO-schnick priče.
Sa stanovišta sažetosti, opcija bez kose crte na kraju se čini ispravnijom, bez obzira da li je vaš link "fajl" na serveru ili "folder", čiji će indirektni dokaz biti prikazan u nastavku. Ali u dokumentu nema niti jedne tvrdnje da je druga opcija netačna ili da se odnosi na potpuno drugačiji izvor.
Neću vam preuzimati višestrani prevod pomenutog RFC-a, jer je, prvo, svrha pitanja bila kosa crta na kraju URL-a, a drugo, publikacija je namenjena običnim korisnicima motora, uključujući i one koji ne zanimaju svi detalji, čekaju kratka objašnjenja i dokaze o meritumu. Shodno tome, navešću izvode iz ovog dokumenta kao dokaz i objašnjenje. Koga to ne zanima, može odmah pogledati izlaz na kraju članka.
Opća sintaksa URL-a
Prvo na šta treba skrenuti pažnju je izvod iz paragrafa 2. Opšta URL sintaksa. U svakom slučaju citirat ću dio teksta na originalnom jeziku, nakon čega slijedi prijevod na ruski.
URL-ovi se koriste za `lociranje" resursa, pružanjem apstraktne identifikacije lokacije resursa. URL-ovi se koriste za "lociranje" resursa, pružanjem apstraktne identifikacije lokacije resursa.
Odnosno, sam URL je čista apstrakcija. To što nam može izgledati spolja slično imenu datoteke ili foldera, uopće ne znači fizičku referencu na samo takav i takav fajl, a ne na neki drugi u prostoru datoteka servera. Ovo će biti navedeno direktno u dokumentu ispod.
Napomena Općenito, što se tiče http linkova, u principu je netačno reći to na primjer
- http://domain.com/path/subpath/filename.txt- navodno pokazuje na fajl
- http://domain.com/path/subpath/- navodno pokazuje na fasciklu
- http://domain.com/path - navodno pogrešno ukazuje na folder
Upravo smo to govorili, jer je zgodno povezati linkove sa fajlovima na sajtu. U stvarnosti, sve ove veze upućuju na neke resurse, a da ni na koji način ne označavaju vrstu resursa. Šta se krije iza svakog resursa, odnosno kakav pravi fajl ili folder i kakav će sadržaj biti serviran preko takvog linka, već je određeno konfiguracijom servera.
Važno je shvatiti da u linkovima ne postoji nešto kao što su "fajl", "fascikla", "podmapa", "tekst", "slika", "html", "skripta", "tabel stilova" i tako dalje. Nijedna kosa crta na kraju ili njeno odsustvo ne znači apsolutno ništa sve dok se link ne transformiše unutar servera, a on sam odlučuje kuda link zapravo vodi i koji tip sadržaja se krije iza njega. Ovo je jedino rješenje vezano za internu arhitekturu servera.
Hijerarhijske sheme
Slijedi izvod iz paragrafa 2.3 Hijerarhijske šeme i relativne veze (hijerarhijske šeme i relativne veze).
Neke URL šeme (kao što su ftp, http i šeme datoteka) sadrže imena koja se mogu smatrati hijerarhijskim; komponente hijerarhije su odvojene sa "/". Neke URL šeme (kao što su ftp, http i fajl) sadrže imena koja se mogu smatrati hijerarhijskim; članovi hijerarhije su odvojeni simbolom "/".
Odnosno, tvrdi se da u određenim adresnim šemama sadržaj lokatora resursa nije zabranjeno smatrati hijerarhijskim, a još uvijek nije propisano da je hijerarhija ekvivalentna bilo kojem obliku, recimo, fajlu.
Opća sintaksa mrežne šeme
U nastavku slijedi izvod iz stava 3.1. Sintaksa zajedničke internetske šeme
//
Napomena Ovo je, inače, odgovor na pitanje koje proizilazi iz pitanja koje razmatramo. Često se raspravljaju o ovom pitanju: kako ispravno dati link na domenu (host) - bez kose crte na kraju ili sa kosom crtom?
Kako to uraditi kako treba http://domain.com/ ili http://domain.com?
I tako i tako tačno. Jednostavno prva kosa crta iza imena hosta treba da odvoji ime putanje od imena hosta. U istom pasusu dokumenta to stoji ovako:
Url-puta Ostatak lokatora sastoji se od podataka specifičnih za šemu, i poznat je kao "url-path". On daje detalje o tome kako se može pristupiti navedenom resursu. Imajte na umu da "/" između hosta (ili porta) i url-staze NIJE dio url-staze. Ostatak lokatora sastoji se od podataka specifičnih za šemu i poznat je kao "url-path". Pruža detalje o tome kako se može pristupiti navedenom resursu. Imajte na umu da znak "/" između hosta (ili porta) i URL putanje nije dio url-staze.
Nismo bili obavezni ni jednom rečju da stavimo ovaj završni znak ili da ga ne stavimo kada je url-put prazan niz (što bi mnogi od nas rekli kada se URL odnosi na koren sajta). Niko nema pravo da vam izrekne kazne "za dva snimanja glavne stranice", jer prema specifikaciji u oba slučaja URL vezujete na isti izvor.
Nastavimo još jedan izvod iz istog paragrafa.
Sintaksa url-puta zavisi od šeme koja se koristi, kao i od načina na koji se tumači. Sintaksa za url-path zavisi od šeme koja se koristi, kao i od načina na koji se tumači.
Ovo je još jedna potvrda da svaka šema lokatora ima svoj koncept "hijerarhije" i način svoje interpretacije.
Hijerarhija
Za neke sisteme datoteka, "/" koji se koristi za označavanje hijerarhijske strukture URL-a odgovara graničniku koji se koristi za izgradnju hijerarhije naziva datoteke, i stoga će ime datoteke izgledati slično URL putanji. Ovo NE znači da je URL Unix ime datoteke. Znak "/" se koristi da naznači hijerarhijsku strukturu URL-a prema graničniku koji se koristi u izgradnji hijerarhije naziva datoteka, i stoga, na nekim sistemima datoteka, ime datoteke izgleda kao URL putanja. Ali to ne znači da je URL ime datoteke slično Unixu.Iako se ovaj paragraf odnosi na ftp šemu, on se ipak odnosi na druge šeme (http, gopher, prospero i tako dalje). Samo u šemi datoteka, simbol kose crte logički označava isto što i u nazivima datoteka, na primjer datoteka: //server_or_device/path/subpath/filename.txt.
Http
HTTP URL ima oblik: http: //
Napomena Takođe navodi da možete odrediti vezu bez završne kose crte. U ovom slučaju, govorili smo o situaciji kada je putanja veze prazna - ona pokazuje na korijen hosta.
Formalna notacija
Na kraju, izvod iz paragrafa 5. BNF za specifične URL šeme.
Ovdje su opcijski dijelovi prikazani u uglastim zagradama. Zvjezdica ispred zagrade označava 0 ili više ponavljanja istog fragmenta kao što je naznačeno u zagradama. Vertikalna traka treba shvatiti kao ILI.
Hostport = host [":" port] ... ... httpurl = "http: //" hostport ["/" hpath ["?" traži]] hpath= hsegment * ["/" hsegment] hsegment = * [uchar | ";" | ":" | "@" | "&" | "="] pretraga = * [uchar | ";" | ":" | "@" | "&" | "="] ... ... lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" hialfa = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" alfa = lowalpha | hialfa cifra = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" safe = "$" | "-" | "_" | "." | "+" extra = "!" | "*" | "" "|" ("|") "|", "hex = cifra |" A "|" B "|" C "|" D "|" E "|" F "|" a "|" b " | "c" | "d" | "e" | "f" escape = "%" hex hex nerezervirano = alfa | cifra | sigurno | extra uchar = nerezervirano | escape
Obratite pažnju na to kako se element hpath - putanja veze - formira tačno prema pravilima. Elementi segmenta putanje - segmenti - odvojeni su kosom crtom. Kao da nagovještava važnu ideju da kosa crta dijeli putanju na hijerarhijske dijelove i da je uvijek unutra. U principu, moguće je da posljednji element hsegmenta može biti prazan niz (ovo proizilazi iz njegove definicije), a zatim se na kraju URL-a nehotice pojavljuje završna kosa crta.
Zaključak
Podjela putanje na segmente pomoću znaka kose crte podrazumijeva prisustvo nepraznih imena ovih segmenata. Shodno tome, veza sa kosom crtom na kraju deluje nelogično (iako nije zabranjeno) u smislu da se čini da ukazuje na određeni poslednji segment putanje, ali, štaviše, ni na koji način ne imenuje ovaj segment. Isto tako nelogičan (ali i nije zabranjen) link http://domain.com/level1////levelX, koji ne imenuje međusegmente putanje, ako se putanja posmatra ne kao skup parametara, već kao hijerarhijska struktura.
U kolokvijalnom jeziku, semantički sadržaj dvije veze može se objasniti na sljedeći način:
- - adrese na zadanu početnu tačku drugog nivoa hijerarhije
- - adresira nedefinisanu tačku u okviru drugog nivoa hijerarhije, odnosno kao da je serveru dodeljen zadatak da „mi se obraćamo drugom nivou hijerarhije, a vi sami određujete koju tačku na ovom nivou smatrate zadanom početni".
Iz svega navedenog proizilazi, što je slično linkovima
- http://domain.com
- http://domain.com/
uputiti posjetitelja na korijen stranice i na primjer linkove
- http://domain.com/level1/level2
- http://domain.com/level1/level2/
uputiti posjetitelja na drugi nivo hijerarhije resursa. A činjenica da određeni server može protumačiti kosu crtu na kraju na svoj način i početi interno preusmjeravati na zadanu početnu tačku nivoa - recimo na datoteku index.html, to je već poseban slučaj određene konfiguracije . Baš kao u implementaciji čovjeku čitljivog URL sistema, svi zapisi za preusmjeravanje pomoću modula servera mod_rewrite definiraju vlastiti (inherentan specifičnom mehanizmu) koncept hijerarhijske URL strukture, u kojoj se elementi putanje mogu izjednačiti da traže parametre i imaju nema veze sa strukturom fajlova sajta (klasičan primer: http://domain.com/ru/path, ru element je parametar trenutnog jezika, a ne fascikla na sajtu).
Naglasio bih da se radi o internom znanju servera, zbog njegove konfiguracije, kao i motora instaliranog na stranici. Eksterni servis, recimo isti pretraživač, ne može da nagađa i nema pojma da li se i kako veze sa i bez kose crte razlikuju, osim ako server sajta nije posebno konfigurisan da prikazuje drugačiji sadržaj na takvim vezama.
Za tvoju informaciju
Na nivou implementacije, pitanje kosih crta na krajevima nije od suštinskog značaja, za šta postoje brojne potvrde među eminentnim portalima. Na nekima se sve veze završavaju kosom crtom, na drugima - bez kose crte. Glavna stvar je da se sadržaj na linkovima ne pokaže drugačijim, a za Yandex morate registrirati i 301. preusmjeravanje sa onih veza koje ne koristite (recimo onih koje završavaju kosom crtom), na one koje koristiš. Činjenica je da, prema nepotvrđenim izjavama servisa za podršku Yandexa, ova tražilica navodno može pogriješiti i ne može "zalijepiti" (zapamtite po svom znanju) ili, s određenim zakašnjenjem, zalijepiti adrese kosice bez kose crte u jednu.
Evo primjera implementacije takvog preusmjeravanja koristeći root .htaccess fajl:
# ako se ulazni url završava kosom crtom (em, s), # postavite 301. preusmjeravanje na stranicu bez kose crte RewriteCond% (REQUEST_URI) ^ /. + / $ RewriteRule ^ (. *?) / + $ http: / /% (HTTP_HOST) / 1 $
Guglu (opet, prema informacijama koje nisu potvrđene eksperimentom), ova preusmjeravanja nisu bitna, jer izgleda da može ispravno i bez preusmjeravanja zalijepiti takve adrese.
Zapamti Ima dosta ljudi koji sebe smatraju SEO stručnjacima. Ali nisu svi. Štaviše, tema SEO se često spekuliše bez odgovarajućeg znanja i osnova, samo u očekivanju da ste neznalice u ovoj oblasti, pa je lako poverovati u bilo kakve „rezance“. Kada vam kažu da su neke vaše stranice "ispale iz indeksa", koristite vrlo dobru preporuku od Yandexa: O greškama indeksiranja, ako ih ima, možete saznati u servisu Yandex.Webmaster. U ovom servisu uvijek možete vidjeti listu vaših stranica u pretrazi i listu stranica koje su iz nekog razloga isključene iz pretrage. Google ima sličnu uslugu. Vjerujte ovom saznanju, a ne mišljenju pseudo-specijalista, koji su negdje čuli nešto skroz i na osnovu toga preporučite da radite ono što oni misle da je jedino ispravno.
Evo Veoma zanimljiv post, Little Known SEO Facts, objavljen u aprilu 2017. Predstavlja veliku studiju sa mnogo snimaka ekrana, koja je započela sa ciljem da se testira validnost nekoliko popularnih sudova u oblasti promocije na pretraživačima i da se na jasnim primerima prenesu rezultati prosečnom vlasniku sajta. Ista studija istovremeno mladom čitatelju demonstrira niz očiglednih, svakodnevnih, pa čak i neupadljivih, ali ipak iznenađujućih karakteristika organskih rezultata pretraživanja u Google i Yandex pretragama.
Evo Iako sljedeći link nema gotovo nikakve veze sa SEO-om, on će i dalje biti privlačan SEO majstorima koji trenutno traže dodatne narudžbe. Pod linkom je objavljena komercijalna ponuda, momci su pronašli zanimljiv način korištenja stranice. Privatnom preduzeću se nudi izrada online bilborda na osnovu neke posebne teme, pod čijom kontrolom sajt, odnosno njegov prvi ekran, izgleda kao baner koji se proteže na bilbordima spoljnog oglašavanja. Na pametnom telefonu sam okrenuo ekran, rastezanje je postalo okomito i zauzelo celu površinu ekrana, okrenulo se unazad, postalo horizontalno i ponovo na ceo ekran. A ispod prvog ekrana nalazi se tekstualni dodatak, gdje korisnici obično ne skroluju, ali pretraživač dobro vidi ovaj tekst. Dakle, najspretniji pin-upi regionalnog biznisa sami kupuju ove jeftine online bilborde kao profitabilnu alternativu kontekstualnom oglašavanju i Yandex i Google Display mreži. A kako bi se što više družili u indeksu lokalne pretrage, spremni su odjednom ubaciti novac na gomilu seo-tekstova kako bi promovirali svoj štit, koji miriše na ne-kiselinsku količinu. Sudeći po glasinama, porudžbine od 30 kila rubalja padaju, a pošto ih momci angažuju kod SEO partnera, ovdje možete izgraditi partnerske mostove i ostvariti dobru zaradu.
Možete se izgubiti ne samo u šumi, već i na mreži. A to može biti zbog pogrešnog puta ili adrese koja vodi do resursa. Ne znate šta je URL? Zatim, pre nego što krenemo na dalje putovanje kroz virtuelni prostor, pozabavimo se sistemom adresa e-pošte.
Šta je URL
URL je općeprihvaćeni standard za snimanje adrese i označavanje lokacije resursa na Internetu. Sa engleskog njegovo ime ( Uniform Resource Locator) se prevodi kao uniformni lokator resursa. Možete pronaći ranije dekodiranje kratice URL - Univerzalni lokator resursa (univerzalni lokator resursa). Ali oba značenja dopunjuju koncept URL-a, a ne protivreče jedno drugom.
Osnovni format URL strukture je sljedeći:
://:@:/?#
- najčešće se misli na protokol.
login - korisničko ime koje se koristi za autorizaciju na resursu.
lozinka - korisnička lozinka za autorizaciju.
host - naziv domene hosta.
port - host port koji se koristi tokom veze.
URL je putanja na kojoj se traženi resurs nalazi na serveru.
parametri i sidro- vrijednost varijabli i identifikator na određenom resursu.
Prosljeđivanje vrijednosti varijabli u nizu upita moguće je samo korištenjem GET metode.
Razmotrimo format URL-a stranice traženog resursa s praktičnim primjerima. Na strani klijenta, URL se prikazuje u adresnoj traci pretraživača:
Najčešće opcije su:
- http: // ru.wikipedia.org/wiki/Home_page- http ( protokol za prijenos hiperteksta);
- https://ru.wikipedia.org/wiki/Home_page- https se koristi kao način prijenosa. Je siguran oblik http protokola koji koristi enkripciju (SSL ili TLS);
- fttp: //wikipedia.org/wiki/file.txt- protokol za prijenos datoteka fttp;
- http://mail.ru/script.php?num=10&type=new&v=text- prosljeđivanje vrijednosti varijabli u nizu upita pomoću GET metode.
Svaki URL format je prvenstveno niz znakova. Može uključivati:
2; Pisma.
2; Arapski brojevi (0-9).
2; Rezervirani znakovi ("+", "=", "!" i drugi).
2; Posebni likovi - hajde da se zadržimo na njima detaljnije.
Korištenje posebnih znakova u URL-ovima
Naravno, takvi previše "posebni" znakovi se ne koriste u URL-u. Ali postoji nekoliko:
- ? - služi za odvajanje bloka sa prenesenim parametrima u liniji upita;
- & - odvaja prosleđene parametre jedan od drugog;
- = - odvaja varijablu u parametru od njene vrijednosti;
- : - služi za odvajanje protokola od ostatka URL-a;
- # - znak se koristi u lokalnom dijelu adrese. Omogućava vam da se uputite na određeni dio tražene stranice;
- @ - je naznačeno u registracijskim podacima korisnika i prilikom prijenosa podataka putem mailto protokola.
Ali ovo je sve samo teorija. Stoga, prije nego što naučimo ostalo, pogledajmo mali praktični primjer.
Ilustrativan primjer
Radi jasnoće, uzmimo ovako jednostavan obrazac za registraciju:
Evo njegovog koda: