Cool URI se ne mijenja

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

Koji se URI smatra "kul"?
Onaj koji se ne menja.
Kako se mijenjaju URI?
URI se ne mijenjaju: ljudi ih mijenjaju.

U teoriji, nema razloga da ljudi mijenjaju URI-je (ili prestanu da prate dokumente), ali u praksi ih ima na milione.

U teoriji, nominalni vlasnik prostora imena domene zapravo posjeduje prostor imena domene i stoga sve URI-je unutar njega. Osim insolventnosti, ništa ne sprječava vlasnika naziva domene da zadrži ime. I u teoriji, URI prostor ispod vašeg imena domene je u potpunosti pod vašom kontrolom, tako da ga možete učiniti stabilnim koliko god želite. Uglavnom jedini dobar razlog da dokument nestane s interneta je taj što je kompanija koja je posjedovala naziv domene prestala poslovati ili više ne može priuštiti da server radi. Zašto onda postoji toliko karika koje nedostaju u svijetu? Nešto od ovoga je jednostavno nedostatak predumišljaja. Evo nekoliko razloga koje biste mogli čuti:

Upravo smo reorganizirali stranicu kako bismo je učinili boljom.

Da li stvarno mislite da stari URI više ne mogu raditi? Ako jeste, onda ste ih jako loše odabrali. Razmislite o zadržavanju novih za sljedeći redizajn.

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

Mogu samo da saosećam. W3C je prošao kroz period 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 kreiranja i, u idealnom slučaju, datum isteka. Sačuvajte ove metapodatke.

Pa, otkrili smo da moramo premjestiti fajlove...

Ovo je jedan od najpatetičnijih izgovora. Mnogi ljudi ne znaju da vam web serveri omogućavaju kontrolu odnosa između URI-ja objekta i njegove stvarne lokacije u sistemu datoteka. Zamislite URI prostor kao apstraktni prostor, savršeno organiziran. Zatim napravite mapu na bilo koju stvarnost koju zapravo koristite da biste je shvatili. Zatim prijavite ovo web serveru. Možete čak i napisati svoj vlastiti isječak servera da biste ga ispravili.

John više ne održava ovaj fajl, Jane ga sada održava.

Je li Johnovo ime bilo u URI-ju? Ne, da li je fajl samo u njegovom imeniku? Pa, ok.

Ranije smo za ovo koristili CGI skriptu, ali sada koristimo binarni program.

Postoji luda ideja da stranice kreirane skriptama treba da budu smještene u "cgibin" ili "cgi" području. Ovo otkriva mehaniku načina na koji pokrećete svoj web server. Mijenjate mehanizam (čak i dok spremate sadržaj), i ups - svi vaši URI-ji se mijenjaju.

Uzmimo za primjer Nacionalnu naučnu fondaciju (NSF):

NSF Online dokumenti

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

Prva stranica na kojoj će početi pregledavanje dokumenata očigledno neće ostati ista za nekoliko godina. cgi-bin, oldbrowse и pl - sve ovo daje informacije o tome kako-mi-radimo-sada. Ako koristite stranicu za traženje dokumenta, prvi rezultat koji dobijete jednako je loš:

Izvještaj Radne grupe za kriptologiju i teoriju kodiranja

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

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

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

Ovdje će zaglavlje pubs/1998 dati bilo kojoj budućoj arhivskoj službi dobar trag da je na snazi ​​stara šema klasifikacije dokumenata iz 1998. godine. Iako brojevi dokumenata mogu izgledati drugačije u 2098. godini, pretpostavljam da bi ovaj URI i dalje bio važeći i da ne bi ometao NSF ili bilo koju drugu organizaciju koja bi održavala arhivu.

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

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

Većina URN šema koje sam vidio izgleda kao identifikator ovlaštenja nakon kojeg slijede 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 dugovječne 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. Kreirajte bazu podataka koja mapira URN dokumenta na ime trenutnog fajla i pustite da je veb server koristi da zaista preuzme datoteke.

Ako ste došli do ove tačke, ako nemate vremena, novca i veze da razvijete neki softver, onda možete navesti sljedeće opravdanje:

Htjeli smo, ali jednostavno nemamo pravi alat.

Ali možete saosećati sa ovim. u potpunosti se slazem. Ono što treba da uradite je da naterate veb server da trenutno raščlani trajni URI i vrati datoteku gde god da je trenutno pohranjena na vašem trenutnom ludom sistemu datoteka. Želite pohraniti sve URI-je u datoteku kao provjeru i održavati bazu podataka ažurnom u svakom trenutku. Želite da sačuvate odnos između različitih verzija i prevoda istog dokumenta, kao i da održavate nezavisan zapis kontrolne sume kako biste osigurali da datoteka nije oštećena slučajnom greškom. A web serveri jednostavno ne izlaze iz kutije sa ovim funkcijama. Kada želite da kreirate novi dokument, vaš urednik traži od vas da navedete URI.

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

Sve je loše. Ali mi ćemo ispraviti situaciju. U W3C-u koristimo Jigedit (server za uređivanje Jigsaw) koji prati verzije i eksperimentiramo sa skriptama za generiranje dokumenata. Ako razvijate alate, servere i klijente, obratite pažnju na ovaj problem!

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

Zašto bi me bilo briga?

Kada promijenite URI na svom serveru, nikada ne možete u potpunosti reći ko će imati veze sa starim URI-jem. To mogu biti linkovi sa redovnih web stranica. Označite svoju stranicu. URI je možda bio upisan na marginama pisma prijatelju.

Kada neko prati vezu i ona je pokvarena, obično gubi poverenje u vlasnika servera. Također je frustriran, i emocionalno i fizički, jer ne može postići svoj cilj.

Mnogo ljudi se stalno žali na pokvarene linkove i nadam se da je šteta očigledna. Nadam se da je očigledna i šteta po reputaciju održavaoca servera sa kojeg je dokument nestao.

Pa šta da radim? URI dizajn

Odgovornost webmastera je da dodijeli URI-je koji se mogu koristiti za 2 godine, za 20 godina, za 200 godina. Za to je potrebna promišljenost, organizacija i odlučnost.

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

Datum kreiranja dokumenta - datum izdavanja URI-ja - je nešto što se nikada neće promijeniti. Veoma je korisno za odvajanje upita koji koriste novi sistem od onih koji koriste stari sistem. Ovo je dobro mjesto za početak sa URI-jem. Ako je dokument datiran, čak i ako će dokument biti relevantan u budućnosti, onda je ovo dobar početak.

Jedini izuzetak je stranica koja je namjerno "najnovija" verzija, na primjer za cijelu organizaciju ili njen veći dio.

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

Ovo je najnovija kolumna Money Daily u magazinu Money. Glavni razlog zašto nema potrebe za datumom u ovom URI-ju je taj što nema razloga da se pohrani URI koji će nadživjeti dnevnik. Koncept Money Daily će nestati kada novac nestane. Ako želite da se povežete na sadržaj, potrebno je da se povežete na njega zasebno u arhivi:

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

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

Šta ostaviti po strani

Sve! Osim datuma kreiranja, stavljanje bilo koje informacije u URI na ovaj ili onaj način traži probleme.

  • Ime autora. Autorstvo se može promijeniti kako nove verzije postanu dostupne. Ljudi napuštaju organizacije i prenose stvari drugima.
  • Predmet. Veoma je teško. U početku uvijek izgleda dobro, ali se iznenađujuće brzo mijenja. O tome ću više govoriti u nastavku.
  • Status. Direktoriji poput "stari", "nacrt" i tako dalje, da ne spominjemo "najnovije" i "kul", pojavljuju se u svim sistemima datoteka. Dokumenti mijenjaju status - inače ne bi bilo smisla kreirati nacrte. Najnovija verzija dokumenta treba trajni identifikator, bez obzira na njegov status. Zadržite status izvan imena.
  • Pristup. U W3C-u smo podijelili stranicu na sekcije za zaposlene, članove i javnost. Ovo zvuči dobro, ali naravno, dokumenti počinju kao timske ideje od osoblja, o njima se raspravlja sa članovima, a zatim postaju javno poznati. Zaista bi bila šteta da svaki put kada se dokument otvori za širu raspravu, svi stari linkovi na njega budu pokvareni! Sada prelazimo na jednostavan kod datuma.
  • Ekstenzija datoteke. Vrlo česta pojava. "cgi", čak i ".html" će se promeniti u budućnosti. Možda nećete koristiti HTML za ovu stranicu za 20 godina, ali današnje veze do nje bi i dalje trebale raditi. Kanonske veze na W3C stranici ne koriste ekstenziju (kako se to radi).
  • Softverski mehanizmi. U URI-ju potražite "cgi", "exec" i druge termine koji vrište "pogledajte koji softver koristimo". Da li neko želi da provede ceo život pišući Perl CGI skripte? Ne? Zatim uklonite ekstenziju .pl. Pročitajte priručnik servera o tome kako to učiniti.
  • Ime diska. Hajde! Ali video sam ovo.

Dakle, najbolji primjer sa naše stranice je jednostavno

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

... izvještaj o zapisniku sa sastanka predsjednika W3C.

Teme i klasifikacija po temama

Ja ću detaljnije o ovoj opasnosti, jer je to jedna od onih stvari koje je najteže izbjeći. Tipično, teme završavaju u URI-ovima kada kategorizirate svoje dokumente prema poslu koji obavljaju. Ali ovaj slom će se vremenom promijeniti. Nazivi područja će se promijeniti. U W3C-u smo željeli promijeniti MarkUP u Markup, a zatim u HTML da odražava stvarni sadržaj odjeljka. Osim toga, često postoji ravni imenski prostor. Za 100 godina, jeste li sigurni da nećete htjeti ništa ponovo koristiti? U našem kratkom životu već smo željeli ponovo koristiti, na primjer, "History" i "Style Sheets".

To je primamljiv način organiziranja web stranice—i zaista primamljiv način organiziranja bilo čega, uključujući cijeli Web. Ovo je odlično srednjoročno rješenje, ali ima ozbiljne nedostatke na duži rok.

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

