2004-04-15

303 See Other

Pienoinen vinkki kaikille web-sovellusten kehittäjille: kannattaa käydä tutkimassa HTTP/1.1-standardista tilakoodin 303 selitys. Käytännössä kyse on väliaikaisesta uudelleenohjauksesta, joka kuitenkin aina toteutetaan GET-metodia käyttäen, alkuperäisestä metodista riippumatta.

Kun on POST-metodia käyttäen esimerkiksi aloittanut uuden keskusteluketjun, voi koodi 303:lla ohjata selaimen tarkastelemaan tätä luotua ketjua. Tästä on kaksi hyötyä:

1. Selaimen osoiterivillä näkyy nyt uuden kohteen osoite, jonka käyttäjä voi copypastettaa esimerkiksi mailiin.

2. Edellinen-painiketta (back button) käytettäessä ei ärsyttävää uudelleenlähetyskyselyä näytetä eikä lomakkeen tietoja voi lähettää vahingossa uudelleen.

Koodi 303 on kätevä myös esimerkiksi ostoskärryjen, kyselyiden ja ilmoittautumislomakkeiden toteuttamiseen. Pienenä huomautuksena mainittakoon, että koodia käytettäessä pitää muistaa tutkia kyselyn HTTP-versio ja lähettää HTTP/1.0-selaimille vastauksena koodi 302*. Selaintuesta sen verran että ainakin Mozilla-pohjaiset selaimet ja Internet Explorer tukevat koodi 303:sta oikein soveliaasti.

* Huomaa että HTTP/1.0:n koodi 302, Moved Temporarily, on merkitykseltään hieman erilainen kuin HTTP/1.1:n koodi 302, Found. Käytännössä ne tekevät saman asian, mutta on hyvä pysyä selvillä myös tällaisista pikkueroista.