Problemas com `reload` • Quando um script faz modificaç˜oes na BD
Transcrição
Problemas com `reload` • Quando um script faz modificaç˜oes na BD
Problemas com ’reload’ • Quando um script faz modificações na BD, pode haver problemas quando se faz ’reload’ ou ’refresh’. • Ao fazer ’reload’, o script é executado novamente, o que é indesejável. 1 Servidor Web Browser utilizador insere dados num form e clica em Submit POST 200 OK script processa pedido, insere um tuplo na BD e responde ’ok’ ...<h1>OK</h1>... utilizador faz Reload POST 200 OK script processa pedido, e tenta inserir o mesmo tuplo! ...<h1>OK</h1>... 2 Solução: redireccionar para uma nova página • Envia-se um cabeçalho HTTP, Location: • Ao fazer ’reload’, o problema deixa de exitir. 3 Servidor Web Browser utilizador insere dados num form e clica em Submit POST script processa pedido, insere um tuplo na BD e redirecciona para uma nova pagina. 301 Moved K o.php?Status=O ltad Location: resu browser faz pedido imediato para resultado.php GET resu ltad o.php?Sta tus=OK script responde OK. 200 OK utilizador faz Reload ...<h1>OK</h1>... GET resu lt ado.php? Status=O K 200 OK ...<h1>OK</h1>... script responde OK. (nao existe tentativa de nova insercao do tuplo). 4