Cool URI-ji se ne mijenjaju

Autor: Sir Tim Berners-Lee, izumitelj URI-ja, URL-ova, HTTP-a, HTML-a i World Wide Weba te trenutni šef W3C-a. Članak napisan 1998

Koji se URI smatra "cool"?
Onaj koji se ne mijenja.
Kako se mijenjaju URI-ji?
URI-ji se ne mijenjaju: ljudi ih mijenjaju.

U teoriji, nema razloga da ljudi mijenjaju URI (ili prestanu s pratećim dokumentima), ali u praksi ih ima na milijune.

U teoriji, nominalni vlasnik prostora naziva domene zapravo posjeduje prostor naziva domene, a time i sve URI-je unutar njega. Osim nelikvidnosti, ništa ne sprječava vlasnika imena domene da zadrži naziv. I u teoriji, URI prostor ispod naziva vaše domene u potpunosti je pod vašom kontrolom, tako da ga možete učiniti stabilnim koliko želite. Gotovo jedini dobar razlog za nestanak dokumenta s interneta je taj što je tvrtka koja je bila vlasnik naziva domene prestala poslovati ili si više ne može priuštiti da poslužitelj radi. Zašto onda postoji toliko mnogo karika koje nedostaju u svijetu? Nešto od toga jednostavno je nedostatak promišljanja. Evo nekoliko razloga koje biste mogli čuti:

Upravo smo reorganizirali stranicu kako bismo je poboljšali.

Zar stvarno mislite da stari URI-ji više ne mogu raditi? Ako je tako, onda ste ih jako loše odabrali. Razmislite o tome da nove zadržite za sljedeći redizajn.

Imamo toliko stvari da ne možemo pratiti što je zastarjelo, što je povjerljivo, a što je još uvijek relevantno, pa smo mislili da je najbolje sve to jednostavno isključiti.

Mogu samo suosjećati. W3C je prošao kroz razdoblje u kojem smo morali pažljivo pregledati arhivske materijale radi povjerljivosti prije nego što ih objavimo. Odluku treba promisliti unaprijed - pobrinite se da uz svaki dokument zabilježite prihvatljivu čitanost, datum izrade i, idealno, datum isteka. Spremite ove metapodatke.

Pa, otkrili smo da moramo premjestiti datoteke...

Ovo je jedan od najjadnijih izgovora. Mnogi ljudi ne znaju da web poslužitelji omogućuju kontrolu odnosa između URI-ja objekta i njegove stvarne lokacije u datotečnom sustavu. Zamislite URI prostor kao apstraktni prostor, savršeno organiziran. Zatim napravite preslikavanje bilo koje stvarnosti koju zapravo koristite da to realizirate. Zatim to prijavite web poslužitelju. Možete čak i napisati vlastiti isječak poslužitelja da biste ga ispravili.

John više ne održava ovu datoteku, sada to radi Jane.

Je li Johnovo ime bilo u URI-ju? Ne, je li datoteka samo u njegovom imeniku? Pa dobro.

Prethodno smo za to koristili CGI skriptu, ali sada koristimo binarni program.

Postoji suluda ideja da se stranice stvorene skriptama trebaju nalaziti u "cgibin" ili "cgi" području. Ovo otkriva mehaniku pokretanja vašeg web poslužitelja. Promijenite mehanizam (čak i dok spremate sadržaj) i ups - svi vaši URI-ji se mijenjaju.

Uzmimo za primjer Nacionalnu zakladu za znanost (NSF):

NSF mrežni dokumenti

http://www.nsf.gov/cgi-bin/pubsys/browser/odbrowse.pl

Prva stranica za početak pregledavanja dokumenata očito neće ostati ista za nekoliko godina. cgi-bin, oldbrowse и pl - sve to daje djeliće informacija o tome kako-to-činimo sada. Ako stranicu koristite za traženje dokumenta, prvi rezultat koji dobijete jednako je loš:

