Sie sind auf Seite 1von 14

TALLER RUBY ON RAILS

1. Que es Ruby

Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el


programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y
lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con
características de programación orientada a objetos similares a Smalltalk. Comparte también
funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un
lenguaje de programación interpretado en una sola pasada y su implementación oficial es
distribuida bajo una licencia de software libre.

2. que es rails

Rails es un framework para el desarrollo de aplicaciones web, software libre por naturaleza, está
basado en el patrón de diseño Modelo Vista Controlador (MVC). Fue creado por David Heinemeier
Hansson, empleado de la empresa 37signals.

Fue liberado por primera vez al público en julio del 2004, y lo implemento en una aplicación
orientada a la administración de proyectos llamada Basecamp. Actualmente se unieron más
personas al desarrollo de Rails podemos visualizar aquí a los integrantes. Rails está basado en
estos principios de desarrollo:

3. Defina la arquitectura MVC, ayúdese con una gráfica y explique sus componentes

Modelo/Vista/Controlador

Definición de las partes:

El Modelo: Es el objeto que representa los datos del programa. Maneja los datos y controla todas
sus transformaciones. El Modelo no tiene conocimiento específico de los Controladores o de las
Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la
responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando
cambia el Modelo.
La Vista: Es el objeto que maneja la presentación visual de los datos representados por el Modelo.
Genera una representación visual del Modelo y muestra los datos al usuario. Interactúa con el
Modelo a través de una referencia al propio Modelo.

El Controlador: Es el objeto que proporciona significado a las órdenes del usuario, actuando sobre
los datos representados por el Modelo. Cuando se realiza algún cambio, entra en acción, bien sea
por cambios en la información del Modelo o por alteraciones de la Vista. Interactúa con el Modelo
a través de una referencia al propio Modelo.

4. Que es un IDE (programación)

Un IDE es un entorno de programación que ha sido empaquetado como un programa de


aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un
constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser
parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de
las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma
de macros para Microsoft Word.
Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación
tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede
funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de
programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como
es el caso de Smalltalk u Objective-C.
Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el
caso de Eclipse, al que mediante plugins se le puede añadir soporte de lenguajes adicionales.

5. Framework
Un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con
artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede
ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un
lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes
componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las entidades del
dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las
aplicaciones del dominio.

6. GEM

7. Clase

Una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de
ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase
comparten. Un objeto de una determinada clase se denomina una instancia de la clase. La clase
que contiene (y se utilizó para crear) esa instancia se puede considerar como del tipo de ese
objeto, por ejemplo, una instancia del objeto de la clase "Personas" sería del tipo "Personas".
Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente
bastante abstracta) cosa - es el modelo de un concepto dentro de un programa de computadora.
Fundamentalmente, encapsula el estado y el comportamiento del concepto que representa.
Encapsula el estado a través de marcadores de datos llamados atributos (o variable miembro o
variables de instancia), encapsula el comportamiento a través de secciones de código reutilizables
llamados métodos.

8. Defina la estructura de un proyecto rails (versión 3), construya una imagen

La característica más destacable de un proyecto Rails es la división física de los archivos, para
fortalecer la división de sus funciones siguiendo el patrón Modelo-Vista-Controlador. Veamos los
directorios más empleados de los que componen esta estructura.
App

Esta carpeta contiene los archivos que forman el sitio, repartidos según sus características en los
subdirectorios controllers, helpers, models y views.

Models: la función principal de los modelos es la obtención de datos, almacenados en una base
de datos, un fichero, etc., y de controlar la integridad de estos datos.

Views: en una página web, las vistas son las distintas interfaces del usuario. A su vez, contiene
una carpeta denominada Layout. Aquí, están unos ficheros que incluyen, básicamente, el apartado
head de un archivo html. Después, por medio de bloques Ruby, se añade el cuerpo de las vistas
para conformar el fichero completo.

Controllers: guarda los archivos correspondientes a los controladores del sistema. Su trabajo
consiste en recibir eventos del usuario (envío de formulario, pulsación de un enlace), invocar al
modelo para recuperar los datos que necesita, y trasladarlos a la vista, para que los muestre.
Cuando se definen las acciones de un controlador, se debe crear una vista para cada una de estas
acciones. Cuando se invocan estos métodos, tras su ejecución, se muestra automáticamente la
vista correspondiente al método ejecutado. A su vez, si es necesario, se puede crear un modelo
para el controlador.

