HTTP
Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, el más importante de ellos es el RFC 2616 que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador web o un spider) se lo conoce como "user agent" (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de recursos(URL). Los recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a una base de datos, la traducción automática de un documento, etc.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de "sesión", y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.
Ejemplo de un diálogo HTTP
Para obtener un recurso con el URL http://www.example.com/index.html
- Se abre una conexión al host www.example.com, puerto 80 que es el puerto por defecto para HTTP.
- Se envía un mensaje en el estilo siguiente:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: nombre-cliente
[Línea en blanco]
La respuesta del servidor está formada por encabezados seguidos del recurso solicitado, en el caso de una página web:
HTTP/1.1 200 OK
Date: Fri, 31 Dec 2003 23:59:59 GMT
Content-Type: text/html
Content-Length: 1221
<html>
<body>
<h1>Página principal de tuHost</h1>
(Contenido)
.
.
.
</body>
</html>
Métodos de petición
HTTP define 8 métodos (algunas veces referido como "verbos") que indica la acción que desea que se efectúe sobre el recurso identificado. Lo que este recurso representa, si los datos pre-existentes o datos que se generan de forma dinámica, depende de la aplicación del servidor. A menudo, el recurso corresponde a un archivo o la salida de un ejecutable que residen en el servidor.
- HEAD
- Pide una respuesta idéntica a la que correspondería a una petición GET, pero sin el cuerpo de la respuesta. Esto es útil para la recuperación de meta-información escrita en los encabezados de respuesta, sin tener que transportar todo el contenido.
- GET
- Pide una representación del recurso especificado. Por seguridad no deberíaser usado por aplicaciones que causen efectos ya que transmite información a través de la URI agregando parámetros a la URL.
- Ejemplo:
- GET /images/logo.png HTTP/1.1 obtiene un recurso llamado logo.png
- Ejemplo con parámetros:
- /index.php?page=main&lang=es
- POST
- Envia los datos para que sean procesados por el recurso identificado. Los datos se incluirán en el cuerpo de la petición. Esto puede resultar en la creación de un nuevo recurso o de las actualizaciones de los recursos existentes o ambas cosas.
- PUT
- Sube, carga o realiza un upload de un recurso especificado (archivo), es el camino más eficiente para subir archivos a un servidor, esto es porque en POST utiliza un mensaje multiparte y el mensaje es decodificado por el servidor. En contraste, el método PUT te permite escribir un archivo en una conexión socket establecida con el servidor.
- La desventaja del método PUT es que los servidores de hosting compartido no lo tienen habilitado.
- Ejemplo:
- PUT /path/filename.html HTTP/1.1
- DELETE
- Borra el recurso especificado.
- TRACE
- Este método solicita al servidor que envíe de vuelta en un mensaje de respuesta, en la sección del cuerpo de entidad, toda la data que reciba del mensaje de solicitud. Se utiliza con fines de comprobación y diagnóstico.
- OPTIONS
- Devuelve los métodos HTTP que el servidor soporta para un URL específico.Esto puede ser utilizado para comprobar la funcionalidad de un servidor web mediante petición en lugar de un recurso específico.
- CONNECT
- Se utiliza para saber si se tiene acceso a un host, no necesariamente la petición llega al servidor, este método se utiliza principalmente para saber si un proxy nos da acceso a un host bajo condiciones especiales, como por ejemplo "corrientes" de datos bidireccionales encriptadas (como lo requiere SSL).
Códigos de respuesta
N° | Descripción |
100 | 111 | Conexión rechazada |
N° | Descripción |
200 | OK |
201-203 | Información no oficial |
204 | Sin Contenido |
205 | Contenido para recargar |
206 | Contenido parcial |
N° | Descripción |
301 | Mudado permanentemente |
302 | Encontrado |
303 | Vea otros |
304 | No modificado |
305 | Utilice un proxy |
307 | Redirección temporal |
- 4xx Error por parte del cliente
N° | Descripción |
400 | Solicitud incorrecta |
401 | No autorizado |
402 | Pago requerido |
403 | Prohibido |
404 | No encontrado |
409 | Conflicto |
410 | Ya no disponible |
412 | Falló precondición |
N° | Descripción |
500 | Error interno |
501 | No implementado |
502 | Pasarela incorrecta |
503 | Servicio no disponible |
504 | Tiempo de espera de la pasarela agotado |
505 | Versión de HTTP no soportada |
- Fuente: Wikipedia
No hay comentarios:
Publicar un comentario