Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2014-2
Sesión 4. 2
Qué haremos hoy? 3 1. GET/POST 2. Cookies 3.Sesiones
Herramientas análisis HTTP Firebug plug-in for Firefox A must have for Web developers The ultimate tool for monitoring, editing and debugging HTTP, HTML, CSS, JavaScript, etc. Free, open-source www.getfirebug.com Fiddler HTTP proxy Intercepts the HTTP traffic Analyzes the HTTP conversation Free tool www.fiddler2.com 4 Tomado de diapositivas de: Svetlin Nakov Telerik Corporation
Herramientas desarrolladores de Google chrome
Ejemplo
GET/POST GET -Envía parámetros por URL -Limite de 100 caracteres en URL -Cache -Obtener información del servidor ( archivo u otro recurso) -Sólo se permiten caracteres ASCII -Botón Atrás ( no pasa nada) POST -Enviar información desde el cliente para que sea procesada y actualice o agregue información en el servidor. -No límite de caracteres -No cache -No hay restricciones de tipos de caracteres -Botón atrás. Los datos se reenvía. Se debe advertir al usuario
GET/POST GET - Solicitar una página diferente - Las llamadas GET pueden ser cacheadas (historial del navegador), indexadas por buscadores, o guardar URL para ingresar directamente a alguna página. - Generalmente en links POST - Actualizar o insertar información en mi base de datos - Ejm: formularios - Generalmente en formularios
Ejemplos GET/POST Administrador de noticias: listado de las noticias con un link eliminar para borrarlas una por una. Método POST para no permitir, por seguridad, que esa URL creada sea indexada, enviada a otra persona, guardada en favoritos, ni mucho menos ejecutada por culpa del botón atrás del navegador ya que quedaría cacheada en el historial.
Ejemplos GET/POST Formularios de búsquedas: al ser enviados por POST van a la página de resultados pero como estas llamadas no son cacheadas en el historial del navegador, no podemos volver usando la tecla atrás del navegador. Solución?? Método GET para permitir que funcione el botón atrás y se puedan volver a cargar los datos
Un paréntesis, lenguajes del lado del servidor (server scripting languages) Son lenguajes que sirven para producir páginas web dinámicas. Así el cliente hace algunas solicitudes que son procesadas por el servidor para luego entregar una respuesta al cliente.
Lenguajes de script (PHP)
Lenguajes de script (PHP) PHP es un lenguaje de script del lado del servidor. Otros lenguajes similares son ASP o JSP Los scripts PHP están incrustados en los documentos HTML y el servidor los interpreta y ejecuta antes de servir las páginas al cliente El cliente no ve el código PHP sino los resultados que produce
HTML cómo funciona?
PHP Cómo funciona?
Contexto Práctica ver petición HTTP con GET POST
Petición GET
procesar.php Código para práctica con POST
formulario.html
Ejemplo procesar.php para el get
Hasta aquí hemos visto entonces 21 HTTP HTTP INTERNET BROWSER (HTLM) & URL Javascript, ajax, jquery UI, HTML, CSS SERVIDORES Php, Jsp, ASP. Net, Razor.net, rails, etc
HTTP es un protocolo sin estado, entonces Cómo mantener la información que ha ingresado el cliente para no preguntarla siempre?
Alternativas Cookies Objetos de sesión del lado del servidor
Qué son las cookies? Son una herramienta para los desarrolladores web que permite almacenar y obtener datos del usuario, desde el lado del cliente. Son un par nombre valor + fecha de expiración Sirven para Autenticación Hacer tracking de la navegación del usuario Mantener preferencias de los clientes, o sesión en carritos de compras.
Cuál es el flujo de cookies entre servidor y cliente? Es información que se envía del servidor al cliente. El cliente la guarda y la envía de nuevo al servidor cada vez que hace una petición
Ejemplo de solicitud HTTP con las cookies El cliente hace la petición a una URL: GET / HTTP/1.1 Host: www.google.com El servidor asigna la cookie en la respuesta HTTP: HTTP/1.1 200 OK Set-Cookie: PREF=ID=c0bf5fd5c3a25209; expires=wed, 11-Jul-2012 16:13:22 GMT; domain=.google.com En nuevas peticiones el navegador entrega el valor de la cookie en la petición http: GET / HTTP/1.1 Host: www.google.com Cookie: PREF=ID=c0bf5fd5c3a25209 Tomado de diapositivas de: Svetlin Nakov Telerik Corporation
Sobre las cookies Son sólo datos no programas de código No borran o leen información del computador del usuario Son tradicionalmente anónimas porque no contienen información personal del usuario Pueden registrar información de navegación únicamente del sitio web al que pertenecen
Autorización para usar cookies
Ver las cookies. Ejemplo en google chrome
Asignar una cookie. Ejemplo Fuente: http://webdesign.about.com/od/cookies/a/aa083198.htm
Para que podría servir una cookie? En un sitio de votaciones, para saber si el usuario ya votó o no Guardar info de autenticación para que el usuario no tenga que autenticarse cada vez que navega Reconocer al usuario cuando vuelve al sitio
En cuanto a seguridad Las cookies están expuestas a ser leídas y/o suplantadas por eso: NO SE DEBE ALMACENAR INFORMACIÓN CONFIDENCIAL EN LAS COOKIES
Establecer una cookie en javascript Se debe usar la propiedad de javascript document.cookie Si la cookie no tiene fecha de expiración no se almacena en el disco duro, sino que mantiene en la sesión del usuario Al crear una cookie, debe especificar las propiedades Name y Value. Cada una de las cookies debe tener un nombre único a fin de que después se las pueda identificar al leerlas desde el explorador.
Ejemplo más completo
Fuente: http://www.inf.udec.cl/~jlopez/dswr/cookie.html
2. Sesiones del lado del servidor
Objetos de sesión del lado del servidor Concepto abstracto para representar una serie de peticiones y respuestas HTTP entre un navegador web específico y el servidor. Los datos intercambiados se llaman datos de sesión. Tienen un session id: sirven para identificar el usuario de la sesión. Se implementan como pares de valores ( nombre, valor asociado). El session id se mantiene en el cliente por medio de cookies o campos ocultos. Sólo se envía el session id entre cliente y servidor esto no sobrecarga la red
Objetos de sesión
Cómo se establecen las sesiones? Para la sesión el servidor puede guardar algunos datos del cliente como el navegador, y la dirección ip. Identificador de la sesión cambia para cada cliente
Ejemplo id de sesión desde el cliente Recursos almacenados en el lado del cliente
Cookies Cookies vs Objetos de sesión Se almacenan en el cliente. La información es manipulable y visible. La información de la sesión la tienen los clientes ( poca carga al servidor) Se almacenan en el servidor. No tienen un límite de tamaño. La información de todos los clientes la tiene el servidor Objetos sesión
Un anuncio Recuerden que mañana será la charla de Java
En resumen hoy vimos GET/POST Cookies Sessions Php, una ligera introducción Laboratorio de programación 43