Skvelé URI sa nemenia

Autor: Sir Tim Berners-Lee, vynálezca URI, URL, HTTP, HTML a World Wide Web a súčasný šéf W3C. Článok napísaný v roku 1998

Ktoré URI sa považuje za „cool“?
Takú, ktorá sa nemení.
Ako sa menia URI?
URI sa nemenia: ľudia ich menia.

Teoreticky nie je dôvod, aby ľudia menili URI (alebo prestali podporovať dokumenty), ale v praxi sú ich milióny.

Teoreticky nominálny vlastník priestoru názvov domény v skutočnosti vlastní priestor názvov domény a teda všetky identifikátory URI v ňom. Okrem platobnej neschopnosti nič nebráni vlastníkovi doménového mena, aby si názov ponechal. A teoreticky je priestor URI pod vašou doménou úplne pod vašou kontrolou, takže ho môžete nastaviť tak stabilne, ako chcete. V podstate jediným dobrým dôvodom na to, aby dokument zmizol z internetu, je to, že spoločnosť, ktorá vlastnila názov domény, zanikla alebo si už nemôže dovoliť udržiavať server v prevádzke. Prečo je potom na svete toľko chýbajúcich článkov? Niečo z toho je jednoducho nedostatok predvídavosti. Tu je niekoľko dôvodov, ktoré môžete počuť:

Stránku sme len reorganizovali, aby bola lepšia.

Naozaj si myslíte, že staré URI už nemôžu fungovať? Ak áno, tak ste si ich vybrali veľmi zle. Zvážte ponechanie nových na ďalší redizajn.

Máme toľko vecí, že nemôžeme sledovať, čo je zastarané, čo je dôverné a čo je stále aktuálne, takže sme považovali za najlepšie to všetko vypnúť.

Môžem len sympatizovať. W3C prešlo obdobím, keď sme museli starostlivo preosiať archívne materiály, aby sme ich zverejnili. Rozhodnutie si treba vopred premyslieť – dbajte na to, aby ste pri každom dokumente zaznamenali prijateľnú čítanosť, dátum vytvorenia a v ideálnom prípade aj dátum expirácie. Uložte tieto metadáta.

Zistili sme, že musíme presunúť súbory...

Toto je jedna z najžalostnejších výhovoriek. Mnoho ľudí nevie, že webové servery vám umožňujú kontrolovať vzťah medzi URI objektu a jeho skutočným umiestnením v súborovom systéme. Predstavte si priestor URI ako abstraktný priestor, dokonale organizovaný. Potom urobte mapovanie do akejkoľvek reality, ktorú skutočne používate na jej realizáciu. Potom to nahláste webovému serveru. Môžete dokonca napísať svoj vlastný úryvok servera, aby ste to mali správne.

John už tento súbor neudržiava, Jane už áno.

Bolo Johnovo meno v URI? Nie, bol súbor len v jeho adresári? No dobre.

Predtým sme na to používali CGI skript, ale teraz používame binárny program.

Existuje bláznivá myšlienka, že stránky vytvorené skriptmi by sa mali nachádzať v oblasti „cgibin“ alebo „cgi“. To odhaľuje mechanizmus, akým prevádzkujete webový server. Zmeníte mechanizmus (dokonca aj pri ukladaní obsahu) a hups - všetky vaše URI sa zmenia.

Vezmite si napríklad Národnú vedeckú nadáciu (NSF):

Online dokumenty NSF

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

Prvá stránka, na ktorej sa začnú prezerať dokumenty, zjavne nezostane rovnaká o niekoľko rokov. cgi-bin, oldbrowse и pl - to všetko poskytuje informácie o tom, ako to teraz robíme. Ak použijete stránku na vyhľadávanie dokumentu, prvý výsledok, ktorý dostanete, je rovnako zlý:

Správa pracovnej skupiny pre kryptológiu a teóriu kódovania

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

pre indexovú stránku dokumentu, hoci samotný html dokument vyzerá oveľa lepšie:

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

