Protocolo HTTP

¿Que es el protocolo HTTP?

El http (del inglés HyperText Transfer Protocol o Protocolo de Transferencia de Hiper Textos) es el protocolo de transmisión de información de la World Wide Web, es decir, el código que se establece para que el computador solicitante y el que contiene la información solicitada puedan “hablar” un mismo idioma a la hora de transmitir información por la red.

Estructura

  • Linea inicial
  • Para peticiones, incluye el método (como GET o POST), la URL del recurso solicitado y la versión del protocolo (por ejemplo, HTTP/1.1).

    Para respuestas, contiene la versión del protocolo, un código de estado (como 200 OK) y una frase descriptiva.

  • Encabezado
  • Proporcionan metadatos sobre la petición o respuesta. Cada encabezado sigue el formato Nombre: Valor, y su presencia es opcional. Ejemplos incluyen:

  • Content-Type: Tipo de contenido (e.g., text/html).
  • User-Agent: Información sobre el cliente que realiza la solicitud.
  • Cuerpo
  • Contiene los datos que se intercambian. En una petición, puede incluir datos enviados al servidor, mientras que en una respuesta, puede incluir el contenido solicitado.

    Metodos de peticion

    Los métodos HTTP son verbos que indican la acción que el cliente desea realizar sobre un recurso. Los más comunes son:

  • GET: Solicitar un recurso.
  • Descripción: Solicita una representación de un recurso específico.

    Uso: Recuperar datos sin modificar el estado del servidor. Es el método más utilizado en la web.

    Ejemplo: Obtener una página web o un archivo.

  • POST: Enviar datos al servidor.
  • Descripción: Envía datos al servidor para crear o actualizar un recurso.

    Uso: Enviar información, como formularios. No es idempotente, lo que significa que múltiples solicitudes pueden tener efectos diferentes.

    Ejemplo: Enviar un formulario de contacto.

  • PUT: Actualizar un recurso existente.
  • Descripción: Reemplaza todas las representaciones actuales del recurso de destino con los datos proporcionados en la solicitud.

    Uso: Actualizar información existente en el servidor. Es idempotente, lo que significa que múltiples solicitudes tienen el mismo efecto.

    Ejemplo: Actualizar un perfil de usuario.

  • DELETE: Eliminar un recurso.
  • Descripción: Elimina un recurso específico en el servidor.

    Uso: Borrar datos o archivos.

    Ejemplo: Eliminar un comentario en una publicación.

    Codigos de respuesta

    Los códigos de respuesta del protocolo HTTP son fundamentales para indicar el resultado de una solicitud realizada por un cliente a un servidor.

  • 1xx: Respuestas Informativas
  • Estos códigos indican que la solicitud ha sido recibida y que el proceso continúa.

    100 Continue: El cliente puede continuar con su solicitud.

    101 Switching Protocols: El servidor acepta cambiar a un protocolo diferente.

  • 2xx: Éxito
  • Los códigos en esta categoría indican que la solicitud fue recibida, entendida y aceptada.

    200 OK: La solicitud fue exitosa. Dependiendo del método, puede incluir datos en el cuerpo de la respuesta.

    201 Created: La solicitud ha sido cumplida y se ha creado un nuevo recurso.

    204 No Content: La solicitud fue exitosa, pero no hay contenido para enviar.

  • 3xx: Redirección
  • Estos códigos indican que se requiere una acción adicional para completar la solicitud.

    Los códigos en esta categoría indican que la solicitud fue recibida, entendida y aceptada.

    301 Moved Permanently: El recurso solicitado ha sido movido permanentemente a una nueva URL.

    302 Found: El recurso solicitado ha sido encontrado, pero temporalmente en una URL diferente.

    304 Not Modified: El recurso no ha sido modificado desde la última solicitud, por lo que se puede usar la versión en caché.

  • 4xx: Errores del Cliente
  • Los códigos de esta categoría indican que hubo un error en la solicitud del cliente.

    400 Bad Request: La solicitud no puede ser procesada debido a sintaxis incorrecta.

    401 Unauthorized: Se requiere autenticación para acceder al recurso solicitado.

    404 Not Found: El recurso solicitado no se pudo encontrar en el servidor.

  • 5xx: Errores del Servidor
  • Estos códigos indican que el servidor falló al completar una solicitud válida.

    500 Internal Server Error: Se produjo un error inesperado en el servidor.

    502 Bad Gateway: El servidor, al actuar como puerta de enlace o proxy, recibió una respuesta no válida de un servidor ascendente.

    503 Service Unavailable: El servidor no está disponible temporalmente, generalmente debido a sobrecarga o mantenimiento.