Napake 404, 403, 500 …
Del vsadanjika, ki ga preživim za računalnikom, med drugim namenim izdelavi “skeleton” web aplikaciji, ki jo bom v prihodnje uporabljal pri vseh mojih spletnih projektih. V želji, da bi bil izdelek čim bolj robusten in uporabniku prijazen, sem že v začetku precej razmišljal o morebitnih napakah, ki se lahko pojavijo, ter ustreznemu reagiranju na njih. Nastal je “Error Handler” ki skrbi za dve[1] najbolj pogosti napaki spletnega protokola HTTP.



Napaka 404
ali strani ni mogoče najti je standardna napaka spletnega protokola HTTP, ki jo spletni strežnik javi brskalniku, ko zahtevanega spletnega dokumenta ne najde. Ta napaka je ponavadi posledica “zatipkanja” naslova spletnega mesta, ali pa nastane če iščemo stran ki je bila premaknjena oziroma izbrisana. Privzeta stran, ki jo prikaže brskalnik, pri tej napaki je bolj skopa.

404 Error - Apache
“404 Not Found” v naslovu če gre za Apache.

404 IIS
“Page cannot be found” v pimeru IIS-ja.

Čeprav ni nobenega security riska[2], je vse skupaj grdo, ter uporabniku neprijazno.
Z veliko žalostjo opažam, da večina razvijalcev in webmasterjev še vedno “prezira” 404 napako. Kmica[3] mi je pa padla na oči, ob ugotovitvi, da so tudi podjetja, ki se ukvarjajo z izdelavo spletnih strani enako ignorantska.

Osebno kot razvijalcu in skrbniku spletnih strani, se mi zdi pomembno, da dobim obvestilo[4], ko pride do napake v spletni aplikaciji, da lahko na njo ustrezno reagiram.

Napaka 500
500 Internal Server Error - Apacheali interna napaka na strežniku je standardna napaka spletnega protokola HTTP, ki pove da je šlo nekaj narobe na strežniku na katerem se nahaja spletna stran, ampak strežnik ne ve natančno za kakšen problem gre. Napaka je tipa “server-side”, kar pomeni, da ni nič narobe z našim računalnikom ali internetno povezavo, temveč je kriv spletni strežnik. Web strežnik bi moral generirati interni error log v katerem se nahaja podroben opis napake. Za skrbnika spletne strani je toliko bolj pomembno da na tako napako čimprej reagira. Sistem dodatnega obveščanja po elektronski pošti postane nujno zlo.

Moč “Error Handlerja”

Na večini spletnih strežnikov je možno te napake prirediti tako, da prikažejo stran, ki je v večjo pomoč kot privzete. V popularnem spletnem strežniku Apache to storimo na preprosti način tako, da postavimo datoteko .htaccess na spletni strežnik.

ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

Moj “Error Handler” ni tako prepost, saj je vkomponiran v web aplikacijo in lovi naslednje errorje[5]:

404 Error - Not Found
404 Error – Not Found

500 Error - Internal Server Error
500 Error – Internal Server Error : “pohendla” tudi vse Exceptione, ki jih “vrže” spletna aplikacija

403 Error - Forbidden
403 Error – Forbidden : v aplikacijo je vkomponiran Acl, ki skrbi za avtorizacijo uporabnikov. V primeru, da uporabnik hoče dostopat do neavtoriziranega dela, aplikacija vrže 403 napako.

V bližnji prihodnosti bom obelodanil še “code snippet” za preprost error handler za PHP na Apache-ju[6].

Happy blogging(coding)!

  1. v bistvu handlam tri []
  2. Pri Apacheju se ponavadi izpiše tudi verzija. Če ta ni vsaj verzija 1.3.37, je strežnik lahko kar hitro tarča hekerskega napada. []
  3. prekmursko: tema []
  4. mail, RSS, … []
  5. z malce sarkazma, obenem pa pošlje še obvestilo o napaki po elektronski pošti []
  6. če bo želja tudi za ASP na IIS-u []

Sorodni zapisi: