Programación de Aplicaciones Web en una
Plataforma Orientada a Objetos
Middleware para aplicaciones web
Saúl Dominguez Isidro
saul.dominguez@lania.edu.mx
TODOS LOS DERECHOS RESERVADOS
Temas a tratar
• Protocolo HTTP
• Características del protocolo HTTP
• Operaciones del protocolo HTTP
2
Objetivo de la lección
Conocer las características
del protocolo HTTP y su
importancia como
middleware en las
aplicaciones web
3
Middleware en aplicaciones web
• Debido a que las aplicaciones web funcionan mediante
una arquitectura cliente-servidor
• El middleware de bajo nivel utilizado es el TCP/IP
• El middleware de alto nivel empleado es el protocolo
de transferencia de hipertexto (HTTP)
4
¿Qué es un protocolo?
Origen de la palabra: En informática:
Un protocolo de comunicaciones es el conjunto de reglas
del latín protocollum, el cual ya derivaba de un concepto
y estándares que tienen como fin controlar las secuencias
griego. En español, el protocolo es un conjunto de reglas
de los mensajes que suceden en una comunicación entre
o instrucciones a seguir, fijadas por la ley o la tradición.
las entidades que forman parte de una misma red.
El protocolo de Internet (Internet Protocol) es un
protocolo de comunicación que posee datos digitales que
se clasifican de manera funcional en la Capa de la Red
siguiendo el modelo internacional OSI.
Fuente: https://concepto.de/protocolo/#ixzz60xEzAWyd
5
Protocolos de internet
• Los protocolos de internet sostienen la Web, por lo
tanto es importante comprender estos protocolos
para el desarrollo de las aplicaciones web
• La forma en que se lleva acabo el flujo de la
información a través de la Web se le conoce como
protocolo.
• El explorador web (cliente), el servidor web
(servidor), y la aplicación web se comunican unas
con otras por medio del HTTP (Hypertext Transfer
Protocol)
6
El protocolo HTTP
• Los clientes mandan peticiones HTTP al los
servidores web, y éstos regresan los datos
solicitados en la forma de respuestas HTTP
7
Protocolo HTTP - características
HTTP es un protocolo sin estado
es decir: no guarda ningún dato entre dos peticiones en la misma sesión.
Por lo tanto, en caso de que los usuarios requieran interactuar con
determinadas páginas Web de forma ordenada y coherente, por ejemplo,
para el uso de "carritos de la compra" en páginas que de comercio
electrónico.
Sin embargo, el uso de HTTP cookies, si permite guardar datos con respecto
a la sesión de comunicación.
Usando la capacidad de ampliación del protocolo HTTP, las cookies permiten
crear un contexto común para cada sesión de comunicación.
8
Protocolo HTTP - Solicitudes
• Cuando un cliente hace una petición de un recurso, esta adjunta
la identificación del recurso solicitado en forma de URL
(Uniform Resource Locator)
• Una URL genérica es una secuencia jerárquica de componentes,
estructurado como:
esquema://NombreHost:puerto/dirección/recurso?caden
a de consulta.
9
Protocolo HTTP - Solicitudes
esquema://NombreHost:puerto/dirección/recurso?caden
a de consulta.
10
Esquema de seguridad HTTPS
• Es HTTP sobre Secure Sockets Layer (SSL); esto permite
comunicaciones cifradas seguras.
Se utilizan algoritmos de cifrado asimétrico como el RSA
11
Protocolo HTTP – cadenas de consulta
Una cadena de consulta es una serie de nombres-de-
parámetros precedidos con un signo de interrogación (?) y
con un ampersand (&) separando cada parámetro
# Parameter name Parameter value
1 q LANIA
2 src typd
12
Protocolo HTTP - métodos
• Los métodos en los cuales HTTP permite las solicitudes
son:
– GET
– POST
– PUT
– DELETE
• Las cadenas de consulta son soportadas por el método
GET del protocolo
13
Protocolo HTTP – encabezado de solicitud
Es la información, en forma de texto, que el navegador de un usuario envía a
un servidor web conteniendo los detalles de lo que el navegador desea y
aceptará del servidor.
El encabezado de la solicitud también contiene el tipo, la versión y las
capacidades del navegador que realiza la solicitud para que el servidor
devuelva datos compatibles.
Al recibir el encabezado de la solicitud, el servidor devolverá un encabezado de
respuesta HTTP al cliente que se adjunta al archivo(s) que se está enviando.
14
Protocolo HTTP – encabezado de solicitud
En el ejemplo se muestra la primera línea con la línea de solicitud,
después se despliega la información del encabezado de solicitud
HTTP.
GET /index.php?option=com_content&view=article&id=57&Itemid=86 HTTP/1.1!!br0ken!!
Host: http://www.lania.mx/lms/maestrias/login/index.php
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: 6bat36d0999f4da0e8214bc3a90328f50=p3eug5t?pvonb5lrf40jf5dcf71
Connection: keep-alive
15
Protocolo HTTP – encabezado de respuesta
La información, en forma de un registro de texto, que un servidor web envía de
vuelta al navegador de un cliente en respuesta a recibir una solicitud HTTP.
El encabezado de respuesta contiene la fecha, el tamaño y el tipo de archivo
que el servidor está enviando al cliente y también datos sobre el servidor en sí.
El encabezado se adjunta a los archivos que se envían de nuevo al cliente.
16
Protocolo HTTP – encabezado de respuesta
HTTP/1.1 200 OK
Date: Wed, 19 Sep 2018 11:56:29 GMT La línea de estado consta de dos partes (primera
Server: Apache Tomcat 9 linea): el protocolo, normalmente HTTP 1.1, y un
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP código numérico de estado seguido de un mensaje
IND DEM" breve. El código 200 significa que la petición GET
Expires: Mon, 1 Jan 2019 00:00:00 GMT tuvo éxito y el servidor devolvió los contenidos
Cache-Control: no-store, no-cache, must-revalidate, post- solicitados (justo después de las cabeceras).
check=0, pre-check=0
Pragma: no-cache
Last-Modified: Wed, 19 Sep 2018 11:57:30 GMT El típico error 404 proviene del código de error que
Vary: Accept-Encoding,User-Agent aparece en la línea de status, 404, que signfica not
Content-Encoding: gzip found o no encontrado. En general los códigos 200
Content-Length: 9237 indican respuestas correctas, los códigos 300 indican
Keep-Alive: timeout=1, max=100 redirecciones, los códigos 400 problemas con la
Connection: Keep-Alive petición y los códigos 500 problemas del servidor.
Content-Type: text/html; charset=utf-8
<!DOCTYPE HTML> El resto de cabeceras contienen información sobre
<html xmlns="http://www.w3.org/1999/xhtml" la respuesta del servidor, por ejemplo el software
xml:lang="es-es" lang="es-es" > que corre el servidor, en qué fecha se hizo la última
<head> modificación del recurso solicitado, etc.
… continúa un código html extenso
17
Protocolo HTTP – códigos de estado
El código de estado que
un servidor devuelve a un
cliente en una petición
indica el resultado de • 100 - 199: códigos de información,
dicha petición. Se tiene indicando que el cliente debe
una descripción completa responder con alguna otra acción.
de los mismos en el RFC
2616. Están agrupados en
5 categorías:
18
Protocolo HTTP – códigos de estado
segunda • 200 - 299: códigos de aceptación de
categoría petición. Por ejemplo:
200 OK Todo esta bien
204 No content No hay documento nuevo
19
Protocolo HTTP – códigos de estado
• 300 - 399: códigos de redirección. Indican
tercera categoría que el documento solicitado ha sido movido
a otra URL. Por ejemplo:
301 Moved Permanently El documento está en otro lugar, indicado en la
cabecera Location
302 Found Como el anterior, pero la nueva URL es temporal,
no permanente.
304 Not Modified El documento pedido no ha sufrido cambios con
respecto al actual (para cabeceras If-Modified-
Since)
20
Protocolo HTTP – códigos de estado
• 400 - 499: códigos de error del cliente. Por
cuarta categoría ejemplo:
400Bad Request Mala sintaxis en la petición
El cliente no tiene permiso para acceder a la página. Se debería
401Unauthorized devolver una cabecera WWW-Authenticate para que el usuario
introduzca login y password
403Forbidden El recurso no está disponible
404Not Found No se pudo encontrar el recurso
408Request Timeout El cliente tarda demasiado en enviar la petición
21
Protocolo HTTP – códigos de estado
• 500 - 599: códigos de error del servidor. Por
quinta categoría ejemplo:
Internal
500
Server Error Error en el servidor
Not
501 El servidor no soporta la petición realizada
Implemented
Gateway Usado por servidores que actúan como proxies o gateways,
504 indica que el servidor no obtuvo una respuesta a tiempo de
Timeout
un servidor remoto
22