config
En esta carpeta, se almacenan los archivos de configuración del proyecto. Los archivos que
nosotros solemos modificar son routes.rb y database.yml. En el primero, es posible modificar el
controlador y su acción que se ejecutarán al acceder al sitio. En el otro, podemos modificar el
nombre de la base de datos asociada al proyecto.

db
Principalmente, esta carpeta incluye las migraciones, es decir, los archivos de creacion y edición de
la base de datos relacionada con el proyecto.

doc
Aquí se almacena la documentación del proyecto.

Los log
archivos guardados en este directorio son registros de la ejecución del sitio.
public
Este directorio tiene las imágenes que se muestran en las distintas vistas del proyecto, así como
las hojas de estilo empleadas.DEFINICION DE CONCEPTOS SOBRE RUBY ON RAIL

9. Defina la arquitectura Cliente Servidor

QUE ES UNA ARQUITECTURA

Una arquitectura es un entramado de componentes funcionales que aprovechando diferentes


estándares, convenciones, reglas y procesos, permite integrar una amplia gama de productos y
servicios informáticos, de manera que pueden ser utilizados eficazmente dentro de la
organización.

Debemos señalar que para seleccionar el modelo de una arquitectura, hay que partir del contexto
tecnológico y organizativo del momento y, que la arquitectura Cliente/Servidor requiere una
determinada especialización de cada uno de los diferentes componentes que la integran.

QUE ES UN CLIENTE

Es el que inicia un requerimiento de servicio. El requerimiento inicial puede convertirse en


múltiples requerimientos de trabajo a través de redes LAN o WAN. La ubicación de los datos o de
las aplicaciones es totalmente transparente para el cliente.

QUE ES UN SERVIDOR

Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los
servidores pueden estar conectados a los clientes a través de redes LANs o WANs, para proveer de
múltiples servicios a los clientes y ciudadanos tales como impresión, acceso a bases de datos, fax,
procesamiento de imágenes, etc.

10. Como se llama el archivo de configuración de la base de datos en rails

Para configurar la conexión a la base de datos, rails pone a nuestra disposición el archivo
“database.yml” ubicado en config -> database.yml. Este archivo nos permite configurar la
conexión a tres bases de datos. Tres bases de datos para tres entornos: development (desarrollo),
test (prueba) y production (producción).

11. Haga una conexión de base de datos en sqlite3 y rails

12. Haga una conexión de base de datos en mysql y rails

13. Que es scaffold

La palabra Scaffold está en inglés y en español significa Andamio, pero en programación el


scaffolding es un método para construir aplicaciones basadas en bases de datos, esta técnica está
soportada por algunos frameworks del tipo MVC en el cuál el programador escribe una
especificación que describe cómo debe ser usada la base de datos. Luego el compilador utiliza esa
especificación para generar el código que la aplicación usará para crear, leer, actualizar y eliminar
registros de la base de datos, esto es conocido como CRUD (create, read, update, delete).El
Scaffolding fue popularizado por el framework Ruby on Rails y ahora es utilizado por otros
frameworks también cómo CakePHP, Symfony.

14. Que son las rutas REST en rails

Es un paradigma para definir rutas en aplicaciones web. En base a REST, las aplicaciones de Rails
determinan qué parte de aplicación mostrar y cómo responder a las solicitudes del usuario.

15. Que va en la capa model

16. Que es ORM (object-relational mapping)

El ORM es un componente de software que me permite trabajar con los datos persistidos como si
ellos fueran parte de una base de datos orientada a objetos (en este caso virtual). Debido a que lo
standard es trabajar con BD relacionales, se deben realizar operaciones que permitan transformar
un registro en objeto y viceversa. A esta funcionalidad se la llama Mapeo objeto-relacional (ORM).
Uno de los componentes ORM más utilizado (sino el más...) es el Hibernate, surgido del ambiente
Java y llevado al uso del framework .NET con la versión NHibernate
Para poder explicar el porqué de la existencia de esta tecnología, nada mejor que un ppt que
preparé para una clase sobre este tema a los alumnos del último año de TSSI, que les dejo
disponible a continuación.
17. Que es Active Record

Definición:

Es un objeto que representa una fila en una tabla de una base de datos, encapsula su acceso a la
base de datos y añade lógica de negocio.

Es la aproximación más obvia, poniendo el acceso a la base datos en el propio objeto de negocio.
De este modo es evidente como manipular la persistencia a través del mismo.

Explicación:

Gran parte de este patrón viene de un Domain Model y esto significa que las clases están muy
cercanas a la representación en la base de datos. Cada Active Record es responsable de sí mismo,
tanto en lo relacionado con persistencia como en su lógica de negocio.

Generalmente proveerá métodos como:

• Construir una instancia de la clase desde una fila de un resultado de una consulta.
• Construir una nueva instancia para insertarlo posteriormente en la tabla.
• Un método estático para buscar.
• Actualización e inserción en la tabla.
• Getter y Setters o bien Propiedades.
• Implementará algunas piezas de la lógica de negocio.

Aunque no todos son totalmente necesarios, ni mucho menos. Sirva el caso del método estático
de búsqueda que los puedes extraer a otra clase, si así es necesario y te aclaras mejor, esto viene
dado por su acoplamiento a la base de datos relacional que habrá por detrás.

18. que es CSS y en que capa del modelo mvc se usa

CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a
las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas
cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra,
fondos, colores...

CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. En este
reportaje vamos a ver algunos de los efectos que se pueden crear con las CSS sin necesidad de
conocer la tecnología entera.

EL Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos
de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El
patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el
código que provee de datos dinámicos a la página, el modelo es el Sistema de Gestión de Base de
Datos y la Lógica de negocio y el controlador es el responsable de recibir los eventos de entrada
desde la vista.
19. que es jquery y para qué sirve

jQuery es un framework Javascript, pero quizás muchos de los lectores se preguntarán qué es un
framework. Pues es un producto que sirve como base para la programación avanzada de
aplicaciones, que aporta una serie de funciones o códigos para realizar tareas habituales. Por
decirlo de otra manera, framework son unas librerías de código que contienen procesos o rutinas
ya listos para usar. Los programadores utilizan los frameworks para no tener que desarrollar ellos
mismos las tareas más básicas, puesto que en el propio framework ya hay implementaciones que
están probadas, funcionan y no se necesitan volver a programar.

20. Defina los 3 entornos rails y para que se usa cada uno.

 El entorno de desarrollo: (development) optimiza la productividad del desarrollador. Las


caches apenas operan, así que los cambios en el código de la aplicación se aprecian
rápidamente, sin tener que recompilar o volver a desplegar nada. Sólo hay que recargar la
página del navegador. Por esta razón Ruby on Rails es más rápido en el desarrollo que, por
ejemplo, la plataforma Java 2.
 El entorno de pruebas: (test) está optimizado para ejecutar pruebas unitarias, de
integración y funcionales. Cada vez que se ejecuta una prueba, la base de datos se limpia de
todos sus datos. Ruby on Rails se encarga de poblar la base de datos con datos de prueba
antes de cada test, a través de las fixtures.
 El entorno de producción: (production) es donde se despliega la aplicación final. Este
entorno está optmizado para rendimiento, lo que significa, por ejemplo, que las clases están
en cache.

Hay muchas alternativas para trabajar con Ruby on Rails, tanto libres y gratuitas como de pago. A
continuación se listan las principales:

Aptana: Multiplataforma. Nació como plugins de eclipse para la edición y desarrollo web.
Actualmente puedes instalarlo como plugins o autónomo de forma independiente. Las últimas
versiones están muy bien integradas con Ruby on Rails. En este momento Aptana 3 está en una
versión BETA

Netbeans: Uno de los más usados, libre y totalmente gratuito. Viene muy bien integrado con
JRuby (lo cual es algo lógico pues es un programa de Sun).

TextMate: Sólo para Mac. Es el entorno más usado entre la comunidad Rails. Es pago pero su
potencia y forma de trabajo favorece la producción y desarrollo con Ruby on Rails.

Gmate: Un proyecto libre y gratuito para convertir Gedit -el editor de texto de escritorio Gnome
de linux- en un clon muy aproximado de Textmate. Esto se consigue instalando diferentes plugins,
temas y retocando algunas opciones. Al ser gratuito es una opción que está cogiendo muchos
adeptos hoy en día.
21. Como se llama el archivo donde se visualizan los errores

22. que es Migracion y en que carpeta van dentro de un proyecto rails

