Coola URI:er Àndras inte

Författare — Sir Tim Berners-Lee, uppfinnaren av URI, URL, HTTP, HTML och World Wide Web, samt nuvarande ledare för W3C. Artikeln skrevs 1998.

Vilken URI kan anses vara "cool"?
En som inte förÀndras.
Hur förÀndras URI?
URI förÀndras inte; det Àr mÀnniskor som förÀndrar dem.

Teoretiskt har mÀnniskor ingen anledning att förÀndra URI (eller sluta stödja dokument), men i praktiken finns det miljontals.

Teoretiskt sett Àger den nominella Àgaren av domÀnnamnsutrymmet faktiskt domÀnnamnstomten och dÀrmed alla URI i den. Bortsett frÄn konkurs finns det inget som hindrar Àgaren av domÀnnamnet frÄn att behÄlla det namnet. Och teoretiskt Àr URI-utrymmet under ditt domÀnnamn helt under din kontroll, sÄ att du kan göra det sÄ stabilt som du vill. I stor utstrÀckning Àr den enda giltiga anledningen till att ett dokument försvinner frÄn internet att företaget som Àgde domÀnnamnet gick i konkurs eller inte lÀngre kan stödja driften av servern. SÄ varför finns det sÄ mÄnga döda lÀnkar i vÀrlden? Delvis beror det helt enkelt pÄ bristande förutseende. HÀr Àr nÄgra anledningar som man kan höra:

Vi har bara omorganiserat webbplatsen för att göra den bÀttre.

Tycker du verkligen att gamla URI inte lÀngre kan fungera? Om sÄ Àr fallet har du valt dem vÀldigt dÄligt. TÀnk pÄ att de nya ska bevaras efter nÀsta redesign.

Vi har sÄ mycket material att vi inte kan följa upp vad som Àr förÄldrat, vad som Àr konfidentiellt och vad som fortfarande Àr aktuellt, sÄ vi tÀnkte att det Àr bÀttre att bara stÀnga ner allt.

Jag kan bara beklaga. W3C har gĂ„tt igenom en period dĂ€r vi var tvungna att noggrant gallra igenom arkivmaterial för integritet innan vi gjorde det offentligt. Beslutet mĂ„ste vara genomtĂ€nkt pĂ„ förhand — se till att du registrerar en acceptabel krets av lĂ€sare, skapelsedatum och, helst, sista datum för giltighet med varje dokument. Spara dessa metadata.

NÄvÀl, vi upptÀckte att vi behöver flytta filerna...

Detta Àr en av de mest patetiska ursÀkterna. MÄnga vet inte att webbservrar lÄter dig hantera kopplingen mellan URI:n för objektet och dess faktiska plats i filsystemet. TÀnk pÄ URI-utrymmet som ett abstrakt utrymme, perfekt organiserat. Gör sedan en avbildning till vilken verklighet du faktiskt anvÀnder för att genomföra det. Informera sedan webbservern om detta. Du kan till och med skriva en del av din server för att fÄ allt rÀtt.

John stöder inte den hÀr filen lÀngre, det gör Jane nu.

Var Johns namn i URI:n? Nej, bara filen lÄg i hans katalog? Jaha.

Tidigare anvÀnde vi ett CGI-skript för detta, nu anvÀnder vi ett binÀrt program.

Det finns en galen idĂ© att sidor som skapats av skript ska ligga i "cgibin" eller "cgi"-omrĂ„det. Detta avslöjar hur du kör din webbserver. Byter du mekanik (Ă€ven om du behĂ„ller innehĂ„llet), och plötsligt — alla dina URI:er Ă€ndras.

LÄt oss ta National Science Foundation (NSF) som exempel:

NSF:s online-dokument

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

Den första sidan för att börja blĂ€ddra i dokument kommer uppenbarligen inte att förbli densamma om nĂ„gra Ă„r. cgi-bin, oldbrowse och pl — allt detta ger fragment av information om hur-vi-gör-det-nu. Om du anvĂ€nder en sida för att söka efter ett dokument fĂ„r du lika dĂ„ligt resultat först:

Rapport frÄn arbetsgruppen för kryptografi och kodteori

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

för dokumentets indexsida, Àven om sjÀlva html-dokumentet ser mycket bÀttre ut:

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