Tu hlavička pubs/1998 poskytne každej budúcej archívnej službe dobrú stopu, že stará schéma klasifikácie dokumentov z roku 1998 je účinná. Hoci čísla dokumentov môžu v roku 2098 vyzerať inak, predstavoval by som si, že toto URI bude stále platné a nebude zasahovať do NSF ani inej organizácie, ktorá by archív spravovala.

Nemyslel som si, že adresy URL musia byť trvalé – boli tam URN.

Toto je pravdepodobne jeden z najhorších vedľajších účinkov diskusie o URN. Niektorí ľudia si myslia, že kvôli výskumu trvalejšieho menného priestoru by mohli byť nedbalí na visiace odkazy, pretože „URN to všetko vyriešia“. Ak ste jedným z týchto ľudí, dovoľte mi sklamať vás.

Väčšina schém URN, ktoré som videl, vyzerá ako identifikátor autority, za ktorým nasleduje buď dátum a reťazec, ktorý vyberiete, alebo len reťazec, ktorý vyberiete. Toto je veľmi podobné HTTP URI. Inými slovami, ak si myslíte, že vaša organizácia bude schopná vytvárať trvalé URN, dokážte to teraz tým, že ich použijete pre svoje HTTP URI. V samotnom HTTP nie je nič, čo by robilo váš URI nestabilným. Iba vaša organizácia. Vytvorte databázu, ktorá mapuje URN dokumentu na aktuálny názov súboru, a nechajte webový server, aby ho použil na skutočné načítanie súborov.

Ak ste dosiahli tento bod, ak nemáte čas, peniaze a kontakty na vývoj nejakého softvéru, môžete uviesť nasledujúcu výhovorku:

Chceli sme, ale jednoducho nemáme vhodné nástroje.

Ale s týmto sa dá sympatizovať. Úplne súhlasím. Čo musíte urobiť, je prinútiť webový server, aby okamžite analyzoval trvalé URI a vrátil súbor kdekoľvek je momentálne uložený vo vašom aktuálnom bláznivom súborovom systéme. Chcete uložiť všetky URI do súboru ako kontrolu a udržiavať databázu vždy aktuálnu. Chcete zachovať vzťah medzi rôznymi verziami a prekladmi toho istého dokumentu a tiež udržiavať nezávislý záznam kontrolného súčtu, aby ste sa uistili, že súbor nie je poškodený náhodnou chybou. A webové servery s týmito funkciami jednoducho nevychádzajú z krabice. Keď chcete vytvoriť nový dokument, váš editor vás požiada o zadanie URI.

Musíte mať možnosť zmeniť vlastníctvo, prístup k dokumentom, zabezpečenie na úrovni archívu atď. v priestore URI bez zmeny URI.

Všetko je príliš zlé. Situáciu však napravíme. Vo W3C používame funkciu Jigedit (server na úpravu Jigsaw), ktorá sleduje verzie, a experimentujeme so skriptami na generovanie dokumentov. Ak vyvíjate nástroje, servery a klientov, venujte pozornosť tomuto problému!

Táto výhovorka platí aj pre mnohé stránky W3C vrátane tejto: robte, čo hovorím, nie ako robím.

Prečo by som sa mal starať?

Keď zmeníte URI na svojom serveri, nikdy nemôžete úplne určiť, kto bude mať odkazy na staré URI. Môžu to byť odkazy z bežných webových stránok. Uložte si stránku medzi záložky. URI mohol byť načmáraný na okrajoch listu priateľovi.

Keď niekto sleduje odkaz a je prerušený, zvyčajne stratí dôveru vo vlastníka servera. Je tiež frustrovaný, emocionálne aj fyzicky, z toho, že nie je schopný dosiahnuť svoj cieľ.

Mnoho ľudí sa neustále sťažuje na nefunkčné odkazy a dúfam, že poškodenie je zrejmé. Dúfam, že je zrejmé aj poškodenie reputácie správcu servera, kde dokument zmizol.