Para los no iniciados en Ruby on rails, las migraciones permiten establecer el esqueleto de una
base de datos, tablas y campos, al igual que hacemos con sentencias de SQL, sin utilizar
directamente SQL. Además Ruby on rails, nos permite tener un control de las versiones de
migraciones a ejecutar.
Una vez que hemos hecho rails proyecto (siendo proyecto el nombre del proyecto rails) y cd
proyecto (para colocarnos dentro del proyecto de rails recién creado) creamos nuestras
migraciones.
Comentar para recordar, un proyecto rails tiene tres tipos de entornos: desarrollo, pruebas y
producción. El entorno Rails llamado “desarrollo” vuelve a cargar las clases cada vez que llame a
una nueva acción, por lo que siempre tiene una copia actualizada de las clases incluyendo los
cambios más recientes. Mientras que en el entorno de producción carga las clases una vez.

Cuando se crea un nuevo proyecto rails, se crea un archivo database.yml, con los tres entornos
desarrollo, pruebas y producción, dicho archivo se encuentra dentro de la carpeta config.

development:
adapter: mysql
encoding: utf8
database: proyecto_development
username: root
password:
socket: /var/run/mysqld/mysqld.sock

Por defecto el nombre de la base de datos en cada uno de los entornos, es el del
proyecto_entorno, en este caso proyecto_development para el proyecto en desarrollo.
Para la realización, de la migración escribimos por consola Ruby script/generate migration nombre
migración, también se genera migraciones al crear los modelos de rails con Ruby script/generate
model nombre modelo.
Cada migración tiene un número ejemplo 001_create_nombremigracion.rb, dicho archivo
aparece en la carpeta “db”, que cuelga del proyecto principal.
Toda migración tiene un método “up” donde se hace un cambio, y un método “down”, donde se
deshace ese cambio. Si creo una tabla en “up”, la destruyo en el “down”, si añado un campo a la
tabla en el “up”, lo elimino en el “down”.
Para ejecutar una migración, es necesario escribir rake db:migrate, si tenemos cinco migraciones y
hacemos rake db:migrate se ejecutan las cinco. Si queremos volver a un estando anterior, a la
segunda migración eliminando las tres siguientes, solo tenemos que poner, rake db:migrate
VERSION = 2, si queremos eliminar todo lo realizado, bastaría con poner rake db:migrate
VERSION=0.

Versión 1
1
2
3 class CreateProjects < ActiveRecord::Migration
4 def self.up
5 create_table :projects do |t|
6 t.column :name, :string
7 end
8 end
9
10 def self.down
11 drop_table :projects
12 end
13 end

Versión 2.0
1 class CreateUsers < ActiveRecord::Migration
2 def self.up
3 create_table :users do |t|
4 t.string :nombre, :apellidos, :login, :email, :nombreblog, :fotografia
5 t.boolean :inactiva, :default => false
6 t.timestamps
7 end
8 end
9
10 def self.down
11 drop_table :users
12 end
13 end

En la versión dos, se pueden declarar varios campos de las tablas al mismo tiempo siempre que
sean del mismo tipo, con el ahorro de líneas de código que supone. Cambia la definición del tipo
de dato t.tipo : lista de campos.

23. En que capa se acostumbra hacer las validaciones en rails (validates)

24. Que es el layout

Para los que recién comienzan en el mundo del diseño, el layout es un esquema de distribución de
los elementos dentro de nuestro diseño, el cual presentaremos al cliente para vender la idea y, a
partir de su aceptación, realizar el trabajo final en base a éste. En otras palabras, vendría a ser el
boceto que ofrecemos inicialmente.
Pero el tema pasa por como presentarlo. Para hacerlo de manera profesional, en el mismo
deberemos indicar imágenes y sus significados, textos, tipografías utilizadas, paleta cromática
(colores) y todos los elementos que creemos relevantes para la información hacia nuestro cliente.
Debemos venderle nuestro trabajo y explicar qué y cómo comunicará la idea.

25. Que son los partials

26. En que capa se mapean las relaciones entre las tablas

27. Explique los tipos de relaciones entre modelos rails

28. defina los términos Front-end y back-end

Front-end y back-end son términos que se relacionan con el principio y el final de un proceso.
Estos términos adquieren una relevancia mayor en ciertas áreas particulares

29. Enuncie y explique brevemente metodologías de desarrollo una ágil y otra tradicional

Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en la
planificación y control del proyecto, en especificación precisa de requisitos y modelado, reciben el
apelativo de Metodologías Tradicionales o Pesadas. [27]

Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo
del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la
planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo
de desarrollo del producto software. Se centran especialmente en el control del proceso,
mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para
el modelado y documentación detallada [42]. Además, las metodologías tradicionales no se
adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja
en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.

Entre las metodologías tradicionales o pesadas podemos citar:

• RUP (Rational Unified Process)

• MSF (Microsoft Solution Framework)

• Win-Win Spiral Model

• Iconix

Pero sin dudas adaptarse a la agitada sociedad actual implica ser “ágil”, es decir, tener la
capacidad de proveer respuestas rápidas y ser adaptables al cambio. Ambas cualidades siempre
han sido deseables, pero en el entorno de negocio actual resultan indispensables. Este
requerimiento de agilidad en las empresas, gobiernos y cualquier otra organización provoca que el
software también deba ser desarrollado de manera ágil.
Las necesidades de un cliente pueden sufrir cambios importantes del momento de contratación de
un software al momento de su entrega; y es mucho más importante satisfacer estas últimas que
las primeras. Esto requiere procesos de software diferentes que en lugar de rechazar los cambios
sean capaces de incorporarlos.

Los procesos ágiles son una buena elección cuando se trabaja con requisitos desconocidos o
variables. Si no existen requisitos estables, no existe una gran posibilidad de tener un diseño
estable y de seguir un proceso totalmente planificado, que no vaya a variar ni en tiempo ni en
dinero. En estas situaciones, un proceso adaptativo será mucho más efectivo que un proceso
predictivo. Por otra parte, los procesos de desarrollo adaptativos también facilitan la generación
rápida de prototipos y de versiones previos a la entrega final, lo cual agradará al cliente.

Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas
que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y
más satisfactoria tanto para los clientes como para los equipos de entrega.

Entre las metodologías ágiles más destacadas hasta el momento se pueden nombrar:

• XP (Extreme Programming)

• Scrum

• Crystal Clear

• DSDM (Dynamic Systems Development Method)

• FDD (Feature Driven Development)

• ASD (Adaptive Software Development)

• XBreed

• Extreme Modeling

30. Que metodología de desarrollo de software emplearía para rails? Justifíquelo

31. Que es un plugins Rails

(Plug-in) Programa que puede anexarse a otro para aumentar sus funcionalidades (generalmente
sin afectar otras funciones ni afectar la aplicación principal). No se trata de un parche ni de una
actualización, es un módulo aparte que se incluye opcionalmente en una aplicación.

El plugin crea una lista de tareas, notas, ideas, etc. desde el código de nuestra aplicación.
Lee todos los archivos .rb de nuestro proyecto buscando por las etiquetas aceptadas por el plugin
y crea las listas correspondientes.

Para esto se basa en un formato en los comentarios del código.

Formato soportado

#TODO: es una tarea


#IDEA: es una idea
#NOTE: es una nota
#REMOVE: código pendiente de eliminar
#DEBUG: código para revisar
#TEST: código para probar
#DEF: descripción de un método
#CHANGE: código que se debe cambiar
#QUESTION: preguntas pendientes
#FIXME: código con errores conocidos

Instalación

./script/plugin install http://todo-list-rails-plugin.googlecode.com/svn/trunk/todo_list/

Como se utiliza

En la vista que quiero insertar el menú que me lleva a las listas coloco: <%= todo_list %>

El plugin necesita Rails 1.2.0 o posterior para funcionar, si no lo tenemos instalado vamos a
necesitar el plugin engines.

32. Investigue las convenciones rails sobre sus objetos y construyan una entre todo el grupo
ADSI.

33. Cree el esqueleto de un proyecto rails con sqlite3

34. Arranque el servidor de aplicaciones webrick

35. Ingrese por un browser a la aplicación que acaba de crear y poner a correr, copie el
pantallazo e insértelo en este documento
36. Explique los fundamentos de la web

El éxito de la web se basa en dos factores fundamentales: el protocolo HTTP y el lenguaje HTML. El
primero permite una implementación sencilla de un sistema de comunicaciones que permite
enviar cualquier fichero de forma fácil, simplificando el funcionamiento del servidor y
posibilitando que servidores poco potentes atiendan cientos o miles de peticiones y reduzcan de
este modo los costes de despliegue. El segundo, el lenguaje HTML, proporciona un mecanismo
sencillo y muy eficiente de creación de páginas enlazadas.

El protocolo HTTP

El protocolo HTTP (Hypertext Tranfer Protocol) es el protocolo principal de la World Wide Web. Es
un protocolo simple, orientado a conexión y sin estado. Está orientado a conexión porque emplea
para su funcionamiento un protocolo de comunicaciones (TCP, o Transport Control Protocol) de
modo conectado, que establece un canal de comunicaciones entre el cliente y el servidor, por el
cual pasan los bytes que constituyen los datos de la transferencia, en contraposición a los
protocolos denominados de datagrama (o no orientados a conexión) que dividen la serie de datos
en pequeños paquetes (o datagramas) antes de enviarlos, pudiendo llegar por diversas vías del
servidor al cliente. Este protocolo no mantiene estado o, dicho de otro modo, cada transferencia
de datos es una conexión diferente a la anterior, sin relación entre ellas. Por ejemplo, para
transferir una página web debemos enviar el código HTML del texto, por un lado, y las imágenes
que la componen por otro, pues en la especificación inicial 1.0 del protocolo HTTP se abrían y
utilizaban tantas conexiones como componentes tenía la página, trasfiriendo cada componente
por conexiones diferentes .

Existe una variante de HTTP denominada HTTPS (S significa "secure", o "seguro") que utiliza el
protocolo de seguridad SSL (o "Secure Socket Layer") para cifrar y autenticar el tráfico de datos,
muy utilizada por los servidores web orientados al comercio electrónico o por aquellos que
albergan información de tipo personal o confidencial. De forma esquemática, el funcionamiento
de HTTP es como sigue: el cliente establece una conexión TCP con el servidor, hacia el puerto por
defecto para el protocolo HTTP (o el indicado expresamente en la conexión), envía una orden
HTTP de solicitud de un recurso (añadiendo algunas cabeceras con información) y, utilizando la
misma conexión, el servidor responde enviando los datos solicitados y, además, añadiendo
algunas cabeceras con información.

El protocolo también define la forma de codificar el paso de parámetros entre dos páginas, la
tunelización de las conexiones (para sistemas de firewall), define la posible existencia de
servidores intermedios de caché, etc. Las directivas que se utilizan para la petición de información
según se definen en HTTP 1.1 (la versión considerada estable y ampliamente utilizada) son:

GET: Petición de un recurso.


POST: Petición de un recurso enviando parámetros.
HEAD: Petición de algunos datos sobre un recurso.
PUT: Creación o envío de un recurso.
DELETE: Borrado de un recurso.
TRACE: Devolución de la petición a su origen tal como la había recibido el receptor, para la
depuración de errores.
OPTIONS: Comprueba la capacidad del servidor.
CONNECT: Se reserva para su uso en servidores intermedios con capacidad para funcionar como
túneles entre otros servidores.

El lenguaje HTML

El otro factor principal del éxito del World Wide Web ha sido el lenguaje HTML ("Hypertext Mark-
up Language", o "Lenguaje de Marcado de Hipertexto"), que es un lenguaje de marcas (se insertan
marcas o etiquetas en el texto) que permite representar de forma rica el contenido y referenciar
otros recursos (por ejemplo, imágenes), o enlaces a otros documentos (que es, precisamente, la
característica más destacada de la web), mostrar formularios para su posterior procesamiento,
etc.

El lenguaje HTML se encuentra en la actualidad en la versión 4.01 y empieza a proporcionar


algunas funcionalidades más avanzadas. Se ha definido una especificación compatible con HTML,
llamada XHTML ("Extensible Hypertext Markup Language" o "Lenguaje Extensible de Marcado de
Hipertexto") que se define a menudo como una versión XML validable de HTML, que proporciona
un "XML Schema" contra el cual es posible validar el documento con el objeto de comprobar si
está bien formado.

37. Defina la estructura de un documento HTML

Un documento HTML está definido por una etiqueta de apertura <HTML> y una etiqueta de
cierre </HTML>. Dentro de este se dividen dos partes fundamentales la cabecera, delimitada por
la etiqueta<HEAD> y el cuerpo, delimitado por la etiqueta <BODY>. Por tanto la estructura de un
documento HTML será:

<HTML>
<HEAD>
Definiciones de la cabecera
</HEAD>
<BODY>
Instrucciones HTML
</BODY>
</HTML>

Ninguno de estos elementos es obligatorio, pudiendo componer documentos HTML que se


muestren sin ningún problema sin incluir estas etiquetas de identificación. Si se utilizan elementos
que forzosamente deban ser incluidos en la cabecera (como la etiqueta de título), no serán
reconocidos correctamente si no se incluyen entre las etiquetas de <HEAD>.

Das könnte Ihnen auch gefallen