Älä uudelleenohjaa virheen sattuessa

ASP.NET:ssä voi asettaa mukautetun virheilmoitussivun kullekin HTTP:n tilakoodille (esimerkiksi 404 tai 500). Kun virhe sattuu, käyttäjä uudelleenohjataan sopivalle sivulle. Tässä tavassa on ainakin kolme asiaa väärin:

  1. Jos kävijä kirjoitti osoitteen käsin ja teki virheen, ei tuota virhettä voi helposti korjata, koska osoite vaihtuu.
  2. HTTP-viestiketju on kummallinen. Pyydetty resurssi löytyi, mutta osoitteessa, jota ei ole tai jossa sattui palvelinvirhe. Anteeksi mitä?
  3. Palvelinvirheen (500) sattuessa olisi fiksua näyttää viesti, jossa yhtenä vinkkinä kehotetaan yrittämään hetken kuluttua uudelleen. Jos tälle sivulle on uudelleenohjattu, ei toimintoa voikaan enää yrittää vain sivua päivittämällä. Käyttäjä saattaisi odottaa jotain muuta.

Esimerkki: MSDN:n kotisivu on msdn.microsoft.com. Voisi siis hyvin arvata, että ladattavat tiedostot löytyisivät osoitteesta http://msdn.microsoft.com/download/. Kokeile tuota osoitetta ja katso mitä tapahtuu. Oikea polku olisi ollut “downloads”, mutta yritäpä korjata se yhdellä näppäimellä nyt, kun osoite onkin http://msdn.microsoft.com/404/default.aspx.

(ASP.NET:ssä tämän voi korjata tarttumalla virheeseen Application_Error-metodissa global.asax:n codebehindissa ja tekemällä Server.Transfer:n oikeaan osoitteeseen. IIS:ssä ei ole tätä ongelmaa, vain ASP.NET:ssä.)

One Reply to “Älä uudelleenohjaa virheen sattuessa”

Comments are closed.