RSS

Rozbudowa serwisu WWW: zgodność wsteczna

Liczba odsłon: 181

Serwisy WWW nie są two­ra­mi nie­za­leż­ny­mi, któ­rych zwie­dza­nie roz­po­czy­na się za każ­dym ra­zem od stro­ny ty­tu­ło­wej. Każda po­waż­na roz­bu­do­wa ser­wi­su WWW – jak choć­by ta, któ­rą nie­daw­no prze­pro­wa­dzi­łem – mu­si być rea­li­zo­wa­na z za­cho­wa­niem jak naj­da­lej po­su­nię­tej zgod­no­ści wstecz­nej.

W ostat­nim wpi­sie blo­gu przed blis­ko czte­ro­let­nią przer­wą wspo­mi­na­łem o sys­te­mie Xanadu, któ­re­go ce­lem by­ło za­pew­nie­nie peł­nej spój­no­ści in­for­mac­ji w Inter­ne­cie. Nigdy nie uda­ło się te­go osiąg­nąć. Używany po­wszech­nie sys­tem WWW jest cał­ko­wi­tym prze­ci­wień­stwem Xanadu, a od­noś­ni­ki two­rzo­ne w nim dzi­siaj, ju­tro łat­wo mo­gą pro­wa­dzić w ni­cość. Jest to szcze­gól­nie nie­ko­rzyst­ne, gdy do­ce­lo­wa in­for­mac­ja wciąż jest do­stęp­na w ra­mach ser­wi­su, a zmie­nił się je­dy­nie jej adres.

Przy prze­bu­do­wie ser­wi­su WWW zmia­na adre­sów po­szcze­gól­nych ma­teria­łów jest naj­częś­ciej nie­zbęd­na. W moim przy­pad­ku by­ła ko­niecz­na z wie­lu po­wo­dów. Po pierw­sze, zmie­ni­łem cał­ko­wi­cie archi­tek­tu­rę, od­dziel­ne skryp­ty PHP od­po­wia­da­ją­ce za po­szcze­gól­ne mo­du­ły za­stę­pu­jąc cen­tral­nym kon­tro­le­rem do­ko­nu­ją­cym wa­li­da­cji klienta i pa­ra­met­rów oraz ge­ne­ru­ją­cym właś­ci­wą stro­nę ser­wi­su. Po dru­gie, uproś­ci­łem w spo­rym za­kre­sie po­stać adre­sów URL, re­zyg­nu­jąc z nad­mia­ro­wych czło­nów. Po trze­cie, zin­teg­ro­wa­łem funkcjo­nal­ność roz­dzie­lo­ną do­tych­czas po­mię­dzy kil­ka stron WWW. Na przy­kład, o ile w po­przed­niej wer­sji ser­wi­su wi­do­ki spi­su treś­ci blo­gu, wpi­su blo­gu, treś­ci ar­ty­ku­łu oraz treś­ci ko­men­ta­rzy by­ły rea­li­zo­wa­ne przez czte­ry skryp­ty o róż­nych adre­sach, w no­wej wer­sji wszyst­kie te in­for­mac­je są za­war­te na jed­nej stro­nie.

Gdybym jed­nak na tym po­prze­stał, spra­wił­bym moim czy­tel­ni­kom spo­ro prob­le­mów, a sam ska­zał­bym się na mniej­szą licz­bę od­wie­dzin. Wszyscy ci, któ­rzy ma­ją za­pi­sa­ne od­noś­ni­ki do kon­kret­nych ma­teria­łów znaj­du­ją­cych się na mo­jej stro­nie, przy każ­dej wi­zy­cie tra­fia­li­by na in­for­mac­ję o ich bra­ku i moż­li­we, że nie chcia­ło­by im się szu­kać ich po­now­nie. Podobnie ci, któ­rzy zna­leź­li­by mo­ją stro­nę za po­śred­nic­twem wy­szu­ki­wa­rek inter­ne­to­wych, przez dłu­gi czas – do­pó­ki ba­zy wszyst­kich wy­szu­ki­wa­rek nie zo­sta­ły­by zaktua­li­zo­wa­ne – bez­po­śred­nio z li­sty wy­ni­ków tra­fia­li­by na stro­nę błę­du 404. Nie wiem, czy jest coś bar­dziej znie­chę­ca­ją­ce­go.

Dlatego za każ­dym ra­zem, gdy prze­no­si­łem in­for­mac­je pod in­ne adre­sy i usu­wa­łem ge­ne­ru­ją­cy je skrypt, two­rzy­łem w je­go miej­scu za­mien­nik. Jego za­da­niem jest wy­ge­ne­ro­wać na pod­sta­wie otrzy­ma­nych pa­ra­met­rów no­wy adres URL i auto­ma­tycz­nie prze­kie­ro­wać czy­tel­ni­ka na no­wą, właś­ci­wą stro­nę. W ten spo­sób każ­dy, kto tra­fi pod sta­ry adres – czy to za­pi­sa­ny w za­kład­kach, czy pa­mię­ta­ny przez wy­szu­ki­war­kę – po­wi­nien otrzy­mać do­kład­nie to, po co od­wie­dził mo­ją stro­nę.

Za ja­kiś czas, gdy w dzien­ni­ku ser­we­ra HTTP prze­sta­ną po­ja­wiać się od­wo­ła­nia do nie­po­praw­nych już adre­sów URL, bę­dę mógł usu­nąć z ser­we­ra te za­mien­ni­ki. Na ra­zie jed­nak nie­wiel­kim kosz­tem pod­no­szą ja­kość mo­je­go ser­wi­su i mam na­dzie­ję, że zwięk­sza­ją wy­go­dę do­stę­pu do je­go treś­ci.