Izvješće Radne skupine za kriptologiju i teoriju kodiranja

http://www.nsf.gov/cgi-bin/getpub?nsf9814

za indeksnu stranicu dokumenta, iako sam html dokument izgleda mnogo bolje:

http://www.nsf.gov/pubs/1998/nsf9814/nsf9814.htm

Ovdje će zaglavlje pubs/1998 svakoj budućoj arhivskoj službi dati dobar trag da je stara shema klasifikacije dokumenata iz 1998. na snazi. Iako bi brojevi dokumenata mogli izgledati drugačije u 2098., pretpostavljam da bi ovaj URI i dalje bio valjan i da ne bi smetao NSF-u ili bilo kojoj drugoj organizaciji koja bi održavala arhivu.

Nisam mislio da URL-ovi moraju biti trajni - postojali su URN-ovi.

Ovo je vjerojatno jedna od najgorih nuspojava rasprave o URN-u. Neki ljudi misle da bi zbog istraživanja trajnijeg imenskog prostora mogli biti nemarni prema visećim vezama jer će "URN-ovi sve to popraviti." Ako ste jedan od tih ljudi, dopustite mi da vas razočaram.

Većina URN shema koje sam vidio izgledaju kao identifikator ovlaštenja nakon kojeg slijede ili datum i niz koji odaberete ili samo niz koji odaberete. Ovo je vrlo slično HTTP URI-ju. Drugim riječima, ako mislite da će vaša organizacija biti sposobna stvoriti dugotrajne URN-ove, dokažite to sada koristeći ih za svoje HTTP URI-je. Ne postoji ništa u samom HTTP-u što vaš URI čini nestabilnim. Samo vaša organizacija. Napravite bazu podataka koja preslikava URN dokumenta na trenutni naziv datoteke i dopustite web poslužitelju da je koristi za stvarno dohvaćanje datoteka.

Ako ste došli do ove točke, ako nemate vremena, novca i veza za razvoj nekog softvera, tada možete navesti sljedeći izgovor:

Htjeli smo, ali jednostavno nemamo pravi alat.

Ali možete suosjećati s ovim. Potpuno se slažem. Ono što trebate učiniti je prisiliti web poslužitelj da trenutačno raščlani trajni URI i vrati datoteku gdje god je trenutno pohranjena na vašem trenutnom ludom datotečnom sustavu. Želite pohraniti sve URI-je u datoteku kao provjeru i održavati bazu podataka ažurnom u svakom trenutku. Želite sačuvati odnos između različitih verzija i prijevoda istog dokumenta, te također održavati nezavisan zapis kontrolnog zbroja kako biste osigurali da datoteka nije oštećena slučajnom pogreškom. A web poslužitelji jednostavno ne izlaze iz kutije s ovim značajkama. Kada želite stvoriti novi dokument, vaš urednik traži da navedete URI.

Morate biti u mogućnosti promijeniti vlasništvo, pristup dokumentu, sigurnost na razini arhive itd. u URI prostoru bez mijenjanja URI-ja.

Sve je to loše. Ali ispravit ćemo situaciju. U W3C-u koristimo funkciju Jigedit (poslužitelj za uređivanje Jigsaw) koja prati verzije i eksperimentiramo sa skriptama za generiranje dokumenata. Ako razvijate alate, poslužitelje i klijente, obratite pozornost na ovo pitanje!

Ovaj izgovor se također odnosi na mnoge W3C stranice, uključujući i ovu: dakle, radi kako ja kažem, a ne kako ja radim.

Zašto bi me bilo briga?

Kada promijenite URI na svom poslužitelju, nikada ne možete u potpunosti znati tko će imati veze na stari URI. To mogu biti veze s uobičajenih web stranica. Označite svoju stranicu. URI je možda naškraban na marginama pisma prijatelju.

Kada netko slijedi vezu i ona je pokvarena, obično gubi povjerenje u vlasnika poslužitelja. Također je frustriran, i emocionalno i fizički, jer ne može postići svoj cilj.

Mnogi se ljudi cijelo vrijeme žale na neispravne veze i nadam se da je šteta očita. Nadam se da je i šteta po ugled održavatelja poslužitelja na kojem je dokument nestao također očita.

Što bih trebao napraviti? URI dizajn

Odgovornost je webmastera dodijeliti URI-je koji se mogu koristiti za 2 godine, za 20 godina, za 200 godina. To zahtijeva promišljenost, organiziranost i odlučnost.

URI-ji se mijenjaju ako se bilo koja informacija u njima promijeni. Vrlo je važno kako ih dizajnirate. (Što, dizajn URI-ja? Trebam li dizajnirati URI? Da, trebali biste razmisliti o tome). Dizajn u osnovi znači izostavljanje bilo kakve informacije u URI-ju.

Datum kada je dokument kreiran - datum izdavanja URI-ja - je nešto što se nikada neće promijeniti. Vrlo je koristan za odvajanje upita koji koriste novi sustav od onih koji koriste stari sustav. Ovo je dobro mjesto za početak s URI-jem. Ako je dokument datiran, čak i ako će dokument biti relevantan u budućnosti, onda je to dobar početak.

Jedina iznimka je stranica koja je namjerno "najnovija" verzija, primjerice za cijelu organizaciju ili njezin veliki dio.

http://www.pathfinder.com/money/moneydaily/latest/

Ovo je najnovija kolumna Money Daily u časopisu Money. Glavni razlog zašto nema potrebe za datumom u ovom URI-ju je taj što nema razloga za pohranjivanje URI-ja koji će nadživjeti dnevnik. Koncept Money Dailyja nestat će kada Money nestane. Ako se želite povezati na sadržaj, trebali biste ga zasebno povezati u arhivi:

http://www.pathfinder.com/money/moneydaily/1998/981212.moneyonline.html

(Izgleda dobro. Pretpostavlja se da će "novac" značiti istu stvar tijekom trajanja pathfinder.com. Postoji duplikat "98" i nepotrebni ".html", ali inače izgleda kao jak URI.

Što ostaviti po strani

Svi! Osim datuma stvaranja, stavljanje bilo koje informacije u URI zahtijeva probleme na ovaj ili onaj način.

  • Ime autora. Autorstvo se može promijeniti kako nove verzije postanu dostupne. Ljudi napuštaju organizacije i prosljeđuju stvari drugima.
  • predmet. Jako je teško. Na početku uvijek izgleda dobro, ali se mijenja iznenađujuće brzo. O tome ću više govoriti u nastavku.
  • Status. Direktoriji poput "staro", "skica" i tako dalje, da ne spominjemo "najnovije" i "cool", pojavljuju se u svim datotečnim sustavima. Dokumenti mijenjaju status - inače ne bi imalo smisla stvarati skice. Najnovija verzija dokumenta treba trajni identifikator, bez obzira na njegov status. Držite status izvan imena.
  • Dostup. U W3C-u podijelili smo stranicu u odjeljke za zaposlenike, članove i javnost. Ovo zvuči dobro, ali naravno, dokumenti počinju kao timske ideje osoblja, o njima se raspravlja s članovima, a zatim postaju javno poznati. Stvarno bi bila šteta da se svaki put kada se neki dokument otvori za širu raspravu pokidaju sve stare poveznice na njega! Sada prelazimo na jednostavan datumski kod.
  • Ekstenzija datoteke. Vrlo česta pojava. "cgi", čak će se i ".html" promijeniti u budućnosti. Možda nećete koristiti HTML za ovu stranicu 20 godina, ali današnje veze na nju bi i dalje trebale funkcionirati. Kanonske veze na W3C stranici ne koriste proširenje (kako se to radi).
  • Softverski mehanizmi. U URI-ju potražite "cgi", "exec" i druge izraze koji vrište "pogledajte koji softver koristimo." Želi li netko provesti cijeli život pišući Perl CGI skripte? Ne? Zatim uklonite nastavak .pl. Pročitajte priručnik poslužitelja o tome kako to učiniti.
  • Naziv diska. Dođi! Ali vidio sam ovo.

Dakle, najbolji primjer s naše stranice je jednostavno

http://www.w3.org/1998/12/01/chairs

... izvješće o zapisniku sastanka predsjedatelja W3C-a.

Teme i klasifikacija po temama

O ovoj opasnosti ću detaljnije govoriti, jer je to jedna od onih stvari koje je najteže izbjeći. Obično teme završavaju u URI-jima kada svoje dokumente kategorizirate prema poslu koji obavljaju. No, ovaj će se kvar s vremenom promijeniti. Nazivi područja će se promijeniti. U W3C-u smo htjeli promijeniti MarkUP u Markup, a zatim u HTML kako bi odražavao stvarni sadržaj odjeljka. Osim toga, često postoji ravan imenski prostor. Za 100 godina, jeste li sigurni da nećete htjeti ništa ponovno koristiti? U našem kratkom životu već smo htjeli ponovno upotrijebiti "Povijest" i "Stilske tablice", na primjer.

To je primamljiv način organiziranja web stranice—i doista primamljiv način organiziranja bilo čega, uključujući cijeli Web. Ovo je izvrsno srednjoročno rješenje, ali dugoročno ima ozbiljne nedostatke.

Dio razloga leži u filozofiji značenja. Svaki izraz u jeziku potencijalna je meta za grupiranje i svaka osoba može imati drugačiju ideju o tome što on znači. Budući da su odnosi između entiteta više poput weba nego stabla, čak i oni koji se slažu s webom mogu odabrati drugačiji prikaz stabla. Ovo su moja (često ponavljana) opća opažanja o opasnostima hijerarhijske klasifikacije kao općeg rješenja.

Zapravo, kada koristite naziv teme u URI-ju, obvezujete se na neku vrstu klasifikacije. Možda ćete u budućnosti više voljeti drugu opciju. URI će tada biti osjetljiv na kršenje.

Razlog za korištenje predmetnog područja kao dijela URI-ja je taj što je odgovornost za pododjeljke URI prostora obično delegirana, a zatim vam je potreban naziv organizacijskog tijela - odjela, grupe ili bilo čega drugog - koje je odgovorno za taj podprostor. Ovo je URI koji se veže za organizacijsku strukturu. Obično je sigurno samo ako je daljnji (lijevi) URI zaštićen datumom: 1998/pics vašem poslužitelju može značiti "što smo mislili 1998. sa slikama" umjesto "što smo 1998. učinili s onim što sada zovemo slike."

Ne zaboravite naziv domene

Zapamtite da se ovo ne odnosi samo na stazu u URI-ju, već i na naziv poslužitelja. Ako imate zasebne poslužitelje za različite stvari, zapamtite da će ovu podjelu biti nemoguće promijeniti bez uništavanja mnogo, mnogo poveznica. Neke klasične pogreške tipa "pogledajte softver koji danas koristimo" su imena domena "cgi.pathfinder.com", "secure", "lists.w3.org". Osmišljeni su kako bi olakšali administraciju poslužitelja. Bez obzira na to predstavlja li domena odjel u vašoj tvrtki, status dokumenta, razinu pristupa ili razinu sigurnosti, budite vrlo, vrlo oprezni prije korištenja više od jednog naziva domene za više vrsta dokumenata. Zapamtite da možete sakriti više web poslužitelja unutar jednog vidljivog web poslužitelja pomoću preusmjeravanja i proxyja.

Oh, i razmislite o nazivu svoje domene. Ne želite da vas se naziva soap.com nakon što promijenite liniju proizvoda i prestanete proizvoditi sapun (Ispričavamo se onome tko trenutno posjeduje soap.com).

Zaključak

Očuvanje URI-ja 2, 20, 200 ili čak 2000 godina očito nije tako jednostavno kao što se čini. Međutim, posvuda na Internetu webmasteri donose odluke koje im u budućnosti otežavaju ovaj zadatak. Često je to zato što koriste alate čiji je posao prikazati najbolju stranicu samo u ovom trenutku – a nitko nije procijenio što će biti s linkovima kada se sve promijeni. Međutim, poanta je da se mnoge, mnoge stvari mogu promijeniti, a vaši URI-ji mogu i trebaju ostati isti. To je moguće samo kada razmislite o tome kako ih stvarate.

Vidi također:

Dodaci

Kako ukloniti ekstenzije datoteka...

...iz URI-ja u trenutnom web poslužitelju koji se temelji na datotekama?

Ako koristite Apache, na primjer, možete ga konfigurirati da pregovara o sadržaju. Spremite datotečni nastavak (npr. .png) u datoteku (npr. moj pas.png), ali možete se povezati s web resursom bez njega. Apache zatim provjerava direktorij za sve datoteke s tim nazivom i ekstenzijom te može odabrati najbolju iz skupa (na primjer, GIF i PNG). I nema potrebe stavljati različite vrste datoteka u različite direktorije, zapravo podudaranje sadržaja neće raditi ako to učinite.

  • Postavite svoj poslužitelj za pregovaranje o sadržaju
  • Uvijek povežite na URI bez ekstenzije

Veze s ekstenzijama i dalje će raditi, ali će spriječiti vaš poslužitelj da odabere najbolji format dostupan trenutno iu budućnosti.

(Zapravo, mydog, mydog.png и mydog.gif — važeće web resurse, mydog je resurs univerzalne vrste sadržaja, i mydog.png и mydog.gif — resursi određene vrste sadržaja).

Naravno, ako pišete vlastiti web poslužitelj, dobra je ideja koristiti bazu podataka za vezanje postojanih identifikatora na njihov trenutni oblik, iako se čuvajte neograničenog rasta baze podataka.

Tabla srama - Priča 1: Kanal 7

Tijekom 1999. pratio sam na stranici zatvaranje škola zbog snijega http://www.whdh.com/stormforce/closings.shtml. Nemojte čekati da se informacije pojave na dnu TV ekrana! Povezao sam ga sa svoje početne stranice. Stiže prva velika snježna oluja 2000. i ja provjeravam stranicu. Tamo piše:,

- Od.
Trenutno ništa nije zatvoreno. Molimo vratite u slučaju upozorenja na vremenske prilike.

Ne može biti tako jaka oluja. Smiješno je što nedostaje datum. Ali ako odete na glavnu stranicu stranice, pojavit će se veliki gumb "Zatvorene škole", koji vodi do stranice http://www.whdh.com/stormforce/ s dugim popisom zatvorenih škola.

Možda su promijenili sustav za dobivanje popisa - ali nisu trebali promijeniti URI.

Ploča srama - Priča 2: Microsoft Netmeeting

Uz sve veću ovisnost o internetu, došla je pametna ideja da se poveznice na web stranicu proizvođača mogu ugraditi u aplikacije. Ovo je mnogo korišteno i zlorabljeno, ali ne možete promijeniti URL. Baš neki dan sam pokušao link s klijenta Microsoft Netmeeting 2/something u Help/Microsoft na izborniku Web/Free stuff i primio sam grešku 404 - nije pronađen odgovor s poslužitelja. Možda je već popravljeno...

© 1998 Tim BL

Povijesna bilješka: U kasnom 20. stoljeću, kada je ovo napisano, "cool" je bio epitet odobravanja, posebno među mladima, koji je označavao modnost, kvalitetu ili prikladnost. U žurbi je putanja URI-ja često birana zbog "hladnosti", a ne zbog korisnosti ili trajnosti. Ovaj post je pokušaj preusmjeravanja energije iza potrage za cool.

Izvor: www.habr.com

Dodajte komentar