Tema4
Arquitecturas REST (Representational State Transfer)
Dr. Javier Parra Fuente
1
Protocolo HTTP
Hypertext Transfer Protocol
Protocolo orientado a transacciones
Protocolo sin estado
RFC 2616:
http://www.ietf.org/rfc/rfc2616.txt
Esquema petición/respuesta entre un
cliente (navegador) y un servidor web
Basado en la localización de recursos(URLs)
Puerto 80
2
Protocolo HTTP
Modelo de comunicación web
Cliente
Web
(Navegador)
Petición
HTTP
Servidor
Web
Respuesta
HTTP
Paquete HTTP
Cabecera
Cuerpo
3
Protocolo HTTP - Petición
GET / HTTP/1.1
Host: www.google.es
User-Agent:
Métodos:
•
•
•
•
•
GET: Solicita un recurso
PUT: Actualiza un recurso
POST: Solicita procesar recurso con los datos enviados
DELETE:Elimina un recurso
Otros métodos: HEAD, TRACE, OPTIONS y CONNECT
4
Protocolo HTTP - Petición
Atributos de la Cabecera HTTP:
•
•
•
•
•
•
•
•
•
•
Accept: Tipos de contenido aceptados
Accept-charset: Conjunto de caracteres aceptados
Accept-encoding: Codificación caracteres aceptados
Accept-language: Idiomas aceptados
Cookie: Cookie enviada previamente por el servidor
Content-length: Longitudde la petición
Content-type: Tipo MIME del cuerpo de la petición
Date: Fecha/hora de la solicitud
GET / HTTP/1.1
Host: www.google.es
User-Agent:
…
User-Agent: Tipo agente de usuario utilizado
Otros atributos: Authorization, Cache-control,
Connection, If-Modified-Since, If-None-Match
5
Protocolo HTTP - Respuesta
HTTP/1.1 200 OK
Date:
Content-type: text/htmlContent-length:
…
…
Códigos de respuesta:
•
•
•
•
•
1xx: Mensajes
2xx: Operación exitosa
3xx: Redirección
4xx: Error en el cliente (p.e: 404, no encontrado)
5xx: Error en el servidor
6
Protocolo HTTP - Respuesta
Atributos de la Cabecera HTTP:
•
•
•
•
•
•
Content-encoding: Codificación utilizada en el mensaje
•
•
•
Server: Identifica el tipo de servidorContent-language: Idioma utilizado en el mensaje
Content-length: Tamaño del mensaje
Content-type: Tipo MIME del contenido
Date: Fecha/hora de la respuesta
Expires: Fecha de expiración del contenido para eliminarse de la
caché
Set-cookie: Activa una cookie en el cliente
Otros atributos: Cache-control, Content-location, Etag, WWWAuthenticate
7
Protocolo HTTP - Ejemplo
http://web-sniffer.net/
8
REST
Estilo arquitectónico de servicios web
Toma como referencia el protocolo HTTP
Basado en el modelo de comunicación de la World
Wide Web
Basado en la gestión de recursos en lugar de
métodos de negocio
9
REST – Métodos
Utiliza directamente los métodos HTTP:
•
POST: crea un recurso
POST /usuarios HTTP/1.1
Host: miservidor
Content-type: application/xml
•
GET: obtiene un recurso
GET /usuarios/Javier HTTP/1.1
Host: miservidor
Accept: application/xml
10
REST – Métodos
•
PUT: modifica un recurso
PUT /usuarios/Javier HTTP/1.1
Host: miservidor
Content-Type: application/xml
•
DELETE: elimina un recurso
DELETE /usuarios/Javier HTTP/1.1
Host: miservidor
11
REST – URI (Uniform ResourceIdentifier)
Localización del recurso web
GET
Host: miservidor
Accept: application/xml
Debe ser autodescriptivo
Recursos organizados jerárquicamente
http://www.servicio.org/empresa/empleados/{empleado}
12
REST – Atributo Content-type
Indica el tipo MIME de la petición HTTP
Facilita la correcta interpretación por el servidor
POST /usuarios HTTP/1.1
Host: miservidorContent-type: application/xml
13
REST – Atributo Accept
Indica el tipo MIME de la respuesta
Facilita la correcta interpretación por el cliente
GET /usuarios/Javier HTTP/1.1
Host: miservidor
Accept: application/xml
Ejemplos:
•
•
•
JSON: application/json
XML: application/xml
XHTML: application/xhtml+xml
14
REST vs. SOAP
Ejemplo:...
Regístrate para leer el documento completo.