Вы находитесь на странице: 1из 51

Tema 2.

HTTP

NDICE
1. HTTP 2. HTTPS 3. Navegador web 4. Tipos MIME 5. HTML 6. CSS 7. Apache 8. Pginas dinmicas en el servidor 9. CGI 10. ASP.NET 11. JSP 12. PHP 13. MySQL 14. Pginas dinmicas en el cliente 15. Javascript 16. ActiveX 17. Flash 18. Applets Java
1/51

Tema 2. HTTP

1. HTTP (I) El protocolo de transferencia de hipertexto (HTTP, HyperText Transfer Protocol) es usado en cada transaccin de la Web. Define la sintaxis y la semntica que utilizan los elementos software de la arquitectura web (clientes y servidores) para comunicarse. Utiliza el puerto TCP 80. Es un protocolo orientado a transacciones y sigue el esquema peticin-respuesta (request-response) entre un cliente y un servidor. La informacin transmitida se llama recurso y se identifica mediante una URL (Unit Resource Location, unidad de localizacin de recurso) o URI (Uniform Resource Identifier, identificador de recurso uniforme). El recurso ms tpico es un archivo escrito en lenguaje HTML y alojado en el servidor. El cliente tambin puede subir datos al servidor (p.e. campos de un formulario). Permite la transferencia de objetos multimedia. El contenido de cada objeto intercambiado est identificado por su clasificacin MIME. Cada operacin implica una conexin del cliente con el servidor, que es liberada al trmino de la misma. Es un protocolo sin estado, es decir, no guarda ninguna informacin sobre conexiones anteriores. Pero las aplicaciones web necesitan frecuentemente mantener estado. Para esto se usan las cookies, que es informacin que un servidor puede almacenar en el sistema cliente (si el navegador acepta las cookies). Entre los servidores web destacan Apache y Microsoft IIS. Los clientes web (navegadores, browsers) ms utilizados son Internet Explorer, Mozilla Firefox y Google Chrome.

2/51

Tema 2. HTTP

1. HTTP (II) El intercambio de informacin entre le cliente y el servidor web se realiza mediante mensajes de dos tipos: Peticin (request) del cliente al servidor. Existen dos mtodos principales. El ms utilizado es GET que sirve para solicitar la descarga de una URL alojada en el servidor, aunque la peticin puede incluir el envo de datos al servidor por medio de parmetros. El mtodo POST se utiliza para subir datos al servidor, tanto texto de un formulario como un fichero binario. Respuesta (response) del servidor al cliente, devolvindole el recurso solicitado o un mensaje de error.

3/51

Tema 2. HTTP

2. HTTPS El sistema HTTPS utiliza un cifrado basado en SSL/TLS (Secure Sockets Layer/Transport Layer Security) para crear un canal cifrado ms apropiado para el trfico de informacin sensible que el protocolo HTTP. La informacin sensible (usuario y contrasea, datos de tarjetas de crdito, etc) no puede ser usada por un atacante que haya conseguido interceptar la transferencia de datos de la conexin, ya que lo nico que obtendr ser un flujo de datos cifrados imposibles de descifrar. Utiliza el puerto TCP 443. Una autoridad de certificacin es una organizacin pblica (p.e. FNMT) o privada (p.e. Verisign) de prestigio que emite certificados a usuarios y a sitios web que garantizan su identidad. El modo de funcionamiento del protocolo es el siguiente:

4/51

Tema 2. HTTP

3. Navegador web El navegador web, trambien llamado browser (hojeador) es el programa cliente web. Tiene una barra donde el usuario escribe una URL a la que se quiere acceder. Permiten navegar en varias pestaas a la vez. En la configuracin del navegador hay multitud de opciones para que el usuario personalice el funcionamiento del programa, entre ellas las ms tpicas son: Pgina de inicio. Aceptacin de cookies. Contraseas guardadas. Carpeta de descargas. Bloquear ventanas emergentes. Fuente y tamao por defecto. Recordar el historial de navegacin. Permitir la instalacin automtica de complementos. Modo de conectar a internet (con proxy, etc).

Un complemento es una aplicacin que se relaciona con otra para aportarle una funcin nueva y generalmente muy especifica. Esta aplicacin adicional es ejecutada por la aplicacin principal e interactan por medio de la API. Tambin se lo conoce como plug-in (del ingls "enchufable"), add-on (agregado) y complemento. Es frecuente requerir ciertos complementos que amplan las funciones de las pginas web para ver contenidos interactivos, videos y cosas similares. Un ejemplo conocido es Adobe Flash Player, un complemento que carga animaciones multimedia interactivas y se usa, por ejemplo, para ver videos.

5/51

Tema 2. HTTP

4. Tipos MIME MIME (Multipurpose Internet Mail Extensions, extensiones de correo de internet multipropsito), es un estndar que clasifica recursos y provee informacin a programas acerca de cmo manejarlos. Esto permite a los navegadores web y a los clientes de correo abrir correctamente un archivo .txt como un recurso de texto plano y no como un archivo de video o algn otro tipo. Cuando un tipo MIME no es especificado para un recurso, el programa que lo procese puede "suponer" su tipo por la extensin del recurso (por ejemplo, un archivo .bmp supone contener una imagen de mapa de bits). Se recomienda proveer informacin sobre tipos MIME en todos los lugares en que sea posible hacerlo (atributo type en tag HTML script y tag HTML link, atributo enctype para el tag HTML form y en el tag HTML meta cuando se define el content-type del documento). Esto puede ayudar a lograr una mayor compatibilidad con los navegadores y al correcto funcionamiento del documento en s. En la siguiente tabla se listan algunos de los tipos MIME ms comunes: Tipo MIME text/plain application/powerpoint application/pdf application/excel image/pjpeg application/msword Extensin .txt .ppt .pdf .xls .jpg .doc
6/51

Tema 2. HTTP

