Código HTTP
Los códigos de estado de respuesta HTTP indican si se ha completado satisfactoriamente una solicitud HTTP
específica. Cuando un cliente realiza una solicitud al servidor, los códigos de estado le permiten saber si la
solicitud se realizó correctamente, ha fallado o algo diferente. Los códigos de estado son mantenidos por
el Internet Assigned Numbers Authority (IANA). Las respuestas se agrupan en cinco clases:
En principio, los códigos de estado HTTP se dividen en cinco categorías diferentes, identificadas a su vez, por
el primer dígito del código. Por ejemplo, el código de estado HTTP 200 forma parte del tipo de respuesta 2xx,
el código 404 del tipo de respuesta 4xx. Esta clasificación se deriva principalmente de la importancia y la
función de los códigos de estado, divididos principalmente en 5 tipos:
Códigos de estado 1xx – Información: Cuando se envía un código de estado HTTP 1xx, el servidor
le notifica al cliente que la petición actual aún continúa. Esta clase reúne y proporciona información
sobre el procesamiento y envío de una solicitud.
Códigos de estado 2xx – Éxito: Los códigos que comienzan con un 2 informan sobre una operación
exitosa. Cuando se reciben este tipo de respuestas quiere decir que la solicitud del cliente fue recibida,
comprendida y aceptada. Es muy frecuente que los códigos 2xx sean envíados desde el servidor junto
con los datos de la página web deseada. Por lo general, el usuario solo percibe la web solicitada.
Códigos de estado 3xx – Redirecciones: Aquellos códigos que comienzan con 3 indican que la
solicitud ha sido recibida por el servidor. Sin embargo, para asegurar un procesamiento exitoso es
necesario que el cliente tome una acción adicional. Este tipo de códigos aparecen principalmente
cuando hay redirecciones.
Códigos de estado 4xx – Errores del cliente: Cuando aparece un código 4xx quiere decir que se ha
presentado un error de cliente. Esto quiere decir que el servidor ha recibido la solicitud, pero esta no se
puede llevar a cabo. Una de las principales causas de este tipo de respuestas son las solicitudes
defectuosas. Los usuarios de Internet son informados de este error por medio de una página HTML
generada automáticamente.
Códigos de estado 5xx –Errores del servidor: El servidor indica un error propio cuando usa un
código 5xx. Este tipo de respuestas indican que la solicitud correspondiente está temporalmente
deshabilitada o es imposible de llevar a cabo. De nuevo, se generará automáticamente una página en
formato HTML.
Códigos de estado HTTP 1xx
100 – Coninue. Este código de estado notifica que el servidor ha recibido la primera petición y
está esperando recibir más instrucciones del navegador.
101 – Switching Protocols. Se utiliza cuando el servidor acepta un cambio propuesto por el
navegador. Por ejemplo, un cambio de HTTP 1.0 a HTTP 1.1.
102 – Processing. El servidor ha recibido la petición, pero no la ha completado. Esto evita que
el navegador interprete que la petición se ha perdido, si no que todavía no ha finalizado.
103 – Checkpoint. Se utiliza para reanudar una petición que previamente fue perdida o
cancelada.
Códigos de estado HTTP 2xx
200 – OK. Se utiliza cuando la petición fue completada de manera exitosa. Como este código
indica que “todo está bien” no suele mostrarse al usuario final.
201 – Created. La petición del navegador se completó correctamente y se creó un nuevo
recurso.
203 – Non-Authoritative Information. La petición del navegador se completó correctamente,
pero el contenido corresponde a un servidor diferente al que se ha realizado la petición.
204 – No Content. La petición del navegador se completó correctamente, pero la respuesta no
muestra ningún tipo de contenido.
205 – Reset Content. Se utiliza cuando la petición del usuario se completa, pero es necesario
volver a cargar la página. Es muy habitual cuando se envían datos a través de un formulario de
contacto y se recarga la página.
206 – Partial Content. Se utiliza cuando la petición se completa, pero solo se devuelve parte
del contenido solicitado.
207 – Multi-Status. Se devuelve un archivo XML que contiene varias respuestas diferentes, en
función de las peticiones realizadas.
Códigos de estado HTTP 3xx
300 – Multiple Choices. Ante una solicitud, existe más de una opción para acceder al mismo
recurso.
301 – Moved Permanently. El recurso solicitado se movió de forma permanente y el
navegador es redirigido automáticamente a la nueva ubicación. Las redirecciones 301 son una
buena opción para que Google no nos penalice si tenemos demasiados errores 404 en nuestra
web.
302 – Moved Temporarily. El recurso solicitado se movió de forma temporal y el navegador es
redirigido automáticamente a esa nueva ubicación.
303 – See Other. Este código indica que el recurso solicitado se movió, pero no hay ninguna
redirección hecha.
304 – Not Modified. Este código de estado se da cuando el navegador pregunta al servidor si
el recurso ha sido movido desde la última vez que lo consultó, y este no ha sido cambiado.
305 – Use Proxy. Este código HTTP se utiliza cuando el recurso solicitado debe obtenerse a
través de un proxy Location situado en la cabecera.
306 – Switch Proxy. En la actualidad este código de estado HTTP ya no se utiliza, pero se
reserva para futuros casos.
307 – Temporary Redirect. El recurso que solicita el navegador se puede obtener en otro
lugar, pero únicamente para esta petición. Para próximas peticiones se puede utilizar la
ubicación original.
308 – Permanent Redirect. El recurso que solicita el navegador se encuentra en otra
ubicación y el cambio es permanente. A diferencia del código HTTP 301, no se cambia el
método HTTP para la nueva petición.
Códigos de estado HTTP 4xx
400 – Bad Request. El servidor no entiende la petición del navegador porque la sintaxis no es
correcta.
401 – Unauthorized. La petición que realiza el navegador precisa autenticación.
402 – Payment Required. Es un código HTTP reservado para futuros usos.
403 – Forbidden. La petición que realiza el navegador es correcta, pero se ha denegado el
acceso al recurso solicitado.
404 -Not Found. El recurso que solicita el navegador no se encuentra o no está disponible en
el servidor. No es posible detectar si esta ausencia es temporal o permanente.
405 – Method Not Allowed. El navegador utiliza un método para obtener el recurso que no es
aceptado por el servidor.
406 – Not Acceptable. El recurso solicitado tiene un formato que no es aceptado por el
navegador.
407 – Proxy Authentification Required. Un código de estado similar al 401, pero en este
caso el navegador debe autenticarse primero mediante un proxy.
408 – Request Timeout. Este código HTTP se muestra cuando el navegador ha tardado tanto
tiempo en realizar su petición que el servidor ya no la espera.
409 – Conflict. No se pudo completar la petición porque se produjo un conflicto con el recurso
solicitado.
410 – Gone. No es posible encontrar el recurso solicitado y la ausencia se considera
permanente. Si hay alguna posibilidad de que esta ausencia sea temporal, se debe utilizar el
código HTTP 404.
411 – Length Required. El servidor devuelve este código HTTP cuando la petición no incluye
la cabecera Content-Length adecuada.
414 – Request-URI Too Long. La URL que se corresponde con la petición realiza es
demasiado larga para ser procesada. Esto ocurre cuando una dirección tiene muchos
parámetros.
423 – Locked. Se muestra este código HTTP cuando el recurso solicitado está bloqueado.
429 – Too Many Request. El navegador realiza demasiadas peticiones en un período de
tiempo determinado.
Códigos de estado HTTP 5xx
500 – Internal Server Error. No se puede completar la petición, ya que se ha producido un
error inesperado en el navegador.
501 – Not implemented. El servidor no soporta alguna funcionalidad necesaria para responder
a la solicitud que realiza el navegador.
502 – Bad Gateway. El servidor no puede responder con la petición del navegador, ya que
este servidor está actuando como proxy o gateway, o tiene instalado un proxy inverso y ha
recibido una respuesta no válida desde dicho servidor.
503 – Service Unavailable. El servidor no puede responder a la petición del navegador porque
está saturado o se están realizando tareas de mantenimiento en el mismo.
504 – Gateway Timeout. El servidor no puede responder con la petición del navegador, ya
que este servidor está actuando como proxy o gateway, o tiene instalado un proxy inverso y se
ha agotado el tiempo de respuesta de dicho servidor.
505 – HTTP Version Not Supported. El servidor no es compatible con la versión del protocolo
HTTP utilizada en la petición del navegador.
509 – Bandwidth Limit Exceeded. Es un código HTTP muy utilizado en cPanel y se muestra
cuando se ha alcanzado el límite de ancho de banda y no se puede procesar la petición.
510 – Not Extended. Este código se muestra cuando es necesario añadir más extensiones al
servidor para que pueda procesar la petición.
511 – Network Authentification Required. El navegador debe autenticarse para poder
cumplir las peticiones.
Métodos de petición HTTP
HTTP define un conjunto de métodos de petición para indicar la acción que se desea realizar para un recurso
determinado. Aunque estos también pueden ser sustantivos, estos métodos de solicitud a veces son
llamados HTTP verbs. Cada uno de ellos implementan una semántica diferente, pero algunas características
similares son compartidas por un grupo de ellos.
GET: solicita un recurso
Idempotente (múltiples peticiones iguales producirán el mismo resultado).
Retorna la representación del recuso en formato XML o JSON y el código de respuesta 200. Si el recuso no es
encontrado, retornara 404. Si la petición esta mal formada, retornara código 4000.
POST: crear un recurso
No idempotente. El nuevo recuso suele subordinarse a alguna entidad “padre” (ejemplo: un registro en una
base de datos). Ubicación o información del recurso creado. Si el recurso no tiene URL, se utiliza el código 200
o el 204.
DELETE: Eliminar un recurso
Idempotente. Elimina el recurso identificado mediante un URL. Retorna el código 200 si la respuesta incluye un
cuerpo descriptivo, 204 si no lo incluye o 202 si el procesamiento de la petición fue encolado.
PUT: actualizar/ reemplazar recurso
Idempotente. Se debe enviar el recurso completo a actualizar, en su versión modificada. Si el recurso no existe,
lo crea. El código 200 o 204 indica éxito. El código 201 se utiliza cuando el recurso fue creado.
PATCH: Actualizar/ modificar recurso
No idempotente. Permite una actualización parcial (solo requiere los campos a modificar), indicando operación
a realizar: add, replace, remove, copy, move, test. Retorna 200 o 204 si se pudo modificar. 404 si el recurso no
fue encontrado.
HEAD:
El método HEAD pide una respuesta idéntica a la de una petición GET, pero sin el cuerpo de la
respuesta.
CONNECT:
El método CONNECT establece un túnel hacia el servidor identificado por el recurso.
OPTIONS:
El método OPTIONS es utilizado para describir las opciones de comunicación para el recurso de
destino.
TRACE:
El método TRACE realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al recurso
de destino.
PATCH:
El método PATCH es utilizado para aplicar modificaciones parciales a un recurso.