HĂ€r kommer rubriken pubs/1998 att ge alla framtida arkivtjĂ€nster en bra ledtrĂ„d för att förstĂ„ att det gamla klassificeringssystemet för dokument frĂ„n 1998 Ă€r i bruk. Även om dokumentnummer i 2098 kan se annorlunda ut, kan jag förestĂ€lla mig att denna URI fortfarande kommer att vara giltig, och den kommer inte att störa NSF eller nĂ„gon annan organisation som upprĂ€tthĂ„ller arkivet.

Jag trodde inte att URL:er mĂ„ste vara permanenta — det har ju funnits URN.

Detta Àr förmodligen en av de sÀmsta bieffekterna av diskussionen om URN. Vissa tror att pÄ grund av forskningen om ett mer permanent namnutrymme kan de vara slarviga med trasiga lÀnkar eftersom "URN kommer att fixa allt detta". Om du Àr en av dessa personer, lÄt mig göra dig besviken.

De flesta URN-scheman jag har sett ser ut som en myndighetsidentifierare, följd av antingen ett datum och en strÀng som du vÀljer, eller bara en strÀng som du vÀljer. Det liknar vÀldigt mycket en HTTP URI. Med andra ord, om du tror att din organisation kommer att kunna skapa lÄnglivade URN, bevisa det nu genom att anvÀnda dem för dina HTTP URI:er. I sjÀlva HTTP finns det inget som gör din URI instabil. Endast din organisation. Skapa en databas som kopplar URN-dokument till det aktuella filnamnet och lÄt webbservern anvÀnda den för att faktiskt hÀmta filer.

Om du har kommit sÄ hÀr lÄngt, och om du inte har tid, pengar eller kontakter för att utveckla nÄgon programvara, kan du ange följande ursÀkt:

Vi ville, men vi har helt enkelt inte rÀtt verktyg.

Detta kan man kÀnna medlidande för. Jag hÄller helt med. Det du behöver göra Àr att fÄ webbservern att omedelbart hantera den bestÀndiga URI:n och returnera filen, oavsett var den för nÀrvarande lagras i ditt nuvarande galna filsystem. Du vill lagra alla URI:er i en fil som en kontroll och kontinuerligt hÄlla databasen aktuell. Du vill behÄlla relationer mellan olika versioner och översÀttningar av samma dokument, samt ha en oberoende post av kontrollsumman för att sÀkerstÀlla skydd mot filskada genom mÀnskligt misstag. Och webbservrar levereras bara inte med dessa funktioner direkt ur lÄdan. NÀr du vill skapa ett nytt dokument ber din redaktör om att ange en URI.

Du behöver möjlighet att Àndra Àgarskap, Ätkomst till dokumentet, arkivnivÄns sÀkerhetsnivÄ och mer i URI-rymd utan att Àndra URI:n.

Allt Àr för illa. Men vi ska ÄtgÀrda det. PÄ W3C anvÀnder vi funktionen Jigedit (Jigsaw-server för redigering), som spÄrar versioner, och vi experimenterar med dokumentgenereringsskripter. Om du utvecklar verktyg, servrar och klienter, hÄll denna frÄga i Ätanke!

Denna ursÀkt gÀller ocksÄ mÄnga sidor pÄ W3C, inklusive denna: sÄ gör det jag sÀger, inte det jag gör.

Varför skulle det hÀr bry mig?

NÀr du Àndrar URI pÄ din server kan du aldrig helt sÀkerstÀlla vem som har lÀnkar till den gamla URI: n. Det kan vara lÀnkar frÄn vanliga webbsidor. BokmÀrken till din sida. URI: n kan ha blivit skriven pÄ kantexen av ett brev till en vÀn.

NĂ€r nĂ„gon klickar pĂ„ en lĂ€nk och den Ă€r trasig förlorar de vanligtvis förtroendet för serverĂ€garen. Den personen blir ocksĂ„ besviken — bĂ„de emotionellt och verkligt, nĂ€r de inte kan nĂ„ sitt mĂ„l.

MÄnga mÀnniskor klagar stÀndigt pÄ döda lÀnkar, och jag hoppas att skadan Àr uppenbar. Jag hoppas ocksÄ att den reputationsskada som intrÀffar för serverunderhÄllaren, dÀr dokumentet har försvunnit, Àr uppenbar.

SÄ vad ska jag göra? Designa URI