Tak co mam robit? Dizajn URI

Je zodpovednosťou správcu webu prideliť URI, ktoré možno použiť o 2 roky, o 20 rokov, o 200 rokov. Vyžaduje si to premyslenosť, organizáciu a odhodlanie.

URI sa zmenia, ak sa zmenia akékoľvek informácie v nich. To, ako ich navrhnete, je veľmi dôležité. (Čo, návrh URI? Musím navrhnúť URI? Áno, mali by ste na to myslieť). Dizajn v podstate znamená vynechanie akýchkoľvek informácií v URI.

Dátum vytvorenia dokumentu – dátum vydania URI – je niečo, čo sa nikdy nezmení. Je to veľmi užitočné na oddelenie dopytov, ktoré používajú nový systém, od tých, ktoré používajú starý systém. Toto je dobré miesto, kde začať s URI. Ak je dokument datovaný, aj keď bude relevantný v budúcnosti, je to dobrý začiatok.

Jedinou výnimkou je stránka, ktorá je zámerne „najnovšou“ verziou, napríklad pre celú organizáciu alebo jej veľkú časť.

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

Toto je najnovšia rubrika Money Daily v časopise Money. Hlavným dôvodom, prečo toto URI nepotrebuje dátum, je, že nie je dôvod uchovávať URI, ktoré prežije protokol. Koncept Money Daily zmizne, keď zmiznú peniaze. Ak chcete odkazovať na obsah, mali by ste naň odkazovať samostatne v archívoch:

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

(Vyzerá dobre. Predpokladá, že „peniaze“ budú znamenať to isté počas celej životnosti pathfinder.com. Existuje duplikát „98“ a nepotrebný „.html“, ale inak to vyzerá ako silné URI.

Čo nechať bokom

Všetky! Okrem dátumu vytvorenia, uvedenie akýchkoľvek informácií do URI si tak či onak vyžaduje problémy.

  • Meno autora. Autorstvo sa môže zmeniť, keď budú k dispozícii nové verzie. Ľudia opúšťajú organizácie a odovzdávajú veci iným.
  • predmet. To je veľmi ťažké. Spočiatku to vždy vyzerá dobre, ale prekvapivo rýchlo sa mení. Viac o tom poviem nižšie.
  • Postavenie. Adresáre ako "starý", "koncept" atď., nehovoriac o "najnovšom" a "cool", sa objavujú vo všetkých súborových systémoch. Dokumenty menia stav – inak by nemalo zmysel vytvárať koncepty. Najnovšia verzia dokumentu potrebuje trvalý identifikátor bez ohľadu na jeho stav. Ponechajte stav mimo mena.
  • Prístup. Vo W3C sme stránku rozdelili na sekcie pre zamestnancov, členov a verejnosť. Znie to dobre, ale samozrejme, dokumenty začínajú ako tímové nápady zamestnancov, sú prediskutované s členmi a potom sa stanú verejne známymi. Bola by naozaj škoda, keby sa pri každom otvorení dokumentu na širšiu diskusiu prerušili všetky staré odkazy naň! Teraz prejdeme na jednoduchý dátumový kód.
  • Rozšírenie súboru. Veľmi častý jav. "cgi", dokonca aj ".html" sa v budúcnosti zmení. Možno už 20 rokov nepoužívate HTML pre túto stránku, ale dnešné odkazy na ňu by mali stále fungovať. Kanonické odkazy na stránke W3C nepoužívajú rozšírenie (ako sa to robí).
  • Softvérové ​​mechanizmy. V URI hľadajte „cgi“, „exec“ a ďalšie výrazy, ktoré kričia „pozrite sa, aký softvér používame“. Chce niekto stráviť celý svoj život písaním Perl CGI skriptov? nie? Potom odstráňte príponu .pl. Prečítajte si príručku k serveru, ako to urobiť.
  • Názov disku. Poď! Ale toto som už videl.

Takže najlepší príklad z našej stránky je jednoducho

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

... správa o zápisnici zo stretnutia predsedov W3C.

Témy a triedenie podľa tém

O tomto nebezpečenstve sa budem venovať podrobnejšie, pretože je to jedna z vecí, ktorej je najťažšie vyhnúť sa. Témy zvyčajne končia v URI, keď kategorizujete svoje dokumenty podľa práce, ktorú vykonávajú. Toto členenie sa však časom zmení. Názvy oblastí sa zmenia. Vo W3C sme chceli zmeniť MarkUP na Markup a potom na HTML, aby odrážal skutočný obsah sekcie. Okrem toho často existuje plochý menný priestor. Ste si istý, že o 100 rokov nebudete chcieť nič znovu použiť? V našom krátkom živote sme už chceli znova použiť napríklad „Históriu“ a „Štýlové predlohy“.

Je to lákavý spôsob, ako organizovať webovú stránku – a skutočne lákavý spôsob, ako zorganizovať čokoľvek vrátane celého webu. Ide o skvelé strednodobé riešenie, no z dlhodobého hľadiska má vážne nedostatky.

Časť dôvodu spočíva vo filozofii zmyslu. Každý výraz v jazyku je potenciálnym cieľom zoskupovania a každý človek môže mať inú predstavu o tom, čo to znamená. Keďže vzťahy medzi entitami pripomínajú skôr web ako strom, aj tí, ktorí s webom súhlasia, si môžu zvoliť inú reprezentáciu stromu. Toto sú moje (často opakované) všeobecné postrehy o nebezpečenstvách hierarchickej klasifikácie ako všeobecného riešenia.

V skutočnosti, keď použijete názov témy v URI, zaväzujete sa k nejakému druhu klasifikácie. Možno v budúcnosti uprednostníte inú možnosť. URI bude potom náchylné na porušenie.

Dôvodom použitia predmetnej oblasti ako súčasti URI je to, že zodpovednosť za podsekcie priestoru URI je zvyčajne delegovaná a potom potrebujete názov organizačného orgánu – oddelenia, skupiny alebo čohokoľvek iného – ktorý je zodpovedný za daný podpriestor. Toto je URI viazané na organizačnú štruktúru. Zvyčajne je to bezpečné iba vtedy, ak je ďalší (ľavý) URI chránený dátumom: 1998/pics môže pre váš server znamenať „to, čo sme mysleli v roku 1998 obrázkami“, a nie „čo sme urobili v roku 1998 s tým, čo teraz nazývame obrázky“.

Nezabudnite na názov domény

Pamätajte, že to platí nielen pre cestu v URI, ale aj pre názov servera. Ak máte oddelené servery na rôzne veci, pamätajte, že toto rozdelenie nebude možné zmeniť bez toho, aby ste zničili veľa, veľa odkazov. Niektoré klasické chyby typu „pozrite sa na softvér, ktorý dnes používame“ sú názvy domén „cgi.pathfinder.com“, „secure“, „lists.w3.org“. Sú navrhnuté tak, aby uľahčili správu serverov. Bez ohľadu na to, či doména predstavuje divíziu vo vašej spoločnosti, stav dokumentu, úroveň prístupu alebo úroveň zabezpečenia, buďte veľmi, veľmi opatrní pred použitím viac ako jedného názvu domény pre viacero typov dokumentov. Pamätajte, že pomocou presmerovania a proxy môžete skryť viacero webových serverov v rámci jedného viditeľného webového servera.

Oh, a tiež myslite na názov svojej domény. Nechcete byť označovaní ako soap.com, keď zmeníte produktové rady a prestanete vyrábať mydlo (Prepáčte tomu, kto momentálne vlastní soap.com).

Záver

Uchovať URI na 2, 20, 200 alebo dokonca 2000 XNUMX rokov zjavne nie je také jednoduché, ako sa zdá. Na celom internete však webmasteri robia rozhodnutia, ktoré im túto úlohu v budúcnosti poriadne sťažujú. Často je to preto, že používajú nástroje, ktorých úlohou je prezentovať len momentálne najlepšiu stránku – a nikto nezhodnotil, čo bude s odkazmi, keď sa všetko zmení. Ide však o to, že veľa, veľa vecí sa môže zmeniť a vaše URI môžu a mali by zostať rovnaké. To je možné len vtedy, keď sa zamyslíte nad tým, ako ich vytvoríte.

Pozri tiež:

doplnky stravy

Ako odstrániť prípony súborov...

...z URI v aktuálnom súborovom webovom serveri?

Ak používate napríklad Apache, môžete ho nakonfigurovať na vyjednávanie obsahu. Uložte príponu súboru (napr. .png) do súboru (napr. mydog.png), ale môžete odkazovať na webový zdroj aj bez neho. Apache potom skontroluje adresár pre všetky súbory s týmto názvom a akoukoľvek príponou a môže si vybrať ten najlepší zo sady (napríklad GIF a PNG). A nie je potrebné umiestňovať rôzne typy súborov do rôznych adresárov, v skutočnosti zhoda obsahu nebude fungovať, ak to urobíte.

  • Nastavte svoj server na vyjednávanie obsahu
  • Vždy odkazujte na URI bez rozšírenia

Odkazy s rozšíreniami budú stále fungovať, ale vášmu serveru zabránia vybrať najlepší dostupný formát v súčasnosti a v budúcnosti.

(V skutočnosti, mydog, mydog.png и mydog.gif — platné webové zdroje, mydog je univerzálny zdroj typu obsahu a mydog.png и mydog.gif — zdroje špecifického typu obsahu).

Samozrejme, ak píšete svoj vlastný webový server, je dobré použiť databázu na naviazanie trvalých identifikátorov na ich aktuálnu podobu, aj keď si dávajte pozor na neobmedzený rast databázy.

The Board of Shame – Story 1: Channel 7

Počas roku 1999 som na stránke sledoval zatvorenie škôl z dôvodu snehu http://www.whdh.com/stormforce/closings.shtml. Nečakajte, kým sa informácie objavia v spodnej časti televíznej obrazovky! Odkazoval som naň z mojej domovskej stránky. Prichádza prvá veľká snehová búrka roku 2000 a ja kontrolujem stránku. Je tam napísané:,

- Od .
Momentálne nie je nič uzavreté. Vráťte sa prosím v prípade varovania pred počasím.

To nemôže byť taká silná búrka. Je smiešne, že chýba dátum. Ak však prejdete na hlavnú stránku webu, zobrazí sa veľké tlačidlo „Zatvorené školy“, ktoré vedie na stránku http://www.whdh.com/stormforce/ s dlhým zoznamom zatvorených škôl.

Možno zmenili systém získavania zoznamu - ale nepotrebovali zmeniť URI.

Board of Shame – Príbeh 2: Microsoft Netmeeting

S rastúcou závislosťou od internetu prišiel šikovný nápad, že odkazy na webovú stránku výrobcu je možné vložiť do aplikácií. Toto sa často používalo a zneužívalo, ale adresu URL nemôžete zmeniť. Len nedávno som skúsil odkaz z klienta Microsoft Netmeeting 2/niečo v ponuke Pomocník/Microsoft na webe/Zadarmo a dostal som chybu 404 – zo servera sa nenašla žiadna odpoveď. Možno je to už opravené...

© 1998 Tim BL

Historická poznámka: Koncom 20. storočia, keď sa toto písalo, bolo slovo „cool“ prívlastkom uznania, najmä medzi mladými ľuďmi, čo naznačuje módnosť, kvalitu alebo vhodnosť. V zhone bola cesta URI často zvolená skôr pre „chladnosť“ ako pre užitočnosť alebo trvanlivosť. Tento príspevok je pokusom o presmerovanie energie za hľadaním cool.

Zdroj: hab.com

Pridať komentár