U stvari, kada koristite naziv teme u URI-ju, obavezujete se na neku vrstu klasifikacije. Možda ćete u budućnosti preferirati drugu opciju. URI će tada biti podložan kršenju.

Razlog za korištenje predmetne oblasti kao dijela URI-ja je taj što se obično delegira odgovornost za pododjeljke URI prostora, a zatim vam je potrebno ime organizacionog tijela – odjela, grupe ili bilo čega – koje je odgovorno za taj podprostor. Ovo je URI koji se vezuje za organizacionu strukturu. Obično je bezbedno samo ako je dalji (levi) URI zaštićen datumom: 1998/pics može značiti vašem serveru "ono što smo 1998. mislili sa slikama", a ne "šta smo 1998. uradili sa onim što sada zovemo slike".

Ne zaboravite naziv domene

Zapamtite da se ovo odnosi ne samo na putanju u URI-ju, već i na ime servera. Ako imate zasebne servere za različite stvari, zapamtite da će ovu podjelu biti nemoguće promijeniti bez uništavanja mnogo, mnogo veza. Neke klasične greške "pogledajte softver koji danas koristimo" su imena domena "cgi.pathfinder.com", "secure", "lists.w3.org". Dizajnirani su da olakšaju administraciju servera. Bez obzira na to da li domena predstavlja odjel u vašoj kompaniji, status dokumenta, nivo pristupa ili sigurnosni nivo, budite vrlo, vrlo oprezni prije nego što koristite više od jednog imena domena za više vrsta dokumenata. Zapamtite da možete sakriti više web servera unutar jednog vidljivog web servera koristeći preusmjeravanje i proxy.

Oh, i razmislite o imenu vašeg domena. Ne želite da vas nazivaju soap.com nakon što promijenite liniju proizvoda i prestanete proizvoditi sapun (izvinite onome tko je trenutno vlasnik soap.com).

zaključak

Očuvanje URI-ja za 2, 20, 200 ili čak 2000 godina očigledno nije tako lako kao što se čini. Međutim, na cijelom Internetu webmasteri donose odluke koje sebi otežavaju ovaj zadatak u budućnosti. Često je to zato što koriste alate čiji je posao da predstave najbolju stranicu samo u ovom trenutku – a niko nije procijenio šta će se dogoditi sa linkovima kada se sve promijeni. Međutim, poenta 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 kreirate.

Vidi i: \ t

Dodaci

Kako ukloniti ekstenzije fajlova...

...sa URI-ja na trenutnom web serveru baziranom na fajlovima?

Ako koristite Apache, na primjer, možete ga konfigurirati da pregovara o sadržaju. Sačuvajte ekstenziju datoteke (npr. .png) u datoteku (npr. mydog.png), ali možete povezati na web resurs bez njega. Apache zatim provjerava direktorij za sve datoteke s tim imenom i bilo kojom ekstenzijom i može odabrati najbolju iz skupa (na primjer, GIF i PNG). I nema potrebe da stavljate različite tipove datoteka u različite direktorije, u stvari podudaranje sadržaja neće raditi ako to učinite.

  • Postavite svoj server za pregovaranje o sadržaju
  • Uvijek povežite na URI-je bez ekstenzije

Veze sa ekstenzijama će i dalje raditi, ali će spriječiti vaš server da odabere najbolji format koji je trenutno dostupan iu budućnosti.

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

Naravno, ako pišete svoj vlastiti web server, dobra je ideja koristiti bazu podataka za povezivanje trajnih identifikatora za njihov trenutni oblik, iako se čuvajte neograničenog rasta baze podataka.

Tabla srama - Priča 1: Kanal 7

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

- Kao.
Trenutno ništa nije zatvoreno. Molimo da se vratite u slučaju vremenskih upozorenja.

Ne može biti tako jaka oluja. Smiješno je što nedostaje datum. Ali ako odete na glavnu stranicu stranice, pojavit će se veliko dugme "Zatvorene škole", koje vodi na stranicu http://www.whdh.com/stormforce/ sa dugačkom listom zatvorenih škola.

Možda su promenili sistem za dobijanje liste - ali nisu morali da menjaju URI.

Tabla srama - priča 2: Microsoft Netmeeting

Uz rastuću ovisnost o internetu, došla je pametna ideja da se linkovi na web stranicu proizvođača mogu ugraditi u aplikacije. Ovo je dosta korišteno i zloupotrebljeno, ali ne možete promijeniti URL. Pre neki dan sam pokušao da povežem vezu sa klijenta Microsoft Netmeeting 2/nešto u meniju Help/Microsoft na Webu/Besplatne stvari i dobio sam grešku 404 - odgovor sa servera nije pronađen. Možda je već popravljeno...

© 1998 Tim BL

Istorijska napomena: U kasnom 20. vijeku, kada je ovo napisano, "kul" je bio epitet odobravanja, posebno među mladima, koji je ukazivao na modnost, kvalitet ili prikladnost. U žurbi, URI putanja se često birala zbog "hladnosti", a ne zbog korisnosti ili trajnosti. Ovaj post je pokušaj da se preusmjeri energija iza potrage za cool.

izvor: www.habr.com

Dodajte komentar