Det Àr webmasterens plikt att skapa URIer som kan anvÀndas om 2 Är, om 20 Är, om 200 Är. Det krÀver eftertanke, organisation och beslutsamhet.

URI: er förÀndras nÀr nÄgon information i dem förÀndras. Det Àr mycket viktigt hur du designar dem. (Vad, designa URI? MÄste jag designa URI? Ja, du behöver tÀnka pÄ det). Design handlar i grunden om att undvika att ha nÄgon information i URI: n.

Dokumentets skapelsedatum — datumet dĂ„ URI utfĂ€rdades — Ă€r nĂ„got som aldrig kommer att förĂ€ndras. Det Ă€r mycket anvĂ€ndbart för att sĂ€rskilja förfrĂ„gningar som anvĂ€nder det nya systemet frĂ„n de som anvĂ€nder det gamla systemet. Det Ă€r en bra början för URI: n. Om dokumentet har ett datum angivet, Ă€ven om dokumentet kommer att vara aktuellt i framtiden, sĂ„ Ă€r det en bra början.

Det enda undantaget Àr en sida som avsiktligt Àr den 'senaste' versionen, till exempel för hela organisationen eller en stor del av den.

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

Detta Àr den sista spalten i Money Daily i tidskriften Money. Huvudorsaken till varför detta URI inte behöver ett datum Àr att det inte finns nÄgra anledningar att spara ett URI som kommer att överleva tidskriften. Begreppet Money Daily kommer att försvinna nÀr Money försvinner. Om du vill referera till innehÄllet bör du hÀnvisa till det separat i arkiven:

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