5. HTML HTML, (Hyper Text Markup Language, Lenguaje de Marcas de Hipertexto), es el lenguaje predominante para la construccin de pginas web. Se usa para describir la estructura, el contenido y la apariencia de una pgina web, as como para complementar el texto con imgenes y enlaces a otras pginas. El navegador web traduce el archivo escrito en HTML (cdigo fuente) y muestra el resultado grficamente en la pantalla. Dentro de una pgina web puede haber fragmentos de cdigo (scripts) escritos en otros lenguajes de programacin como son PHP, Java, Javascript, SQL, Perl, etc. Se dice que estos lenguajes estn embebidos dentro de HTML. Una pgina puede incluir un script del lado del cliente (por ejemplo Javascript), el cual puede afectar el comportamiento del navegador web. Una pgina puede incluir un script del lado del servidor (por ejemplo PHP) que se ejecuta en el servidor antes de enviar la pgina al cliente. Los elementos son la estructura bsica de HTML. Tienen dos propiedades bsicas: atributos y contenido. Un elemento tiene una etiqueta de inicio y en muchos casos una etiqueta de cierre. Los atributos del elemento estn contenidos en la etiqueta de inicio y el contenido est ubicado entre las dos etiquetas: <elemento atributo="valor">Contenido</elemento> Las etiquetas de cierre llevan una barra ("/") antes del nombre de la etiqueta. Algunos elementos (p.e. el salto de lnea <br>) no tienen contenido ni llevan una etiqueta de cierre.

7/51

Tema 2. HTTP

5.1. Etiquetas HTML (I) <html> Define el inicio del documento, le indica al navegador que lo que viene a continuacin debe ser interpretado como cdigo HTML. <head> Cabecera del documento HTML. Dentro de la cabecera estn <title>, <link> y <style>. <title> Ttulo de la pgina. Por lo general, el ttulo aparece en la barra de ttulo encima de la ventana <link> Vincula la pgina a hojas de estilo. La hoja de estilo es un archivo con extensin css que contiene los parmetros de visualizacin de la pgina. Por ejemplo: <link rel=stylesheet href=estilos/estilo01.css type=text/css> <style> Para definir el estilo interno de la pgina, ya sea usando CSS, JavaScript u otros lenguajes similares. No es necesario colocarlo si se va a vincular a un archivo externo usando la etiqueta <link>. <body> Contenido principal o cuerpo del documento. Es la parte del documento html que se muestra en el navegador. Dentro de esta etiqueta pueden definirse propiedades comunes a toda la pgina, como color de fondo y mrgenes. Las siguientes etiquetas se incluyen dentro del body.

8/51

Tema 2. HTTP

5.1. Etiquetas HTML (II) <h1><h2><h3><h4><h5><h6> Encabezados con diferente relevancia. <table border=n> Define una tabla. <tr> Fila de una tabla. <td> Celda de datos de una tabla. Ejemplo: <table><tr><td>Contenido celda</td></tr></table> <a> Hipervnculo o enlace, dentro o fuera del sitio web. El atributo href es la URL de destino. Por ejemplo: <a href="http://www.wikipedia.org">Wikipedia</a> <div> rea rectangular de la pgina a la que se asigna un nombre. Pueden anidarse. Muy til con CSS. <img> Imagen. Requiere del atributo src, que indica la ruta en la que se encuentra la imagen. Por ejemplo: <img src=c:/fotos/mifoto.jpg"> <li><ol><ul> Etiquetas para listas, ordenadas y vietas. <b> Texto en negrita <i> Texto en cursiva <u> Texto subrayado &nbsp Espacio en blanco

9/51

Tema 2. HTTP

5.2. Formularios HTML La interaccin de una pgina web con el usuario se realiza principalmente a travs de formularios. Un formulario es una parte de una pgina donde el usuario puede introducir valores en campos y luego pulsar el botn Enviar para mandar los datos al servidor, normalmente a una pgina PHP. La pgina destinataria se especifica en la propiedad "action", permitindose llamadas recursivas. Se puede utilizar dos mtodos distintos. La diferencia entre estos dos mtodos radica en la forma de enviar los datos a la pgina: - POST: los enva por la entrada estndar STDIO (los datos no se ven en la URL) y permite subir ficheros. - GET: los enva usando la URL, en forma de parmetros (los datos se ven en la URL). Ejemplo: <form method=post action=alumno.php enctype=multipart/form-data> <br>Apellidos y nombre: <input type=text name=APENOM> <br>Archivo con la foto:<input type=file name=FOTO> <br>Color favorito: <SELECT name=MICOLOR> <OPTION selected>Rojo <OPTION>Azul <OPTION>Amarillo </SELECT> <input type=submit name=Enviar> </form>
10/51

Tema 2. HTTP

6. CSS (I) Las hojas de estilo en cascada CSS (Cascading Style Sheets), se utilizan para dar estilo a pginas web. Los estilos definen la forma de mostrar los elementos HTML en el navegador. Una hoja de estilo se guarda en un archivo con extesin css. Su principal ventaja es separar el contenido de la pgina (HTML) de la presentacin (CSS). Al escribir la parte de HTML el programador se olvida de las etiquetas que sirven para alinear el texto, cambiar la fuente, colores de fondo, etc, centrndose exclusivamente en los contenidos de la pgina. Varias pginas pueden compartir el mismo estilo para tener una presentacin homognea. Cada pgina HTML se vincula a una hoja de estilo mediante la etiqueta link de la siguiente forma: <html> <head> <title>Ttulo</title> <link rel=stylesheet type=text/css href="mishojas/hoja01.css"> </head> <body> ......... </body> </html>

11/51

Tema 2. HTTP

6. CSS (II) Para cambiar la forma en la que visualiza un elemento de HTML se escribe el nombre del elemento y despus entre llaves las propiedades. El siguiente ejemplo establece el estilo para el encabezado de nivel uno: h1 { font-family: Georgia, "Times New Roman",Times, serif; color: red; background-color: #d8da3d; } La etiqueta HTML <div id=columna_izquierda> ... </div> permite crear un bloque (o capa) de contenido en una pgina web. Un bloque puede anidarse dentro de otro. Despus con CSS se establece el estilo de cada bloque, precediendo el nombre del bloque con una almohadilla. Ejemplo: #columna_izquierda { background: url(imagenes/nubes.jpg); height: 80px; font: 3.5em verdana; text-align: center; margin-bottom: 10px; }

12/51

Tema 2. HTTP

7. Apache Apache es un servidor HTTP de libre distribucin y de cdigo abierto para plataformas Unix, Linux, Windows, Macintosh y otras, que implementa el protocolo HTTP y la nocin de sitio virtual. Su desarrollo comenz en 1995 y actualmente siguen apareciendo nuevas versiones. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras caractersticas mensajes de error altamente configurables y bases de datos de autenticacin y negociado de contenido. Carece de una interfaz grfica que ayude en su configuracin. Apache tiene amplia aceptacin en la red: desde 1996 es el servidor HTTP ms usado en el mundo.

13/51

Tema 2. HTTP

7.1. Descarga e instalacin La pgina oficial de Apache http://httpd.apache.org contiene todo lo referente al proyecto del servidor http, documentacin, descargas, etc. Para Windows lo mejor es descargar una versin Win32 binary. Tambin hay versiones para Linux.

14/51

Tema 2. HTTP

7.2. Servicio Lo ms aconsejable es instalar Apache como un servicio de Windows. El servicio puede arrancarse manualmente o de forma automtica. Para arrancar, parar y ver el estado del servicio entramos en: Inicio - Panel de control - Herramientas Administrativas Servicios

15/51

Tema 2. HTTP

7.3. Estructura de directorios Una vez instalado el Apache, en el directorio raz de la instalacin se encontrarn una serie de ficheros de texto con informacin para el administrador que es conveniente leer. Y adems los siguientes directorios: bin: ficheros ejecutables del Apache. cgi-bin: ficheros ejecutables de cgi (vaca). conf: ficheros de configuracin del servidor. error: ficheros con los mensajes de error del servidor, en varios lenguajes. htdocs: directorio raz por defecto del servidor (Se guardan las pginas Web). icons: directorio donde se encuentran los iconos que utiliza el servidor (entre otras cosas para mostrar estructuras de directorios). logs: directorio donde se almacenan los registros de acceso y errores del servidor. manual: directorio donde se encuentra el manual del Apache. modules: Directorio con los mdulos, archivos con extensin .co

16/51

Tema 2. HTTP

7.4. Configuracin del servidor Bsicamente las configuraciones del servidor residen dentro de dos ficheros: Httpd.conf: es el fichero de configuracin principal que se encuentra dentro de la carpeta conf .htaccess: es un fichero que se puede encontrar dentro de cualquier directorio que se encuentre mapeado dentro del servidor. Este fichero empieza por un punto porque en linux es un fichero oculto. Dentro de cada uno de estos ficheros se ubican las directivas de configuracin. Muchas de estas directivas de configuracin se pueden encontrar tanto dentro del fichero de configuracin principal como dentro de un fichero .htaccess. Los valores de las directivas que se encuentran dentro de un fichero .htaccess, prevalecen frente a los valores de configuracin especificados dentro del fichero httpd.conf.

17/51

Tema 2. HTTP

7.5. Directorio htdocs Apache sirve sus pginas web desde este directorio, creado en la instalacin. Para cambiar este directorio, se modifica en el fichero httpd.conf la lnea que contiene la directiva DocumentRoot: DocumentRoot C:/Apache Software Foundation/Apache2.2/htdocs" Si la URL incluye la ruta a un fichero (www.marisma.org/imgs/foto.jpg), Apache le enva el fichero al cliente. Entonces el navegador decide, en funcin del tipo de fichero, si lo abre en su ventaja (tipos html, php, asp, jpg, gif, pdf) o muestra un cuadro de dilogo de descarga, donde el usuario decide si abrirlo con un programa externo (tipos doc, xls, mp3, etc) o guardarlo en disco. Si la URL solicitada por el cliente navegador no incluye una ruta a un fichero (p.e. www.marisma.org), la pgina que devuelve Apache es index.html. Si la URL solicitada por el cliente navegador no incluye una ruta a un fichero, y la pgina index.html no existe, entonces se muestra un explorador de archivos contenidos en el directorio. Hay que asumir que todo lo que est dentro de este directorio (y sus subdirectorios) es de dominio pblico. Por tanto, se guardar aqu slo lo que sea estrictamente necesario para nuestra web.

18/51

Tema 2. HTTP

7.6. Fichero httpd.conf El fichero httpd.conf es el fichero principal de configuracin del Apache, se encuentra dentro del directorio conf, en el directorio de instalacin del Apache. Est dividido en tres secciones, que son: 1 Parmetros globales 2 Directivas de Funcionamiento 3 Host Virtuales En el fichero se encuentran todos los parmetros de funcionamiento del Apache. Algunos parmetros son generales para la instalacin y funcionamiento del Apache. Muchos otros de los parmetros se pueden configurar independientes para un conjunto de directorios y/o ficheros. El fichero contiene muchos comentarios (en ingls) para ayudar al administrador a su interpretacin. Las lneas de comentarios empiezan con el smbolo #. El fichero httpd.conf se crea durante la instalacin de Apache con los parmetros de una configuracin tpica. Si se modifica el fichero, es necesario guardar los cambios y reiniciar el servicio de Apache para que los cambios tengan efecto.

19/51

Tema 2. HTTP

7.7. Restringir el acceso a un directorio (I) Se autorizar el acceso a un directorio a una serie de usuarios, que tendrn que identificarse (nombre de usuario o login) y autenticarse (contrasea o password). 1 Modificar el fichero httpd.conf de forma que los directorios afectados tengan la directiva AllowOverride AuthConfig o AllowOverride All. 2 Desde la lnea de comandos, con el programa htpasswd se crea un fichero (opcin -c) de usuarios y claves. El fichero puede tener cualquier nombre, y debe guardarse fuera de la parte pblica. Por ejemplo: htpasswd -c ruta/passwords carlos Se pueden aadir nuevos usuarios (sin la opcin -c): htpasswd ruta/passwords ana 3 Crear un fichero con el nombre .htaccess en la carpeta que se quiere proteger, con las siguientes directivas: AuthType Basic AuthName "ServidorPruebas" AuthUserFile ruta/passwords Require user carlos

20/51

Tema 2. HTTP

7.7. Restringir el acceso a un directorio (II) Se puede permitir el acceso a todos los usuarios identificados mediante la introduccin de la siguiente directiva: "Require valid-user". En otros casos, se le otorgar permiso de acceso a un grupo de usuarios en lugar de hacerlo con usuarios individuales. En dos pasos: 1 Adems del fichero de usuarios y claves, se crea un fichero de texto para organizar a los usuarios en grupos. El fichero puede tener cualquier nombre, y debe guardarse fuera de la parte pblica. Cada lnea del fichero es de la forma grupo: usuario. Por ejemplo: administradores: carlos 2 Crear un fichero con el nombre .htaccess en la carpeta que se quiere proteger, con las siguientes directivas: AuthType Basic AuthName "ServidorPruebas" AuthUserFile ruta/passwords AuthGroupFile ruta/grupos Require group administradores

21/51

Tema 2. HTTP

7.8. Hosting virtual Consiste en tener ms de un dominio en un solo servidor. Hay dos mtodos: Web virtuales basadas en direcciones IP: Cada sitio web tiene una direccin IP diferente. Eso requiere ms de una interfaz de red en el servidor. Web virtuales basados en nombres diferentes: Con una sola direccin IP estn funcionando varios sitios web con diferentes nombres de dominio. Es la ms normal. Primero, se asigna ms de un nombre de dominio a nuestro servidor, mediante DNS o con el archivo windows\system32\drivers\etc\hosts. Despus, en el archivo httpd.conf se aaden estas directivas: NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot htdocs/ejemplo1 ServerName www.ejemplo1.com </VirtualHost> <VirtualHost *:80> DocumentRoot htdocs/ejemplo2 ServerName www.ejemplo2.com </VirtualHost>

22/51

Tema 2. HTTP

8. Pginas dinmicas en el servidor Las pginas Web pueden generarse dinmicamente mediante varias secuencias de comandos en el servidor. Una vez que el navegador las recibe, las trata como pginas HTML normales y simplemente las despliega. Por ejemplo, cuando un usuario rellena los distintos campos de un formulario y hace clic en el botn de envo, se enva un mensaje al servidor con toda esta informacin. Ahora esta informacin deber ser entregada a un programa o a una secuencia de comandos para que los procesen. Por lo general, el procesamiento implica el uso de la informacin proporcionada por el usuario para: 1) realizar alguna operacin de manipulacin de datos (altas, bajas, modificaciones o consultas) en una base de datos alojada en el servidor 2) generar una pgina HTML personalizada para regresarla al cliente. En una pgina Web dinmica en el servidor, la base de datos almacena y suministra la informacin que se le presentar al usuario, con la gran ventaja de que la informacin puede variar segn el usuario, horario, etc. Una vez tengamos claro que nos interesa un sitio Web dinmico, deberemos definir qu tecnologa usar y qu base de datos. Existen varias opciones para elegir el gestor de la base de datos: Oracle, PostgreSQL, Microsoft SQL Server, MySQL, etc. Todos ellos pueden usarse para pginas Web dinmicas, aunque dependiendo de la plataforma del servidor Web (Apache, IIS, Tomcat, etc.) y del lenguaje de programacin Web utilizado (Perl, PHP, JSP, etc.), se usa ms una u otra.

23/51

Tema 2. HTTP

9. CGI CGI (Common Gateway Interface, interfaz de puerta de enlace comn). En una aplicacin CGI, el servidor Web pasa las solicitudes del cliente a un programa externo. La salida de dicho programa es enviada al cliente en lugar del archivo esttico tradicional. Por lo general, estos programas son secuencias de comandos escritas en lenguaje Perl, aunque algunas veces se emplea Python u otros lenguajes (C, C++, Java, etc.). Perl es un lenguaje de programacin interpretado -no requiere de un proceso de compilacin previo-, derivado del lenguaje de programacin C pero ms sencillo, extraordinariamente potente y flexible, y muy extendido entre administradores de sistemas y desarrolladores Web. La base de programas y herramientas existentes en Perl es muy grande, lo que le podr ayudar a la mejora de su pgina Web sin muchas dificultades. Perl permite manipulaciones sencillas de ficheros y textos, as como la extraccin y manipulacin de cadenas de caracteres, unidas a unas bsquedas rpidas y sencillas. Esta caracterstica ha sido tremendamente utilizada en la interpretacin de formularios y generacin de pginas dinmicas Web mediante CGI y de ah la razn de su xito. Una reciente utilidad de este lenguaje se encuentra en el procesamiento de documentos XML. Si queremos trabajar con Perl en el servidor Web ser necesario tener instalado el intrprete del lenguaje. Por convencin, los ficheros tienen la extensin .pl o .cgi y se suelen ubicar en el directorio cgi-bin.

24/51

Tema 2. HTTP

10. ASP.NET Tambin es muy importante ASP (Active Server Pages), la alternativa que ofrece Microsoft para generar sitios Web dinmicos, conjuntamente con su software servidor IIS (Internet Information Server). Desde su primera versin ha evolucionado hasta denominarse ASP.NET y estar dentro de la plataforma .NET. Una de las principales ventajas de ASP.NET es la gran cantidad de lenguajes que soporta: VB.NET (que deriva del Visual Basic); C# (una versin mejorada de C++) y JScript.NET (que deriva de JavaScript). ASP.NET constituye un entorno abierto en el que se puede combinar cdigo HTML, scripts y componentes ActiveX del servidor para crear soluciones dinmicas y de calidad para la Web. El Proyecto Mono lo ha llevado a Linux, Solaris, Mac y Unix. Las pginas que utilizan esta tecnologa tienen la extensin .asp.

25/51

Tema 2. HTTP

11. JSP JSP (Java Server Pages), que es similar a PHP, excepto que la parte dinmica se escribe en el lenguaje de programacin Java en vez de PHP. JSP est desarrollado por Sun Microsystems y es una tecnologa Java que permite generar contenido dinmico para Web, en forma de documentos HTML, XML o de otro tipo. De este modo, las JSP permiten la utilizacin de cdigo Java mediante scripts. Adems es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. Estas etiquetas pueden ser enriquecidas mediante la utilizacin de libreras de etiquetas (taglibs) externas e incluso personalizadas. Las pginas que utilizan JSP tienen la extensin .jsp.

26/51

Tema 2. HTTP

12. PHP PHP es un lenguaje de script que se ejecuta en el lado del servidor (server-side scripting), embebido dentro de pginas html. Al ser un lenguaje de script, se programa mediante simples sentencias o frases (no compiladas), que son interpretadas por el motor PHP instalado en el servidor, devolviendo al visitante de la pgina el texto resultante. Esto quiere decir que en el cdigo fuente de la pgina final slo hay html, nada de php. Es multiplataforma: puede ejecutarse en entornos Unix, Windows y otros. Es independiente del navegador, ya que el codigo php se ejecuta en el servidor, que devuelve al navegador slo texto. PHP es no propietario (a diferencia de ASP de Microsoft) y est en el entorno open source. En su desarrollo hay un proceso de colaboracin que hace que estn inmediatamente disponibles, de forma gratuta, una enorme cantidad de recursos: el lenguaje en s, el servidor para ejecutarlo, manuales, tutoriales, y sobre todo scripts que se pueden descargar y usar en cuestin de minutos.

27/51

Tema 2. HTTP

12.1. Descarga e instalacin La pgina oficial de PHP es http://www.php.net y contiene todo lo referente a PHP: descargas, documentacin, etc. Hay versiones para windows y hay otras para Linux. En Windows la instalacin se realiza con un asistente (Setup Wizard). Hay que indicar donde se encuentra el directorio de configuracin de Apache, para que el instalador pueda modificar el archivo httpd.conf.

28/51

Tema 2. HTTP

12.2. PHP embebido en HTML Las sentencias PHP van embebidas (mezcladas) con el cdigo HTML. Para que el servidor las reconozca como lo que son, y las ejecute, se sustituye la extensin habitual de la pgina .html por .php. Se separa en el cuerpo de la pgina lo que es html y lo que es cdigo php ejecutable marcando el inicio y final de este mediante etiquetas de inicio y cierre, y hay tres formas de hacerlo: <?php ... ?> <? ... ?> <script language=php> ... </script> Ante una pgina que contenga HTML y PHP, el servidor web siempre ejecuta primero todo el cdigo PHP y luego enva el HTML resultante al cliente web navegador, para que ste lo interprete y muestre el resultado al usuario. En HTML podemos escribir el cdigo en maysculas o minsculas, da lo mismo. Pero en PHP algunas cosas van obligatoriamente en maysculas (por ejemplo, $_GET, $_POST) otras en minsculas (echo, if, else, while, etc). En cuanto a las variables de usuario, $Nombre no es lo mismo que $NOMBRE.

29/51

Tema 2. HTTP

12.3. Variables Las variables en PHP empiezan por el smbolo $. No es necesario declararlas previamente, se crean automticamente al asignarles un valor. Pueden ser numricas, de texto, de fecha y booleanas. Ejemplos: $nombre='Jos Garca Prez'; $x=5; 12.4. La orden echo La sentencia ms utilizada en PHP es echo, que copia texto en el cdigo HTML resultante. As es como se obtienen pginas web dinmicas, ya que todo o parte del cdigo HTML es generado en el servidor sobre la marcha. Ese texto puede ser un literal entrecomillado, la llamada a una funcin, el contenido de una variable o una expresin combinacin de las anteriores. Ejemplos: echo 'hola mundo'; echo 'Mi nombre es '.$nombre;

30/51

Tema 2. HTTP

12.5. Estructuras de control Son las mismas del lenguaje C: if-else, switch-case, for, while y do-while. 12.6. Recibir datos de un formulario Los datos que el usuario introduce en los campos de un formulario HTML son enviados con frecuencia a una pgina PHP. Incluso la pgina destinataria puede ser la misma en la que est el formulario. Cuando en el formulario se usa el mtodo POST, en PHP disponemos de las variables $_POST[<name>]. Cuando de usa el mtodo GET, las variables son $_GET[<name>]. Supongamos el formulario de la diapositiva 6. La pgina que recibe los datos, alumno.php, puede mostrar en pantalla el apellido y el nombre del alumno y su color favorito de la siguiente forma: echo 'Apellidos y nombre: '.$_POST[APENOM]; echo 'Color favorito: '.$_POST[MICOLOR]; 12.7. Recibir parmetros Las pginas PHP pueden recibir parmetros aadiendo al final de la URL el smbolo ? y los valores de los parmetros. Si hay ms de un parmetro se separan con el smbolo &. As la pgina puede comportarse de forma distinta en funcin del valor de los parmetros recibidos. Ejemplo: www.mipagina.php?numero=3&idioma=ingles Entonces la pgina que recibe los parmetros accede a sus valores mediante $_GET de la siguiente forma: echo Nmero: .$_GET[numero]; echo Idioma: .$_GET[idioma];
31/51

Tema 2. HTTP

12.8. Subir ficheros Muchas veces un formulario permite al usuario subir un fichero al servidor, mediante un input de tipo file. El archivo recibido en el servidor se guarda en una carpeta temporal desde donde se suele luego copiar a otra ubicacin. Mediante la variable $_FILES podemos acceder al fichero. El formulario HTML que enva los datos debe utilizar el mtodo POST y enctype=multipart/formdata. Supongamos el formulario de la diapositiva 6. La pgina que recibe los datos, alumno.php, puede procesar el archivo recibido de la siguiente forma: $nom_archivo=$_FILES[FOTO]['name']; $tam_archivo=$_FILES[FOTO]['size']; $tem_archivo=$_FILES[FOTO]['tmp_name']; echo '<p>nombre del archivo: '.$nom_archivo; echo '<p>tamao del archivo: '.$tam_archivo; echo '<p>nombre temporal del archivo: '.$tem_archivo; if (move_uploaded_file($tem_archivo,imgenes/.$nom_archivo)) echo "<p>El archivo ha sido cargado correctamente."; else echo "<p>Ocurri algn error al subir el fichero.";

32/51

Tema 2. HTTP

13. MySQL Es un sistema de gestin de bases de datos (SGBD) relacional. En una base de datos relacional la informacin se estructura en tablas. Las tablas son un conjunto de filas o registros. Las columnas de la tablas se llaman campos. Es un servidor de bases de datos, lo mismo que Oracle y SQL Server de Microsoft. Otros SGBD, como Access no son servidores, sino bases de datos de escritorio. Existen multitud de aplicaciones clientes de distintos fabricantes que pueden acceder a un servidor MySQL. Es de libre distribucin y cdigo abierto. Multiplataforma: existen versiones para Linux, Windows, etc. Utiliza el lenguaje estndar de bases de datos SQL. Se puede acceder a la base de datos a travs de pginas PHP. El lenguaje PHP dispone de una biblioteca de funciones muy completa para acceder a MySQL. En un servidor MySQL puede haber varias bases de datos. Cada base de datos es, bsicamente, un conjunto de tablas relacionadas entre s.

33/51

Tema 2. HTTP

13.1. Descarga e instalacin La pgina oficial de Mysql http://www.mysql.com contiene todo lo referente al proyecto del servidor mysql, documentacin, descargas, etc. Existen versiones para Windows y tambin hay para Linux. En Windows la instalacin se realiza con un asistente.

34/51

Tema 2. HTTP

13.2. Servicio MySQL se instala como un servicio de Windows. El servicio puede arrancarse manualmente o de forma automtica. Para arrancar, parar y ver el estado del servicio entramos en: Inicio - Panel de control - Herramientas Administrativas Servicios

35/51

Tema 2. HTTP

13.3. Herramientas Front-End En principio, el servidor MySQL se maneja mediante una consola de lnea de comandos, pero esto es complicado para la mayora de los usuarios. Existen multitud de herramientas clientes Front-End de libre distribucin para acceder al servidor MySQL. Estos programas tienen una interfaz grfica que permite manejar la base de datos de forma sencilla, sin tener que usar comandos. Las operaciones que se pueden hacer con estos programas son: Iniciar y terminar conexiones a un servidor MySQL local o remoto. Es necesaria la direccin IP del servidor, un nombre de usuario autorizado y su contrasea. Crear, modificar y eliminar bases de datos. Crear, modificar y eliminar tablas. Editar los datos contenidos en las tablas. Ejecutar consultas en SQL Una de las herramientas ms populares es MySQL-Front, que se puede descargar gratuitamente desde www.mysqlfront.de.

36/51

Tema 2. HTTP

13.4. SQL (I) SQL (Structured Query Languaje) o Lenguaje de Consulta Estructurado es el lenguaje estndar de las bases de datos. Lo utilizan todos los sistemas de bases de datos actuales. Permite realizar todo tipo de operaciones en la base de datos, desde la definicin de datos (crear, modificar y eliminar tablas) hasta la manipulacin de datos (crear, modificar y eliminar los datos que estn dentro de las tablas). Es no procedimental, a diferencia de PHP o C. Esto quiere decir que no hay que indicar el procedimiento o algoritmo para solucionar un problema. Tan slo hay que decir cul es el resultado que se quiere obtener. En SQL las maysculas y las minsculas se pueden usar indistintamente para las palabras reservadas del lenguaje (SELECT, FROM, WHERE, UPDATE, etc). Sin embargo, al menos en MySQL, en los nombres de las tablas o los nombres de las columnas no es lo mismo Apenom que APENOM.

37/51

Tema 2. HTTP

13.4. SQL (II)


DESCRIPCIN Consultar los datos de una tabla. El resultado es un conjunto de registros de la tabla. SINTAXIS SELECT <lista de campos> FROM <tabla> [WHERE <condicin>] [ORDER BY <lista de campos>] EJEMPLO SELECT alumno_id, apenom FROM alumnos WHERE nota>=5 ORDER BY 1

Modificar los datos de uno o varios registros. Si no se indica un criterio se modifican todos los registros de la tabla. Borrar uno o varios registros de una tabla. Si no se indica un criterio se borran todos los registros de la tabla. Insertar uno o varios registros en una tabla. Los campos autonumricos no se insertan ya que se calculan automticamente.

UPDATE <tabla> SET <lista de asignaciones> [WHERE <condicin>]

UPDATE alumnos SET nota=3, apenom=Daz Mrquez, Jos WHERE alumno_id=2 DELETE FROM alumnos WHERE nota<5

DELETE FROM <tabla> [WHERE <criterio>]

INSERT INTO <tabla> (<lista_campos>) VALUES (<lista_valores>)

INSERT INTO CLIENTES (nif, apenom, fec_nac) VALUES (12345,Smith, John","1970/11/30"),

38/51

Tema 2. HTTP

13.5. Acceso a MySQL con PHP (I) mysql_connect(<servidor>, <usuario>, <contrasea>) Para conectar con el servidor. El primer parmetro puede ser una direcin IP o un nombre de dominio. Si no se consigue conectar, se muestra el mensaje de error especificado despus de or die. Ejemplo: $conexin=mysql_connect(localhost,miblog,marisma) or die("No puedo conectar"); mysql_close(<conexin>) Para desconentar una conexin. El parmetro es una variable con la conexin que se obtiene al llamar a la funcin mysql_connect. Ejemplo: mysql_close($conexion);

39/51

Tema 2. HTTP

13.5. Acceso a MySQL mediante PHP (II) mysql_select_db(<base de datos>) Para seleccionar o abrir una base de datos. El parmetro es el nombre de la base de datos. Si no se consigue abrir, se muestra el mensaje de error especificado despus de or die. Ejemplo: mysql_select_db($dbname) or die("No puedo abrir la bd"); mysql_query(<orden sql>) Ejecuta una orden SQL (SELECT, INSERT, DELETE o UPDATE) que se pasa como parmetro. En el caso de SELECT, devuelve un conjunto de registros que deben guardarse en una variable. Ejemplos: mysql_query(DELETE FROM alumnos WHERE alumno_id=4); $result=mysql_query(SELECT * FROM alumnos);

40/51

Tema 2. HTTP

13.5. Acceso a MySQL con PHP (III) mysql_fetch_array(<conjunto de registros>) Para obtener el siguiente registro de un conjunto de registros. El registro que devuelve la funcin se guarda en una variable para poder acceder a sus campos. Cuando no hay ms regsitros en el conjunto, la funcin devuelve un valor falso. Normalmente se utiliza dentro de un bucle para recorrer todos los registros del conjunto. Ejemplo: $result=mysql_query('SELECT alumno_id,apenom from alumnos'); while ($reg=mysql_fetch_array($result)) echo <p>.$reg['alumno_id'].&nbsp'.$reg['apenom'];

41/51

Tema 2. HTTP

13.5. Acceso a MySQL con PHP (IV) mysql_error() Devuelve un valor verdadero si la ltima llamada a la funcin mysql_query devolvi un error, o falso si funcion correctamente. Ejemplo: mysql_query=DELETE FROM alumnos WHERE nota<5; mysql_query($query); if (mysql_error()) echo 'Error al borrar'; else echo 'Se han borrado '.mysql_affected_rows(). registros'; mysql_affected_rows() Devuelve el nmero de filas afectadas por la ltima llamada a la funcin mysql_query. El ejemplo est en el fragmento de cdigo anterior.
42/51

Tema 2. HTTP

14. Pginas dinmicas en el cliente Las secuencias de comandos CGI, PHP, ASP.NET, JSP y ColdFusion resuelven el problema de manejar formularios e interacciones de bases de datos en el servidor. Pueden aceptar informacin entrante de formularios, buscar informacin en bases de datos y generar pginas HTML con los resultados. Sin embargo, ninguno de ellos puede responder a los movimientos del ratn o interactuar de manera directa con los usuarios. Para ello es necesario tener secuencias de comandos incrustadas en pginas HTML que se ejecuten en la mquina cliente y no en el servidor. Las secuencias de tales comandos son posibles comenzando con la etiqueta <script>. El lenguaje de secuencias de comandos ms popular para cliente es JavaScript. En este caso, todo el trabajo se realiza de manera local en el navegador, no hay contacto con el servidor, por lo que generalmente es ms rpido. Otras alternativas populares son los applets de Java, los controles ActiveX y las animaciones Flash. Los usos de JavaScript y PHP son completamente diferentes. PHP, ASP y JSP se utilizan cuando es necesaria la interaccin con una base de datos remota. JavaScript se utiliza cuando la interaccin es con el usuario en la mquina cliente. Es posible y comn tener pginas que utilicen PHP y JavaScript u otros lenguajes simultneamente, aunque stas no pueden hacer el mismo trabajo. JavaScript, por ejemplo, es muy empleado para comprobar la validez de los campos introducidos en el formulario antes de realizar el envo al servidor, conseguir efectos visuales y sonoros, textos en movimiento, utilidades (relojes, calendarios, programas educativos, juegos interactivos, etc.), etc.

43/51

Tema 2. HTTP

15. Javascript JavaScript es un lenguaje de script para pginas web. En eso se parece a PHP. Se ejecuta en el lado del cliente. Esta es su gran diferencia con PHP, que se ejecuta en el lado del servidor. Por tanto con Javascript no se tiene acceso al servidor ni a las bases de datos que en l se alojen. Su sintaxis est inspirada en el lenguaje Java y tambin est orientado a objetos y guiado por eventos. Un evento es alguna accin del usuario en una pgina web (un clic en un botn, cambiar una seleccin en un cuadro combinado, situar el puntero del ratn sobre un elemento, etc) Todos los navegadores web son capaces de interpretar JavaScript sin necesidad de instalar software adicional. Permite el desarrollo de interfaces de usuario mejoradas (mens desplegables, ventanas emergentes, etc) y pginas web dinmicas. JavaScript -que no tiene relacin con Java a pesar de su nombre- es un lenguaje de scripts interpretado que est embebido en los navegadores Web (el propio navegador es el intrprete y no hay mquinas virtuales para ello). De este modo, permite a los desarrolladores Web crear pginas HTML dinmicas que procesen la entrada del usuario y que sean capaces de gestionar datos persistentes usando objetos especiales, archivos y bases de datos relacionales. El cdigo JavaScript para cliente se integra directamente en pginas HTML (a veces por modularidad se separa en ficheros con extensin .js) y es interpretado, en su totalidad, por el cliente Web en tiempo de ejecucin, sirviendo as para todos los sistemas operativos. Puesto que con frecuencia es necesario ofrecer el mayor rendimiento posible, las aplicaciones JavaScript desarrolladas para servidores se pueden compilar antes de instalarlas en dichos servidores.
44/51

Tema 2. HTTP

15.1. JavasScript embebido en HTML Las sentencias JavaScript van embebidas (mezcladas) con el cdigo HTML. Para que el navegador las reconozca como lo que son, y las ejecute, se mantiene la extensin habitual de la pgina .html o .php", segn el caso. Se separa en el cuerpo de la pgina lo que es HTML y lo que es cdigo JavaScript ejecutable marcando el inicio y final de este mediante etiquetas de inicio y cierre: <script language=Javascript> ... </script> Es aconsejable poner script en un archivo aparte con extensin "js" y hacer referencia a l desde la pgina principal con el atributo "src": <script language=JavaScript src=mis_scripts/script01.js> En HTML podemos escribir el cdigo en maysculas o minsculas, da igual. Pero en JavaScript ocurre lo mismo que en PHP: las palabras reservadas van siempre en minsculas (if, else, while, etc) y en cuanto a las variables de usuario, Nombre no es lo mismo que NOMBRE.

45/51

Tema 2. HTTP

15.2. Validacin de formularios (I) Es frecuente usar JavaScript para la validacin de formularios. Antes de enviar un formulario al servidor, una funcin escrita en JavaScript puede comprobar que no haya campos obligatorios en blanco y que los valores de los campos estn dentro de un rango aceptable. Esta funcin se guarda en el fichero "Script01.js". function Validar() { if (document.miform.descripcion.value.length==0) mensaje=mensaje+"La descripcin no puede estar en blanco\n"; for(var i=0;i<document.miform.precio.value.length;i++) if((document.miform.precio.value.charAt(i)<'0' || document.miform.precio.value.charAt(i)>'9') && document.miform.precio.value.charAt(i)!='.') { mensaje=mensaje+"El precio contiene caracteres no numricos\n"; break; } if (mensaje.length>0) alert(mensaje); else document.miform.submit(); }

46/51

Tema 2. HTTP

15.2. Validacin de formularios (II) El formulario HTML, guardado en un archivo distinto, contiene una referencia al fichero "Script01.js". Cuando el usuario pulsa el botn (evento onClick) se ejecuta la funcin "Validar". <html> <head> <title>Validar un formulario con JavaScript</title> </head> <script language=JavaScript src=validar.js></script> <form name=miform method=post action=anuncio_insert.php> <table> <tr><td>Fecha:</td> <td><input name=fecha type=text></td></tr> <tr><td>Descripcin:</td> <td><input name=descripcion type=text></td></tr> <tr><td>Precio:</td> <td><input name=precio type=text></td></tr> </table> <br><input value=Insertar type=button onClick=Validar() </form>

47/51

Tema 2. HTTP

16. ActiveX La respuesta de Microsoft a los applets de Java fueron los controles ActiveX, que son programas compilados para lenguaje mquina Pentium -extensin .ocx- y ejecutados en el hardware. Cuando el navegador ve un control ActiveX en una pgina Web, lo descarga, verifica su identidad y lo ejecuta. Los controles ActiveX son muy rpidos y verstiles, pero tradicionalmente han presentado problemas de seguridad. Tambin tienen problemas de compatibilidad con plataformas distintas a Windows.

48/51

Tema 2. HTTP

17. Flash Flash de Adobe (antes Macromedia) es otro medio para integrar aplicaciones dentro de una pgina Web que ha desbancado a Java. Adobe ha creado en torno a Flash una herramienta muy amigable y multiplataforma para crear animaciones y aplicaciones, e incluso ofrecer vdeo y audio en streaming. Los ficheros que genera con extensin .swf- son muy compactos, se transmiten rpidamente y pueden visualizarse durante su descarga, siendo adems compatibles con la mayora de los navegadores existentes. Los diseadores de la Web utilizan Flash para crear controles de navegacin, logotipos animados, animaciones de gran formato con sonido sincronizado e incluso sitios Web con capacidad sensorial. Flash le permite animar objetos para dar la impresin de que se mueven por la pantalla, as como cambiar su forma, tamao, color, opacidad, rotacin y otras propiedades. Tambin puede crear animacin fotograma a fotograma, creando una imagen diferente para cada fotograma. Otra posibilidad consiste en crear una animacin interpolada, es decir, crear los fotogramas primero y ltimo de una animacin y dejar que Flash cree los fotogramas intermedios. Las pelculas Flash son grficos vectoriales compactos que se descargan y se adaptan de inmediato al tamao de la pantalla del usuario. Para soportar Flash, se debe instalar el plugin Flash Player en el navegador.

49/51

Tema 2. HTTP

18. Applets Java Los applets son pequeos programas de Java que se han compilado -extensin .class- en instrucciones de mquina para una computadora virtual llamada JVM (Java Virtual Machine). Java es un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems basndose en el lenguaje C++. Aunque es tambin un lenguaje de carcter general, su principal caracterstica es la de ser independiente de cualquier plataforma. Mientras los applets se almacenan en el servidor pero se ejecutan en el lado cliente previa descarga, los servlets son aplicaciones que se almacenan y ejecutan en el servidor (sustituyen a las CGI). Si en una de nuestras pginas hemos referenciado a un applet (mediante la etiqueta <applet>), cuando un usuario cargue la pgina, recibir del servidor dicho applet (al igual que ocurre con una imagen o sonido), y se ejecutar en su navegador. Debido a que los subprogramas de Java se interpretan en vez de ejecutarse directamente, el intrprete Java puede evitar que realicen acciones que puedan daar la seguridad del PC.

50/51

Tema 2. HTTP

19. AJAX AJAX (Asynchronous JavaScript And XML) es un trmino que engloba a la utilizacin de varias tecnologas, para crear aplicaciones Web dinmicas que se ejecutan en el cliente mediante JavaScript y XML, junto a XHTML y HTML con CSS. Puesto que permiten realizar cambios sobre la misma pgina sin necesidad de recargarla, se consigue un notable aumento de interactividad, velocidad y usabilidad.

51/51

Вам также может понравиться