Mecanismo de petición y respuesta

Download Report

Transcript Mecanismo de petición y respuesta

Mecanismo de petición y
respuesta
Prof. Manuel Blázquez Ochando
http://ccdoc-automatizacion.blogspot.com.es/
Componentes del cliente
• Equipo informático, ordenador, con sistema
operativo instalado (Linux, Windows, Mac)
• Navegador web (Mozilla Firefox, Chrome,
Internet Explorer, Opera, Safari)
• Protocolo HTTP
Componentes del servidor
• Equipo informático, servidor, con sistema
operativo optimizado para servicios Web
(Linux Debian, Linux RedHat, CentOS,
Windows Server, etc)
• Programa servidor Web HTTP – APACHE
• Compilador PHP
• Base de datos MySQL
• Gestor de archivos FTP
Perspectiva del proceso de petición y
respuesta I
• Desde un equipo cliente se efectúa una
petición de una página web DNS a la que le
corresponde una IP fija
• La petición es resuelta por servidores de
enrutamiento intermediarios entre el cliente y
el servidor en la red. Identifican el DNS y su IP
• La petición es recibida vía HTTP por el servidor
Web APACHE, identificando la petición
Perspectiva del proceso de petición y
respuesta II
• Esta identificación es posible, ya que se
transmite a través de las cabeceras del
mensaje de petición, también denominadas
HEADERS
• Los HEADERS o cabeceras contienen
información sobre el equipo cliente que
realiza la petición, su dirección IP, fecha y
hora, tipo de petición, protocolo, tiempo de
respuesta
Perspectiva del proceso de petición y
respuesta III
• Si la petición se recibe correctamente, el
servidor Web APACHE, determina qué página
se ha solicitado y debe ser resuelta
• La resolución de una página web estática en
HTML es devuelta directamente al remitente,
en este caso el cliente, devolviendo un
mensaje de respuesta cuya cabecera o
HEADER es la IP del servidor, protocolo,
tiempo de respuesta y estado OK de la misma
Perspectiva del proceso de petición y
respuesta IV
• En cambio la resolución de una página web
dinámica implica, la ejecución de la misma en
el servidor por medio de un compilador PHP
(si está desarrollada en ese lenguaje) que
contiene unas instrucciones que pueden
implicar el uso de la BD MySQL, dando como
resultado una página con contenidos
dinámicos en formato HTML que es dada
como respuesta al cliente
Perspectiva del proceso de petición y
respuesta V
• Tanto en un caso estático, como dinámico, el
mensaje de respuesta que se transmite al
cliente vía HTTP consta de una cabecera
HEADER con la dirección IP del servidor, el
código de respuesta 200 OK ó 400 ERROR en
caso de no satisfacer la petición del cliente.
Por otra parte el cuerpo del mensaje es la
página en formato HTML en todos los casos,
tanto si su ejecución en el servidor fue
dinámica como estática.
Perspectiva del proceso de petición y
respuesta VI
• Las respuestas a las peticiones del cliente
siempre son devueltas en formato HTML
debido fundamentalmente a que el navegador
web del cliente sólo es capaz de interpretar el
lenguaje de marcado HTML y no PHP. Por otra
parte, por razones de seguridad y
confidencialidad de las aplicaciones PHP
disponibles en el servidor y por tanto de las
transacciones de datos que se llevan a cabo.
Perspectiva del proceso de petición y
respuesta VII
• Cuando el cliente recibe la respuesta el
navegador web interpreta el mensaje y su
contenido, representando el código HTML, su
estilo CSS, sus códigos javascript y sus
documentos basados en XML.
• Existen contenidos dinámicos que pueden ser
ejecutados por el cliente, denominados AJAX
(Asynchronous Javascript and XML)
Perspectiva del proceso de petición y
respuesta VIII
• AJAX es una técnica de programación basada
en Javascript, que permite ejecutar pequeñas
apliaciones descargadas por el cliente en las
respuestas que recibe y que se ejecutan en su
equipo, manteniendo éstas una comunicación
asíncrona en segundo plano con el servidor
del que provienen, mejorando la velocidad de
ejecución de los servicios y contenidos.
Un ejemplo práctico – parte 1
• Si un usuario dispone de un equipo con
sistema operativo, navegador y conexión a
internet, puede realizar peticiones HTTP para
acceder a multitud de páginas y contenidos de
la Web. Por ejemplo el acceso a Facebook
implica un DNS, un dominio que es
facebook.com.
Un ejemplo práctico – parte 2
• Para realizar la petición de carga de la página
web facebook, necesita indicar el protocolo
http:// y a continuación introducir el nombre
DNS y dominio facebook.com permitiéndolo
efectuar una petición formal a través de la
red.
• Esta petición se transmite a modo de mensaje
con una cabecera que contiene:
Un ejemplo práctico – parte 3
– Dirección IP (numérica) del cliente durante esa
sesión
– Método de la petición, en este caso HTTP, pero
podría ser también FTP
– Domain Name Server DNS y extensión de dominio
solicitado
• La información de la cabecera es codificada y
transmitida a los servidores de redirección y
enrutamiento que cuenta la red Internet
Un ejemplo práctico – parte 4
• La transmisión de la petición del cliente es
identificada por los servidores de
enrutamiento con una dirección IP fija de un
servidor sito en Estados Unidos,
concretamente en la sede de Facebook en
Mountain View
• Al identificar la máquina del servidor se dirige
la petición correctamente
Un ejemplo práctico – parte 5
• El servidor Web APACHE (o similar) de la
empresa Facebook, recibe la petición HTTP del
cliente y por tanto el mensaje completo,
validándolo como original (comprueba que la
petición no es fraudulenta) e identifica la
página web que ha pedido, que corresponde a
la portada de su servicio, dicho de otra forma,
la página web “index.php”
Un ejemplo práctico – parte 6
• Como la página web “index.php” de Facebook
está programada en lenguaje PHP, se ejecuta
con el compilador PHP que está instalado
como componente en el servidor.
• Esto permite interpretar las instrucciones de la
página de portada de Facebook, mostrando
datos y contenidos que están almacenados en
BD y poniendo a disposición del usuario todos
los servicios de identificación y registro.
Un ejemplo práctico – parte 7
• Como resultado de la interpretación de la
página de portada “index.php” se obtiene una
página web codificada en HTML con estilos
visuales, textuales y gráficos característicos
que podrán ser interpretados adecuadamente
por el usuario cuando sea transmitida la
respuesta.
Un ejemplo práctico – parte 8
• Del mismo modo que el cliente componía un
mensaje para efectuar la petición de la página
de Facebook, éste genera un mensaje
automático de respuesta con un cuerpo que
corresponde a la página HTML generada y una
cabecera con los datos de identificación básica
del servidor y la correcta resolución de la
petición
Un ejemplo práctico – parte 9
• Tan pronto se transmite el mensaje de vuelta
vía protocolo HTTP a la dirección IP del
remitente, la respuesta es recibida por el
navegador web, habitualmente a través del
puerto 80 de comunicación de red habilitado
en la mayoría de equipos con conexión a
internet.
Un ejemplo práctico – parte 10
• El navegador web del equipo cliente del
usuario, interpreta el mensaje y carga la
página HTML con toda su apariencia,
opciones, servicios, etc. correspondiente a la
página web de Facebook
• Todo el proceso descrito desde la parte1 hasta
la 10 se produce en décimas de segundo de
forma que el usuario no lo percibe
Un ejemplo práctico – parte 11
• Pero a su vez, el usuario puede realizar más
peticiones, tantas como páginas desea cargar
• Por ejemplo si introduce su nombre de usuario y
contraseña en el formulario de acceso de
Facebook, al hacer clic en el botón de “iniciar
sesión”, generará una nueva petición al servidor
de Facebook que comprobará los datos de
acceso, los validará y le devolverá una página web
con la información de su perfil o página
personalizada de su muro
Un ejemplo práctico – parte 12
• Debe observarse que, cada clic sobre un
enlace, opción, botón o servicio disponible en
una página web, suele dar como resultado el
desencadenamiento de todo el proceso
cliente-servidor de peticiones y respuestas
que aquí se expone