Errores HTTP

En algunas veces cuando realizamos una solicitud a un servidor web (http) resulta que sucede un error, cuando sucede dicho evento de error lo que hacen los servidores web (p.e. demonio apache) es muestrar una salida de error, por ejemplo el mas clásico error 404 page no found! lo ideal es tratar de reducir a mayor medida los errores en nuestro servidor sin embargo muchos errores son inevitables(como el 404) , en estas ocaciones la mejor solución(según mi opinión) es la de; tratar el error como una excepción veamos como hacer esto, asumiendo que estamos trabajando en un servidor Apache con soporte PHP.

Errores a implementar:

Errores de cliente

HTTP 400

Solicitud mala. Ocurre generalmente cuando se escriben errores de sintaxis en una petición web (en la dirección del navegador). Si se obtiene un error 400, es necesario revisar que todos los caracteres están escritos correctamente.

HTTP 401

Sin autorización. Ocurre cuando se intenta entrar a un directorio que requiera autenticación, y no se introduzca la contraseña±a correcta. También ocurre cuando ese directorio ha negado explícitamente el permiso para entrar a nuestra dirección IP (se le conoce como banning).

HTTP 402

Requiere de pago. Similar al error 401, pero se usa para especificar que para poder autenticarse es necesario realizar un pago al propietario del servidor.

HTTP 403

Prohibido. Ocurre cuando se hace alguna petición HTTP que no está permitida en un sitio, como por ejemplo listar directorios en algunos sistemas.

HTTP 404

No encontrado. La dirección que usted introdujo no existe en el servidor web. En esos casos es importante comunicarlo a la persona responsable de la página, o revisar por ejemplo si se escribiá “.htm” en vez de “.html” (o viceversa).

HTTP 407

Se requiere autenticación del proxy. En muchas empresas, hay páginas que sálo deben de ser vistas por personal interno de la compañía. Para ello, se establecen servidores conocidos como “proxies”, los cuales administran todas las transacciones entre los usuarios autorizados y TODAS las páginas. Sin embargo, se puede hacer que una página simplemente no permita desplegar la información si no es un usuario autenticado a través de este servidor.

HTTP 415

Tipo de medio no soportado. Ocurre generalmente cuando se intenta hacer una petición de servicio administrada por el servidor, y el cliente no cuenta con los medios. Un caso típico es el tratar de ver un archivo Flash en el explorador, cuando este en realidad no tiene.

Errores de servidor

HTTP 500

Error Interno del Servidor. Cuando se obtiene este error, significa que el “script” que se estaba ejecutando (generalmente es un archivo .cgi, .asp, .php, .cfm, etc.) tuvo un error. Hay lenguajes que además del error 500 envían una explicación del error (como PHP), pero otros simplemente envían el error. Cuando esto ocurre, no existe nada que el usuario pueda hacer. El error tiene que ser corregido por el administrador del sitio.

HTTP 501

No implementado. Significa que el servidor no entiende la petición o la instrucción que el cliente la ha hecho. En la mayoría de los casos, ocurre que el administrador explícitamente ha denegado el uso de determinado servicio en el servidor.

HTTP 502

Gateway incorrecto. Un gateway es un enlace de datos entre el cliente y el servidor, que usualmente se usar para pasar variables de las formas, subir imágenes y archivos, etc. Existen 2 formas de pasar datos: una enviándola a través de la petición web (mejor conocida como GET), y otra enviándola a través de un gateway (conocida como POST). Si este gateway no es correctamente configurado, o es demasiado grande, o trata de ejecutar una función prohibida, se desplegará este error.

HTTP 503

Servicio no disponible. Relacionado con el error anterior. Este error se refiere particularmente al hecho de que el método POST no está permitido en el servidor, y algún formulario lo utilice. Si usted es el creador de la forma, utilice el método GET en la medida de lo posible o contacte a su administrador del servidor para que active el servicio de gateway. Si usted es un usuario, comunique al creador del sitio de este problema.

fuente: http://www.webpymes.cl/?cat=42

Ahora para implementar los errores utilizaremos una directiva definida por Apache la cual se deberá poner en el archivo .htaccess.

Mas info configuración .htaccess : http://httpd.apache.org/docs/1.3/howto/htaccess.html

Configurando el archivo .htaccess :

ErrorDocument 401 /error.php?errno=401
ErrorDocument 402 /error.php?errno=402
ErrorDocument 403 /error.php?errno=403
ErrorDocument 404 /error.php?errno=404
ErrorDocument 407 /error.php?errno=407
ErrorDocument 415 /error.php?errno=415
ErrorDocument 500 /error.php?errno=500
ErrorDocument 501 /error.php?errno=501
ErrorDocument 502 /error.php?errno=502
ErrorDocument 503 /error.php?errno=503

Como podemos ver todos van direccionamiento hacia el archivo error.php y lo único que cambiamos es el parámetro de error denominado como errno.

Veamos como quedaría:

Creando el archivo error.php

<?php

if(!isset($_GET[“errno”])){

header(“Location: http://localhost&#8221;);

exit;

}

?>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>

<html lang=”en”>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>

<title>..:: ERROR! ::..</title>

</head>

<body>

<?php

function accionError($type){

switch($type){

case “400”:

//acción error

break;

case “401”:

//acción error

break;

case “402”:

//acción error

break;

case “403”:

//acción error

break;

case “404”:

//acción error

break;

case “407”:

//acción error

break;

case “415”:

//acción error

break;

case “500”:

//acción error

break;

case “501”:

//acción error

break;

case “502”:

//acción error

break;

case “503”:

//acción error

}

echo “Error:”.$type;

}

$datos = array( “400”=>”Solicitud mala.”,

“401”=>”Sin autorizaci&oacute;n. “,

“402”=>”Sin autorizaci&oacute;n Requiere de pago. “,

“403”=>”Zona prohibida.”,

“404”=>”P&aacute;gina no encontrada.”,

“407”=>”Se requiere autenticaci&oacute;n del proxy.”,

“415”=>”Tipo de medio no soportado.”,

“500”=>”Error Interno del Servidor.”,

“501”=>”Servicio no implementado”,

“502”=>”Gateway incorrecto”,

“503”=>”Servicio no disponible”

);

$sal = accionError($_GET[‘errno’]).”</h3>”.$datos[$_GET[‘errno’]];

echo “<h3>”.$sal;

echo “http://localhost/&#8221;.

$_SERVER[‘REQUEST_URI’];

?>

</body>

</html>

Por ultimo dejo el Script comprimido espero sea de utilidad:

http://www.mundosica.com/descargas/scripts/errorHttp.zip

Anuncios

One thought on “Errores HTTP

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s