Szerző: Sir Tim Berners-Lee, az URI-k, URL-ek, HTTP, HTML és a World Wide Web feltalálója, a W3C jelenlegi vezetője. A cikk 1998-ban íródott
Melyik URI tekinthető "menőnek"?
Olyat, ami nem változik.
Hogyan változnak az URI-k? Az URI-k nem változnak: az emberek megváltoztatják őket.
Elméletileg nincs ok arra, hogy az emberek megváltoztassák az URI-kat (vagy leállítsák az alátámasztó dokumentumokat), de a gyakorlatban több millió van belőlük.
Elméletileg egy tartománynévtér névleges tulajdonosa tulajdonképpen a tartomány névterének, és így a benne lévő összes URI-nek a tulajdonosa. A fizetésképtelenségen kívül semmi sem akadályozza meg a domain név tulajdonosát abban, hogy megtartsa a nevet. És elméletileg a domain neve alatti URI-terület teljes mértékben az Ön ellenőrzése alatt áll, így tetszés szerint stabillá teheti azt. Szinte az egyetlen jó oka annak, hogy egy dokumentum eltűnjön az internetről, az az, hogy a domain nevet birtokló cég megszűnt, vagy már nem engedheti meg magának, hogy a kiszolgálót tovább futtassa. Akkor miért van annyi hiányzó láncszem a világon? Ennek egy része egyszerűen az előrelátás hiánya. Íme néhány ok, amit hallhat:
Csak átszerveztük az oldalt, hogy jobb legyen.
Tényleg azt hiszi, hogy a régi URI-k már nem működnek? Ha igen, akkor nagyon rosszul választottad őket. Fontolja meg az újak megtartását a következő átalakításhoz.
Annyi cuccunk van, hogy nem tudjuk nyomon követni, mi az elavult, mi a bizalmas és mi a még aktuális, ezért jobbnak láttuk, ha kikapcsoljuk az egészet.
Csak együttérezni tudok. A W3C egy olyan időszakon ment keresztül, amikor gondosan át kellett vizsgálnunk az archív anyagokat a titoktartás érdekében, mielőtt nyilvánosságra hoztuk őket. A döntést előre át kell gondolni – ügyeljen arra, hogy minden dokumentumnál rögzítse az elfogadható olvasóközönséget, a keletkezési dátumot és ideális esetben a lejárati dátumot. Mentse el ezeket a metaadatokat.
Nos, rájöttünk, hogy át kell helyeznünk a fájlokat...
Ez az egyik legszánalmasabb kifogás. Sokan nem tudják, hogy a webszerverek lehetővé teszik az objektum URI-je és a fájlrendszerben való tényleges helye közötti kapcsolat szabályozását. Tekintsd az URI teret egy absztrakt térnek, tökéletesen szervezett. Ezután készítsen feltérképezést arra a valóságra, amelyet ténylegesen a megvalósításához használ. Ezután jelentse ezt a webszervernek. Akár saját szerverrészletet is írhat, hogy helyes legyen.
John már nem karbantartja ezt a fájlt, Jane már igen.
John neve szerepelt az URI-ban? Nem, a fájl csak az ő könyvtárában volt? Hát rendben.
Korábban CGI-szkriptet használtunk ehhez, most viszont bináris programot használunk.
Van egy őrült ötlet, hogy a szkriptek által létrehozott oldalak a "cgibin" vagy a "cgi" területen legyenek. Ez feltárja a webszerver futtatásának mechanikáját. Megváltoztatja a mechanizmust (még a tartalom mentése közben is), és hoppá - minden URI-je megváltozik.
Vegyük például a National Science Foundation-t (NSF):
A dokumentumok megtekintésének első oldala nyilvánvalóan néhány éven belül nem marad ugyanaz. cgi-bin, oldbrowse и pl - mindez információfoszlányokat ad arról, hogy most hogyan csináljuk. Ha az oldalt egy dokumentum keresésére használja, az első találat ugyanilyen rossz:
A kriptológiai és kódoláselméleti munkacsoport jelentése
http://www.nsf.gov/cgi-bin/getpub?nsf9814
a dokumentum indexoldalához, bár maga a html dokumentum sokkal jobban néz ki:
http://www.nsf.gov/pubs/1998/nsf9814/nsf9814.htm
Itt a pubs/1998 fejléc minden jövőbeni levéltári szolgálatnak jó jelzést ad arról, hogy a régi, 1998-as dokumentumosztályozási rendszer érvényben van. Bár a dokumentumszámok 2098-ban másképp nézhetnek ki, úgy gondolom, hogy ez az URI továbbra is érvényes lenne, és nem zavarná az NSF-et vagy bármely más, az archívumot karbantartó szervezetet.
Nem gondoltam, hogy az URL-eknek állandónak kell lenniük – voltak URN-ek.
Valószínűleg ez az URN-vita egyik legrosszabb mellékhatása. Vannak, akik úgy gondolják, hogy az állandóbb névtér kutatása miatt gondatlanok lehetnek a lógó hivatkozásokkal kapcsolatban, mert "az URN-ek mindent megoldanak." Ha te is ezek közé az emberek közé tartozol, hagyd, hogy csalódást okozzak.
A legtöbb általam látott URN-séma úgy néz ki, mint egy jogosultságazonosító, amelyet vagy egy dátum és egy kiválasztott karakterlánc követ, vagy csak egy kiválasztott karakterlánc. Ez nagyon hasonlít egy HTTP URI-hoz. Más szóval, ha úgy gondolja, hogy szervezete képes lesz hosszú élettartamú URN-ek létrehozására, akkor most bizonyítsa be a HTTP URI-k használatával. Magában a HTTP-ben nincs semmi, ami instabillá tenné az URI-t. Csak az Ön szervezete. Hozzon létre egy adatbázist, amely leképezi a dokumentum URN-jét az aktuális fájlnévre, és hagyja, hogy a webszerver felhasználja a fájlok tényleges lekéréséhez.
Ha eljutott idáig, ha nincs ideje, pénze és kapcsolata valamilyen szoftver fejlesztésére, akkor a következő kifogással élhet:
Szerettük volna, de nem rendelkezünk a megfelelő eszközökkel.
De ezzel együtt lehet érezni. Teljesen egyetértek. Amit tennie kell, az az, hogy rá kell kényszerítenie a webszervert, hogy azonnal elemezze az állandó URI-t, és visszaküldje a fájlt, bárhol is van az aktuális őrült fájlrendszerén. Az összes URI-t egy fájlban szeretné tárolni ellenőrzésként, és az adatbázist mindig naprakészen szeretné tartani. Meg akarja őrizni a kapcsolatot ugyanannak a dokumentumnak a különböző verziói és fordításai között, valamint egy független ellenőrzőösszeg-rekordot szeretne fenntartani annak biztosítására, hogy a fájlt ne sértse meg véletlen hiba. A webszerverek pedig egyszerűen nem jönnek ki ezekkel a funkciókkal. Ha új dokumentumot szeretne létrehozni, a szerkesztő kéri, hogy adjon meg egy URI-t.
Az URI-térben az URI megváltoztatása nélkül módosítani kell a tulajdonjogot, a dokumentum-hozzáférést, az archívum szintű biztonságot stb.
Nagyon rossz az egész. De javítjuk a helyzetet. A W3C-nél a Jigedit (Jigsaw Editing Server) funkciót használjuk, amely nyomon követi a verziókat, és kísérletezünk dokumentumgeneráló szkriptekkel. Ha eszközöket, szervereket és klienseket fejleszt, figyeljen erre a kérdésre!
Ez a kifogás sok W3C-oldalra is vonatkozik, beleértve ezt az oldalt is: tehát tedd azt, amit mondok, ne úgy, ahogy én teszem.
Miért érdekelne?
Amikor megváltoztatja az URI-t a kiszolgálón, soha nem tudja teljesen megmondani, hogy kinek lesz hivatkozása a régi URI-hoz. Ezek lehetnek normál weboldalak hivatkozásai. Könyvjelzővel jelölje meg oldalát. Lehet, hogy az URI-t egy barátjának írt levél margójára firkálták.
Amikor valaki követ egy linket, és az meghibásodik, általában elveszíti a kiszolgáló tulajdonosába vetett bizalmát. Érzelmileg és fizikailag is frusztrálja, hogy nem tudja elérni a célját.
Sokan folyamatosan panaszkodnak a hibás linkekre, és remélem, a kár nyilvánvaló. Remélem, hogy az a szerver karbantartójának hírneve is nyilvánvaló, ahol a dokumentum eltűnt.
Szóval mit tegyek? URI tervezés
A webmester felelőssége a 2 év, 20 év, 200 év múlva használható URI-k kiosztása. Ez átgondoltságot, szervezettséget és elszántságot igényel.
Az URI-k megváltoznak, ha bármilyen információ módosul bennük. Nagyon fontos, hogy hogyan tervezed őket. (Mi, URI tervezés? Meg kell terveznem az URI-t? Igen, ezen érdemes elgondolkodni). A tervezés alapvetően azt jelenti, hogy minden információt elhagyunk az URI-ban.
A dokumentum létrehozásának dátuma – az URI kiadásának dátuma – soha nem fog változni. Nagyon hasznos az új rendszert használó lekérdezések és a régi rendszert használó lekérdezések elkülönítésére. Ez egy jó hely az URI használatához. Ha egy dokumentum dátummal rendelkezik, még akkor is, ha a dokumentum releváns lesz a jövőben, akkor ez egy jó kezdet.
Az egyetlen kivétel az olyan oldal, amely szándékosan a "legújabb" verzió, például az egész szervezetre vagy annak nagy részére vonatkozóan.
Ez a Money magazin legújabb Money Daily rovata. A fő ok, amiért nincs szükség dátumra ebben az URI-ban, az az, hogy nincs ok az URI tárolására, amely túléli a naplót. A Money Daily fogalma eltűnik, amikor a pénz eltűnik. Ha tartalomra szeretne hivatkozni, az archívumban külön hivatkozzon rá:
(Jól néz ki. Feltételezi, hogy a "pénz" ugyanazt fogja jelenteni a pathfinder.com egész életében. Van egy "98" és egy szükségtelen ".html" másolat, de egyébként erős URI-nak tűnik.
Mit hagyjunk félre
Minden! A létrehozás dátumától eltekintve bármilyen információ elhelyezése az URI-ban, így vagy úgy gondot okoz.
A szerző neve. A szerzőség megváltozhat, amint új verziók válnak elérhetővé. Az emberek kilépnek a szervezetekből, és átadják a dolgokat másoknak.
téma. Ez nagyon nehéz. Elsőre mindig jól néz ki, de meglepően gyorsan változik. Erről az alábbiakban bővebben szólok.
állapot. Az olyan könyvtárak, mint a "régi", "draft" és így tovább, nem beszélve a "legújabb" és a "cool" könyvtárakról, minden fájlrendszerben megjelennek. A dokumentumok állapota megváltozik – különben nem lenne értelme piszkozatokat készíteni. A dokumentum legújabb verziójának állandó azonosítóra van szüksége, függetlenül annak állapotától. Az állapot ne szerepeljen a névben.
Hozzáférés. A W3C-nél az oldalt részekre osztottuk az alkalmazottak, a tagok és a nyilvánosság számára. Ez jól hangzik, de természetesen a dokumentumok a munkatársak csapatötleteként indulnak, megvitatják a tagokkal, majd nyilvánossá válnak. Valóban kár lenne, ha minden alkalommal, amikor egy dokumentumot szélesebb körű megvitatásra megnyitnának, az összes régi link megszakadna! Most áttérünk egy egyszerű dátumkódra.
Fájlkiterjesztés. Nagyon gyakori jelenség. "cgi", még a ".html" is megváltozik a jövőben. Lehet, hogy 20 éve nem használ HTML-t ehhez az oldalhoz, de a mai linkeknek továbbra is működniük kell. A W3C webhely kanonikus hivatkozásai nem használják a kiterjesztést (hogyan készült).
Szoftver mechanizmusok. Az URI-ban keresse a „cgi”, „exec” és más olyan kifejezéseket, amelyek „nézd meg, milyen szoftvert használunk”. Szeretné valaki egész életét Perl CGI szkriptek írásával tölteni? Nem? Ezután távolítsa el a .pl kiterjesztést. Olvassa el a szerver kézikönyvét, hogyan kell ezt megtenni.
Lemez neve. Gyerünk! De ezt már láttam.
Tehát a legjobb példa oldalunkról egyszerűen
http://www.w3.org/1998/12/01/chairs
... jelentés a W3C elnökségi ülésének jegyzőkönyvéről.
Témák és témakörök szerinti osztályozás
Részletesebben kitérek erre a veszélyre, mivel ez az egyik legnehezebb elkerülni. A témák általában URI-kbe kerülnek, amikor a dokumentumokat az általuk végzett munka alapján kategorizálja. De ez a felosztás idővel változni fog. A területek neve megváltozik. A W3C-nél a MarkUP-ot Markup-ra, majd HTML-re akartuk változtatni, hogy tükrözze a szakasz tényleges tartalmát. Ezenkívül gyakran van egy lapos névtér. Biztos vagy benne, hogy 100 év múlva semmit sem akarsz újra felhasználni? Rövid életünk során már szerettük volna újra felhasználni például a "History"-t és a "Style Sheets"-t.
Csábító módja a webhelyek rendezésének – és igazán csábító módja bárminek, beleértve a teljes internetet is. Ez egy nagyszerű középtávú megoldás, de hosszú távon komoly hiányosságai vannak.
Az ok egy része a jelentésfilozófiában rejlik. Egy nyelvben minden kifejezés potenciális célpont a klaszterezéshez, és minden embernek más elképzelése lehet arról, hogy mit jelent. Mivel az entitások közötti kapcsolatok inkább hálóhoz, mint fához hasonlítanak, még azok is, akik egyetértenek a hálóval, választhatnak a fa más ábrázolását. Ezek az én (gyakran ismételt) általános megfigyeléseim a hierarchikus besorolás, mint általános megoldás veszélyeiről.
Valójában, ha témanevet használ egy URI-ban, akkor elkötelezi magát valamilyen osztályozás mellett. Talán a jövőben más lehetőséget választ majd. Az URI ekkor sérülni fog.
A tárgyterület URI részeként való használatának oka az, hogy az URI-terület alszakaszaiért való felelősséget általában delegálják, majd szükség van annak a szervezeti szervnek a nevére - osztály, csoport vagy bármi más -, amely az adott alterületért felelős. Ez egy szervezeti struktúrához kötődő URI. Általában csak akkor biztonságos, ha a további (bal oldali) URI-t dátum védi: az 1998/pics a szervere számára azt jelentheti, hogy „amit értünk 1998-ban a képekkel”, nem pedig azt, hogy „amit csináltunk 1998-ban azzal, amit ma képeknek hívunk”.
Ne felejtse el a domain nevet
Ne feledje, hogy ez nem csak az URI-ban lévő elérési útra vonatkozik, hanem a kiszolgáló nevére is. Ha külön szerverei vannak a különböző dolgokhoz, ne feledje, hogy ezt a felosztást lehetetlen megváltoztatni anélkül, hogy sok-sok linket megsemmisítenének. Néhány klasszikus "nézd meg a ma használt szoftvert" hiba a "cgi.pathfinder.com", "secure", "lists.w3.org" domain nevek. Úgy tervezték, hogy megkönnyítsék a szerver adminisztrációját. Függetlenül attól, hogy egy domain a vállalat egy részlegét, egy dokumentum állapotot, egy hozzáférési szintet vagy egy biztonsági szintet képvisel-e, legyen nagyon-nagyon körültekintő, mielőtt egynél több domain nevet használ több dokumentumtípushoz. Ne feledje, hogy átirányítás és proxy használatával több webszervert is elrejthet egyetlen látható webszerveren belül.
Ja, és gondoljon a domain nevére is. Nem szeretné, hogy a soap.com néven hivatkozzanak rád, miután megváltoztattad a termékcsaládot, és abbahagytad a szappankészítést (elnézést attól, aki jelenleg a soap.com tulajdonosa).
Következtetés
Egy URI-t 2, 20, 200 vagy akár 2000 évig megőrizni nyilvánvalóan nem olyan egyszerű, mint amilyennek látszik. Azonban az egész interneten a webmesterek olyan döntéseket hoznak, amelyek a jövőben nagyon megnehezítik ezt a feladatot. Ennek gyakran az az oka, hogy olyan eszközöket használnak, amelyeknek az a feladata, hogy csak az adott pillanatban a legjobb oldalt mutassák be – és senki sem mérte fel, mi lesz a hivatkozásokkal, ha minden megváltozik. Itt azonban az a lényeg, hogy sok-sok dolog változhat, és az URI-k változatlanok maradhatnak, és kell is maradniuk. Ez csak akkor lehetséges, ha átgondolja, hogyan hozza létre őket.
Hogyan lehet eltávolítani a fájlkiterjesztéseket...
...az aktuális fájl alapú webszerver URI-jéből?
Ha például Apache-t használ, beállíthatja a tartalom egyeztetésére. Mentse el a fájl kiterjesztését (pl. .png) egy fájlba (pl. mydog.png), de anélkül is linkelhet egy internetes forrást. Az Apache ezután ellenőrzi az összes ilyen nevű és bármilyen kiterjesztésű fájlt a könyvtárban, és kiválaszthatja a legjobbat a készletből (például GIF és PNG). És nem kell különböző típusú fájlokat különböző könyvtárakba helyezni, valójában a tartalomegyeztetés nem fog működni, ha így tesz.
Állítsa be szerverét a tartalom egyeztetésére
Mindig hivatkozzon az URI-kra kiterjesztés nélkül
A bővítményeket tartalmazó hivatkozások továbbra is működnek, de megakadályozzák, hogy a szerver a jelenleg és a jövőben elérhető legjobb formátumot válassza.
(Valójában, mydog, mydog.png и mydog.gif – érvényes webes források, mydog egy univerzális tartalom típusú erőforrás, és mydog.png и mydog.gif — meghatározott tartalomtípusú források).
Természetesen, ha saját webszervert írunk, érdemes egy adatbázist használni, hogy a perzisztens azonosítókat a jelenlegi formájukhoz kössük, bár óvakodjunk az adatbázisok korlátlan növekedésétől.
The Board of Shame – 1. sztori: 7. csatorna
1999-ben az oldalon nyomon követtem a hó miatti iskolabezárásokat http://www.whdh.com/stormforce/closings.shtml. Ne várja meg, amíg az információ megjelenik a TV képernyőjének alján! A kezdőlapomról linkeltem. Megérkezik az első 2000-es nagy hóvihar és megnézem az oldalt. Oda van írva:,
- Az állás szerint.
Jelenleg semmi sincs lezárva. Időjárási figyelmeztetés esetén kérjük, térjen vissza.
Nem lehet ilyen erős vihar. Vicces, hogy hiányzik a dátum. De ha az oldal főoldalára lép, ott lesz egy nagy „Bezárt iskolák” gomb, amely az oldalra vezet. http://www.whdh.com/stormforce/ a bezárt iskolák hosszú listájával.
Lehet, hogy megváltoztatták a lista lekérésének rendszerét – de nem kellett megváltoztatniuk az URI-t.
Board of Shame – 2. sztori: Microsoft Netmeeting
Az internettől való növekvő függőség következtében jött egy okos ötlet, hogy a gyártó weboldalára mutató hivatkozásokat alkalmazásokba is be lehetne ágyazni. Sokszor használták és visszaéltek vele, de az URL-t nem tudod megváltoztatni. Épp a minap próbálkoztam a Microsoft Netmeeting 2/something kliens linkjével a Help/Microsoft on the Web/Free dolgok menüben, és 404-es hibaüzenetet kaptam – a szerver nem kapott választ. Lehet, hogy már kijavították...
Történelmi megjegyzés: A 20. század végén, amikor ezt írták, a "menő" a jóváhagyás jelzője volt, különösen a fiatalok körében, jelezve a divatosságot, a minőséget vagy a megfelelőséget. A sietség miatt az URI-útvonalat gyakran a "hűvösség" miatt választották a hasznosság vagy a tartósság helyett. Ez a bejegyzés megpróbálja átirányítani az energiát a menő keresése mögött.