(Ser bra ut. Antyder att "money" kommer att betyda samma sak under hela pathfinder.com:s existens. Det finns duplicering av "98" och onödigt ".html", men annars ser det ut som en stark URI.

Vad man ska lÀmna utanför

Allt! Förutom skapelsedatum, genom att sÀtta nÄgon information i URI: n ber du i sjÀlva verket om problem.

  • Författarens namn. Författarskap kan Ă€ndras med nya versioner. Folk lĂ€mnar organisationer och överlĂ€mnar saker till andra.
  • Ämne. Det Ă€r vĂ€ldigt komplicerat. Det ser alltid bra ut i början, men förĂ€ndras otroligt snabbt. Jag kommer att berĂ€tta mer om detta nedan.
  • Status. Kataloger som "gammal", "utkast" och sĂ„ vidare, för att inte tala om "senast" och "cool", dyker upp i alla filsystem. Dokument Ă€ndrar status — annars skulle det inte finnas nĂ„gon mening med att skapa utkast. Den senaste versionen av ett dokument behöver en konstant identifierare, oavsett dess status. HĂ„ll status utanför namnet.
  • Åtkomst. PĂ„ W3C har vi delat upp webbplatsen i sektioner för anstĂ€llda, medlemmar och allmĂ€nheten. Det lĂ„ter bra, men sjĂ€lvklart börjar dokument som medarbetarnas teamidĂ©er, diskuteras med medlemmar, och blir sedan offentliga. Det Ă€r faktiskt frustrerande om lĂ€nkar till ett dokument bryts varje gĂ„ng det öppnas för bredare diskussion! Nu gĂ„r vi vidare till en enkel datumkod.
  • FilĂ€ndelse. Mycket vanligt. "cgi", Ă€ven ".html" kommer att förĂ€ndras i framtiden. Kanske om 20 Ă„r kommer ni inte att anvĂ€nda HTML för den hĂ€r sidan, men dagens lĂ€nkar till den mĂ„ste fortfarande fungera. Kanoniska lĂ€nkar pĂ„ W3C:s webbplats anvĂ€nder inte filĂ€ndelsen (hur detta görs).
  • Programmekanismer. I URI letar du efter "cgi", "exec" och andra termer som ropar "titta pĂ„ vilken programvara vi anvĂ€nder". Vill nĂ„gon Ă€gna hela sitt liv Ă„t Perl CGI-skript? Nej? DĂ„ tar du bort filĂ€ndelsen .pl. LĂ€s serverguiden om hur man gör det.
  • Disknamn. Kom igen! Men jag har sett sĂ„dana.

SÄ det bÀsta exemplet frÄn vÄr webbplats Àr helt enkelt

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


 rapport om protokollet frĂ„n W3C:s ordförandemöten.

Ämnen och klassificering enligt Ă€mnen

Jag kommer att gÄ in mer i detalj om denna risk, eftersom det Àr en av de saker som Àr svÄrast att undvika. Som regel hamnar Àmnen i URI nÀr du klassificerar dina dokument efter det arbete som utförs. Men denna uppdelning kommer att förÀndras över tid. Namnen pÄ omrÄdena kommer att förÀndras. PÄ W3C ville vi Àndra MarkUP till Markup, och sedan till HTML, för att Äterspegla innehÄllet i sektionen. Dessutom finns det ofta ett platt namnrum hÀr. Om 100 Är kommer du sÀkerligen inte vilja ÄteranvÀnda nÄgot? Under vÄr korta livstid har vi redan velat ÄteranvÀnda "Historier" och "Stilmallar", till exempel.

Detta Ă€r ett lockande sĂ€tt att organisera en webbplats – och faktiskt ett mycket lockande sĂ€tt att organisera vad som helst, inklusive hela nĂ€tet. Det Ă€r en utmĂ€rkt lösning pĂ„ medellĂ„ng sikt men har allvarliga nackdelar pĂ„ lĂ„ng sikt.

Delvis beror orsakerna pÄ filosofin kring betydelse. Varje term i sprÄket Àr en potentiell klustringsobjekt, och varje person kan ha en annan uppfattning om vad den betyder. Eftersom relationerna mellan subjekten liknar en spindelvÀv snarare Àn ett trÀd, kan Àven de som enas om spindelvÀven vÀlja en annan representation av trÀdet. Detta Àr mina (ofta upprepade) allmÀnna observationer kring farorna med hierarkisk klassificering som en generell lösning.

Faktum Àr att nÀr du anvÀnder ett Àmnesnamn i URI, binder du dig till en viss klassificering. Du kanske föredrar en annan variant i framtiden. DÄ kommer URI att vara utsatt för brott.

Anledningen till att anvĂ€nda Ă€mnesomrĂ„det som en del av URI Ă€r att ansvaret för sektionerna i URI-rymden vanligtvis delegeras, och dĂ„ behöver du namnet pĂ„ den organisatoriska enheten – en avdelning, grupp eller nĂ„got annat som bĂ€r ansvar för detta underomrĂ„de. Det Ă€r en bindning av URI till den organisatoriska strukturen. Denna Ă€r vanligtvis sĂ€ker endast nĂ€r det lĂ€ngre (till vĂ€nster) URI skyddas av ett datum: 1998/pics kan betyda för din server "det vi menade 1998 under pics", snarare Ă€n "det vi gjorde 1998 med det vi nu kallar pics".

Glöm inte domÀnnamnet

Kom ihĂ„g att detta gĂ€ller inte bara sökvĂ€gen i URI, utan Ă€ven servernamnet. Om du har separata servrar för olika saker, kom ihĂ„g att denna uppdelning inte kan Ă€ndras utan att förstöra mĂ„nga, mĂ„nga lĂ€nkar. NĂ„gra klassiska misstag som "titta pĂ„ vilken programvara vi anvĂ€nder idag" – domĂ€nnamnen "cgi.pathfinder.com", "secure", "lists.w3.org" Ă€r skapade för att underlĂ€tta serveradministration. Oavsett om domĂ€nen representerar en viss avdelning i ditt företag, dokumentstatus, Ă„tkomstrĂ€tt eller sĂ€kerhetsnivĂ„, var mycket, mycket försiktig innan du anvĂ€nder mer Ă€n ett domĂ€nnamn för flera typer av dokument. Kom ihĂ„g att du kan dölja mĂ„nga webbservrar bakom en synlig webbserver med hjĂ€lp av omdirigering och proxying.

Ja, och tÀnk ocksÄ pÄ ditt domÀnnamn. Du vill vÀl inte att folk ska referera till dig som soap.com efter att du bytt produktlinje och slutat producera tvÄl (Jag ber om ursÀkt till den som Àger soap.com just nu).

Slutsats

Att behĂ„lla URI:er i 2, 20, 200 eller till och med 2000 Ă„r Ă€r uppenbarligen inte sĂ„ enkelt som det verkar. ÄndĂ„ fattar webbansvariga beslut pĂ„ internet som verkligen försvĂ„rar denna uppgift i framtiden. Det hĂ€nder ofta eftersom de anvĂ€nder verktyg vars syfte Ă€r att presentera den bĂ€sta webbplatsen just nu – och ingen har bedömt vad som kommer att hĂ€nda med lĂ€nkarna nĂ€r allt förĂ€ndras. Men poĂ€ngen hĂ€r Ă€r att mycket, mycket kan förĂ€ndras, och dina URI:er kan och bör förbli desamma. Det Ă€r bara möjligt nĂ€r du tĂ€nker pĂ„ hur du skapar dem.

Se Àven:

TillÀgg

Hur man tar bort filÀndelser...

...frÄn URI pÄ den aktuella webbservern baserat pÄ filer?

Om du till exempel anvÀnder Apache kan du konfigurera det för att matcha innehÄll. BehÄll filÀndelsen (till exempel .png) i filen (till exempel, mydog.png), men det gÄr Àven att hÀnvisa till webbresursen utan det. Sedan kontrollerar Apache mappen för alla filer med det namnet och vilken tillÀgg som helst, och kan Àven vÀlja den bÀsta av uppsÀttningen (till exempel GIF och PNG). Och det Àr inte nödvÀndigt att placera olika filtyper i olika kataloger, faktiskt kommer innehÄllsöverensstÀmmelse inte att fungera om du gör det.

  • Konfigurera din server för innehĂ„llsöverensstĂ€mmelse
  • Se alltid till att lĂ€nkar refererar till URI utan tillĂ€gg

LÀnkar med tillÀgg kommer fortfarande att fungera, men tillÄter inte din server att vÀlja den bÀsta av de tillgÀngliga nuvarande och framtida formaten.

(Faktiskt, mydog, mydog.png och mydog.gif — giltiga webbresurser, mydog — Ă€r resurser av universell innehĂ„llstyp, och mydog.png och mydog.gif — resurser av specifik innehĂ„llstyp).

SjÀlvklart, om du skriver din egen webbserver, Àr det bra att anvÀnda en databas för att koppla permanenta identifierare till deras nuvarande form, Àven om du bör vara försiktig med obegrÀnsad tillvÀxt av databasen.

Skamlistan — Historia 1: Channel 7

Under 1999 följde jag stÀngningen av skolor pÄ grund av snö via sidan http://www.whdh.com/stormforce/closings.shtml. Ska man verkligen vÀnta pÄ att informationen ska dyka upp lÀngst ner pÄ tv-skÀrmen? Jag lade en lÀnk till den frÄn min hemsida. Den första stora snöstormen 2000 intrÀffar och jag kontrollerar sidan. Det stÄr:

— Vid status.
För nÀrvarande Àr ingenting stÀngt. VÀnligen Äterkom vid vÀdervarningar.

Kan inte vara, en sÄ stark storm. Roligt nog saknas datumet. Men om du gÄr till startsidan sÄ finns det en stor knapp "StÀngda skolor" som leder till sidan http://www.whdh.com/stormforce/ med en lÄng lista över stÀngda skolor.

Kanske de har Ă€ndrat systemet för att fĂ„ listan — men de behövde inte Ă€ndra URI.

Skamlistan — Historia 2: Microsoft Netmeeting

Med den vĂ€xande beroendet av internet kom den kloka idĂ©n att man kunde införa lĂ€nkar till tillverkarens webbplats i applikationer. Detta anvĂ€ndes ofta och missbrukades kraftigt, men — man kan inte Ă€ndra URL. Bokstavligt talat för nĂ„gra dagar sedan provade jag en lĂ€nk frĂ„n Microsoft Netmeeting 2/something i menyn HjĂ€lp/Microsoft pĂ„ webben/Gratis grejer, jag fick ett fel 404 — inget svar frĂ„n servern. Kanske har de redan lagat det


©1998 Tim BL

Historisk anmÀrkning: i slutet av 1900-talet, nÀr detta skrevs, var "cool" ett epitet av godkÀnnande, sÀrskilt bland ungdomar, som pekade pÄ trendighet, kvalitet eller lÀmplighet. I brÄdska valdes URI-vÀgen ofta för dess "coolhet" snarare Àn dess anvÀndbarhet eller hÄllbarhet. Denna notering Àr ett försök att omdirigera energin bakom sökandet efter coolhet.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster