39

Fundamentos tecnologías web

Embed Size (px)

Citation preview

Page 1: Fundamentos tecnologías web
Page 2: Fundamentos tecnologías web

P á g i n a | 1

QUÉ ES INTERNET

Es un sistema descentralizado de redes de ordenadores

conectadas entre sí, distribuidas a nivel mundial, que ofrece

servicios de comunicación de datos.

QUÉ ES WEB

Sistema de distribución y recuperación de documentos basados

en hipertexto.

Page 3: Fundamentos tecnologías web

P á g i n a | 2

QUÉ ES URL (UNIFORM RESOURCE LOCATOR)

Un localizador de recursos uniforme o URL es una secuencia de

caracteres, de acuerdo a un formato modélico y estándar, que se

usa para nombrar recursos en Internet para su localización o

identificación, como por ejemplo documentos textuales,

imágenes, vídeos, presentaciones digitales, etc.

El URL es la cadena de caracteres con la cual se asigna una

dirección única a cada uno de los recursos de información

disponibles en la Internet. Cada página de cada uno de los

documentos de la Web posee su propio URL.

Page 4: Fundamentos tecnologías web

P á g i n a | 3

El URL de un recurso de información es su dirección en Internet,

la cual permite que el navegador la encuentre y la muestre de

forma adecuada.

DNS (DOMAIN NAME SYSTEM)

La misión principal del sistema de nombres de dominio es

resolver la traducción los de nombres de dominio empleados en

la navegación web, a caracteres binarios que puedan ser

interpretados como direcciones IP por los servidores. Aunque

también sirven para localizar a los servidores de correo

electrónico de cada dominio.

Page 5: Fundamentos tecnologías web

P á g i n a | 4

QUÉ SON PROTOCOLOS DE RED

Es un conjunto de normas que regulan la comunicación

(establecimiento, mantenimiento y cancelación) entre los

distintos componentes de una red informática.

Hay dos modelos de protocolos de red que son compatibles

entre sí, el modelo tcp/ip (transport control-internet protocol) y

el modelo osi (open system interconnect).

Page 6: Fundamentos tecnologías web

P á g i n a | 5

IP (INTERNET PROTOCOL)

Es un protocolo que actúa como servicio de datagramas, sin

mecanismos de corrección de errores. Este sistema de

direccionamiento está estructurado en dos jerarquías:

direccionamiento de red y de host. Su funcionamiento está

basado en direcciones lógicas, o IPs. Mantiene implementadas

dos versiones: Ipv4 y Ipv6. En realidad, actualmente Ipv6 está

sirviendo tráfico de red encapsulando los datagramas a través de

Ipv4. Existen dos tipos de dirección IP, la pública y la privada. Y

dos tipos de asignación de IP: estática o fija y dinámica.

Dependiendo este último factor exclusivamente del servidor

DHCP.

Page 7: Fundamentos tecnologías web

P á g i n a | 6

EL PROTOCOLO HTTP

Es el protocolo de transferencia de hipertexto que articula los

intercambios de información entre los navegadores y los

servidores web.

HTTP que no guarda ninguna información sobre conexiones

anteriores. Es un protocolo sin estado.

El desarrollo de aplicaciones web necesita frecuentemente

mantener estado. Para esto se usa la cookie, que es un archivo

de información que el servidor descargará en el equipo del

cliente. Esto le permite a las aplicaciones web refrescar el estado

de conexión de tal forma, que es como si estuviera establecida

una «sesión». Hay una clase de cookie cuya residencia en el

equipo que las recibe es persistente. Se trata de la cookie LSO, o

supercookie.

Page 8: Fundamentos tecnologías web

P á g i n a | 7

NAVEGADORES WEB

COMPONENTES COMUNES

Interfaz de usuario → Marco, barra de dirección y otros elementos.

Motor interno → Gestiona las comunicaciones. Motor de renderizado → Interpreta código HTML y CSS

mostrándolo en pantalla. Comunicaciones → Incorporan HTTP y otros protocolos. Almacenamiento de datos → Almacenamiento interno y

gestión de sesiones. Intérprete JavaScript → Se encarga de ejecutar de forma

interna cualquier script.

Page 9: Fundamentos tecnologías web

P á g i n a | 8

Page 10: Fundamentos tecnologías web

P á g i n a | 9

PARADIGMA CLIENTE-SERVIDOR

Cuando el tiempo de carga de una web equivale a 0,1 segundos,

según el estándar Nielsen, esto representa una experiencia de

navegación ideal para el usuario. Cuando tiempo de respuesta de

la carga de la página web es de un segundo o superior, resulta

inaceptable para el usuario.

Page 11: Fundamentos tecnologías web

P á g i n a | 10

SERVIDORES DEDICADOS Y COMPARTIDOS

La diferencia fundamental entre los dedicados y compartidos

está en el coste. Los compartidos son más baratos. También

tienen más deficiencias en comparación con los dedicados.

Hay varios tipos de plataformas, las principales son las que

corresponde al paradigma AMP, MARS y WISA.

PARADIGMA AMP Apache Server

MySQL

PHP Python

Perl

PARADIGMA MARS MySQL

Apache Server

Ruby

Solaris

PARADIGMA WISA: Windows Server

IIS (Internet Information Services)

SQL Server

Page 12: Fundamentos tecnologías web

P á g i n a | 11

ASP.NET

Page 13: Fundamentos tecnologías web

P á g i n a | 12

PERFILES FRONTEND

Page 14: Fundamentos tecnologías web

P á g i n a | 13

CÓDIGO HTML

El lenguaje de marcas de hipertexto es el lenguaje estándar para

estructurar los contenidos de la web. Fue desarrollado por Tim

Berners-Lee, quien también inventó la web.

Page 15: Fundamentos tecnologías web

P á g i n a | 14

ESTRUCTURA BÁSICA DEL CÓDIGO HTML

H5BP (HTML5 BOILERPLATES)

Es una compilación de archivos CSS, HTML y JavaScript, creados por desarrolladores, que simplifican y aceleran el proceso de construcción de sitios web dinámicos y aplicaciones web.

Page 16: Fundamentos tecnologías web

P á g i n a | 15

BOILERPLATES

Son un conjunto de plantillas construidas en torno a un fin que puede ser estético o funcional. Proveen de un punto de arranque para la creación de sitios web o aplicaciones.

FRAMEWORKS

Son recursos diseñados para ayudar a construir aplicaciones y sitios web.

Pueden incluir: CCS grid, librerías de JavaScript, secuencias de comandos y plantillas HTML.

FRAMEWORKS Y BOILERPLATES

Frameworks como Bootstrap ofrecen soluciones en torno al desarrollo front-end de los sitios web dinámicos y las aplicaciones web, y proporcionan a los desarrolladores el conjunto más completo de herramientas de trabajo.

Los frameworks se emplean en la construcción de prototipos.

El uso de frameworks puede acelerar de forma espectacular el desarrollo de prototipos.

En muchos casos, el código del framework NO se usa en la producción final.

Page 17: Fundamentos tecnologías web

P á g i n a | 16

HOJAS DE ESTILO CSS

Lenguaje para describir el aspecto y el formato de un documento

escrito en un lenguaje de marcado, como HTML.

Page 18: Fundamentos tecnologías web

P á g i n a | 17

PREPROCESADORES CSS

Es un lenguaje de scripts que amplía la funcionalidad de CSS. Debe ser procesado posteriormente para su transformación en CSS normalizado.

VENTAJAS Añaden nuevas

funcionalidades a CSS.

Su sintaxis hace la escritura CSS más eficiente.

Permiten solventar de manera automática muchas incoherencias del navegador en el procesamiento del CSS.

INCONVENIENTES El trabajo en entornos

colaborativos y el manejo de códigos compartidos requieren

que todos los usuarios conozcan la sintaxis de los preprocesadores.

El procesamiento puede sobredimensionar CSS y volverlo ineficiente.

Añaden una capa de complejidad a los flujos de trabajo

Page 19: Fundamentos tecnologías web

P á g i n a | 18

JAVASCRIPT

Lenguaje de programación interpretado, dialecto del estándar

ECMAScript y orientado a objetos. Fue desarrollado en 1995 por

Netscape.

Características:

Permite crear elementos interactivos. Su sintaxis es sencilla y asequible. Su código se introduce de forma embebida en HTML. No requiere de comunicación alguna con el servidor. Su código es ejecutado directamente por el motor del

navegador.

BIBLIOTECAS

Page 20: Fundamentos tecnologías web

P á g i n a | 19

LIBRERÍAS JAVASCRIPT

Las librerías JavaScript amplían la funcionalidad del JavaScript original. Sus posibilidades se extienden desde funciones muy precisas, como la fecha y la hora [Date.js], hasta tareas mucho más amplias (JQuery).

CÓDIGOS DE EJEMPLO

Page 21: Fundamentos tecnologías web

P á g i n a | 20

FORMATOS DE IMAGEN

A FAVOR El proceso de escritura

JavaScript es más eficiente.

A menudo, las capacidades del código pueden extenderse a través de las bibliotecas.

El uso generalizado del código garantiza la prueba y la mejora continua.

EN CONTRA El tamaño del código

aumenta y, en ocasiones, los servidores reciben solicitudes adicionales.

Eventualmente, el código puede verse limitado por una determinada sintaxis propia de alguna librería.

Sin un conocimiento previo de JavaScript, la elección de una librería puede ser inadecuada.

Page 22: Fundamentos tecnologías web

P á g i n a | 21

QUÉ ES UNA API (Aplication Program Interface)

Interfaz de programa de aplicación → Conjunto de instrucciones o normas para el uso de un servicio o componente de un sistema concreto.

Consideraciones:

Muchas APIs limitan el tipo de datos y servicios disponibles. Las APIs están en continuo desarrollo y su codificación

evoluciona. Es fundamental utilizar APIs de cierta solvencia.

APIS DE HTML5

MEDIA API

Control de carga y reproducción de vídeo y audio.

Está relacionada con la Text Track API que controla los subtítulos.

API DE CACHÉ DE APLICACIÓN

Posee mecanismos para el almacenaje de datos fuera de línea.

Page 23: Fundamentos tecnologías web

P á g i n a | 22

Permite crear aplicaciones más persistentes, capaces de trabajar sin conexión.

Gestiona y envía los datos cuando se restablecen las comunicaciones.

API DE GEOLOCALIZACIÓN

API de carácter independiente asociada con HTML5.

Permite a los desarrolladores conocer la ubicación geográfica del usuario.

CANVAS API

API de carácter independiente asociada con HTML5.

Permite crear un lienzo sobre el que los usuarios pueden dibujar libremente.

Facilita el desarrollo de animaciones complejas, efectos visuales y juegos.

OTRAS APIS

DOM, Web Workers, dataset, drag and drop, classlist, historial, IndexedDB, EventSource.

FUENTES WEB. CONSIDERACIONES.

CSS3 permite la descarga e instalación de fuentes tipográficas en el navegador.

Existen servicios web que ofrecen soluciones gratuitas como Google WebFonts.

Generalmente se utiliza la etiqueta CSS: @Font-face.

Page 24: Fundamentos tecnologías web

P á g i n a | 23

CÓDIGO DEL LADO DEL SERVIDOR

Procesamiento de la petición de un usuario mediante la interpretación de un script en el servidor web para generar páginas HTML dinámicas.

USOS FRECUENTES

Cumplimentación de un formulario. Gestión de una compra en línea. Registro de un nuevo usuario. Reserva de un hotel. Compra de un billete de avión.

A FAVOR Nuevas fuentes

optimizadas para su uso en la web.

Nuevas licencias que permiten su uso mediante @Font-face.

EN CONTRA Las compañías

propietarias se oponen a que sus fuentes sean descargadas y utilizadas por terceros.

La mayoría de los formatos pesan demasiado como para considerarlo un recurso.

Page 25: Fundamentos tecnologías web

P á g i n a | 24

SCRIPTING DEL LADO DEL SERVIDOR

Cualquier script que se ejecute en el lado del servidor se conoce como Server Side Scripting.

El procesamiento de la secuencia (script) se realiza en el servidor web.

CFML= Cold Fusion mark Language (Adobe).

Page 26: Fundamentos tecnologías web

P á g i n a | 25

Consecuencias: incremento de la carga y ralentización.

El usuario final tiene que «refrescar» la página en el navegador.

Solución: Optimizar la experiencia del usuario integrando scripts del lado del servidor y el cliente (JavaScript).

PHP

Lenguaje de programación de uso general de código del lado del servidor, originalmente diseñado para el desarrollo web de contenido dinámico.

Puede ser embebido en el código HTML. En su origen, PHP fueron una serie de scripts CGI (Common Gateway Interface) escritos en lenguaje de programación C a los que se denominaron Personal Home Page el año 1994. Pero desde la versión del año 1997 se denomina «Hypertext Preprocessor».

Existe una solución con PHP en la práctica totalidad de ofertas de hospedaje web.

Es un lenguaje de programación relativamente fácil de aprender y manejar.

Se ha convertido en el lenguaje más utilizado para la construcción de sitios dinámicos, en combinación con Apache y MySQL.

JSP (Java Server Pages)

Forma parte del entorno de desarrollo de Java. Su código es una combinación de XML y scriplets. Vinculado a grandes desarrollos. Resulta fácil encontrar hospedaje web con JSP.

ASP.NET

Page 27: Fundamentos tecnologías web

P á g i n a | 26

Forma parte del entorno de desarrollo .NET.

Empleado para grandes proyectos empresariales.

No es popular en la creación de sitios web dinámicos. Solo admite servidores Windows con .NET.

PYTHON

Es un potente lenguaje de código abierto.

Posee un carácter generalista.

Cuenta con un conjunto de librerías orientadas a la web.

Es empleado para desarrollar grandes sitios y aplicaciones.

RUBY

Es un potente lenguaje de código abierto.

Debe su popularidad a su entorno Ruby on Rails.

Rails está específicamente orientado a la web.

Posee grandes características y una sintaxis sencilla.

COLDFUSION

Se embebe dentro de HTML con etiquetas propias.

Es capaz de controlar tareas comunes simples.

Presenta una buena integración con la familia Adobe. No es fácil encontrar hospedaje.

Es una de las soluciones más caras.

Page 28: Fundamentos tecnologías web

P á g i n a | 27

DESCARGA DE CÓDIGO DESDE LOS SERVIDORES AL EQUIPO

Page 29: Fundamentos tecnologías web

P á g i n a | 28

BASES DE DATOS

Hay dos tipos: relacionales y NOSQL.

RELACIONALES

Almacenan los datos en tablas que se relacionan entre sí sobre la base de valores clave. Esto permite una completa clasificación y filtrado de los datos. Están orientadas a objetos y sus relaciones también.

Oracle, MySQL, Sybase, y otras bases de datos basadas en SQL son bases de datos relacionales populares.

Page 30: Fundamentos tecnologías web

P á g i n a | 29

NOSQL

Las bases de datos NO SQL almacenan conjuntos de datos individuales, planos, orientados a documentos El formato de los documentos es BSON, que está basado en JSON. A menudo son más rápidas que los índices y se escalan más fácilmente que las bases relacionales. A diferencia de las relacionales, estas carecen de esquema. MongoDB, CouchDB, SimpleDB, Hbase, CouchBase y Cassandra, RavenDB, Neo4j, BigTable, Dynamo, Ryak, Hadoop son ejemplos de bases de datos NoSQL.

Page 31: Fundamentos tecnologías web

P á g i n a | 30

SQL (STRUCTURED QUERY LANGUAGE)

Lenguaje de consulta estructurado. Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas.

Es el lenguaje estándar usado para la gestión y recuperación de

información procedente de las bases de datos.

Page 32: Fundamentos tecnologías web

P á g i n a | 31

MySQL

MySQL es un sistema gestor de bases de datos (SGBD) multiusuario, multiplataforma y de código abierto.

SISTEMA GESTOR DE DATOS

Un sistema gestor de bases de datos (SGBD) es una aplicación

formada por módulos que permite el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos.

SINTAXIS

La sintaxis SQL es simple y lógica y sus fundamentos son fáciles de aprender. Seleccionar, insertar, actualizar, borrar y otras instrucciones simples se utilizan para recuperar y manejar los datos.

EJEMPLO DE CÓDIGO

SELECT * FROM tours

WHERE pvp < 600

ORDER BY NombreTour ASC

Hay muchas versiones de SQL, cada una con sus propias extensiones.

Las búsquedas en SQL están habitualmente embebidas en el código de otro lenguaje orientado a la web.

Page 33: Fundamentos tecnologías web

P á g i n a | 32

Las aplicaciones específicas, como MySQL, pueden ayudar a crear y gestionar bases de datos. Aunque los usuarios, diseñadores e incluso desarrolladores web no necesitan ser expertos en SQL, conocer los fundamentos es interesante.

SERVICIOS EN LA NUBE (CLOUD COMPUTING)

La nube es una red distribuida de ordenadores que pueden realizar tareas aprovechando las ventajas de la escala y la potencia de la red. Habitualmente se refiere a procesos distribuidos a través de internet.

GITHUB

Sistema de control de código abierto construido a partir de Git.

Permite gestionar proyectos, publicar archivos y almacenar revisiones. Ofrece versiones tanto libres como comerciales.

Page 34: Fundamentos tecnologías web

P á g i n a | 33

Presenta un interfaz de web fácil de usar.

CDN (CONTENT DISTRIBUITED NETWORK)

CDN es un sistema de entrega de contenidos a través de una red

distribuida de servidores. Los CDN se utilizan generalmente para facilitar recursos estáticos, como vídeo o librerías de JavaScript.

Utilizar las librerías alojadas en Google reduce la carga alojada en tu servidor acelera la entrega de jQuery al cliente incrementa la probabilidad de que el cliente mantenga jQuery en la caché. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2

/jquery.min.js"></script>

Algunos CDN alojan un único tipo de recurso.

En un CDN como YouTube no sólo sirven como redes de entrega sino también agregadores de contenidos.

Es posible elegir entre numerosos CDN libres o comerciales para un servicio especializado.

Page 35: Fundamentos tecnologías web

P á g i n a | 34

Entre los CDN más populares se encuentran: Akamai, CloudFare, Amazon´s CloudFront, EdgeCast y WindowsAzure.

El CDN añade una capa adicional de complejidad al sitio web. En el caso de los recursos especializados no existe la posibilidad de crear descargas personalizadas o versiones “minified” específicas.

Determinados requerimientos de seguridad pueden impedir el uso de un CDN externo.

CMS (CONTENT MANAGER SYSTEM)

Un CMS o sistema gestor de contenidos es una aplicación web diseñada para llevar a cabo la creación, gestión, publicación y archivo del contenido de un sitio web.

La creación y edición de los contenidos de un CMS se realiza a través de un editor web, lo cual flexibiliza la actualización del contenido web.

La mayoría de los CMS permiten crear grupos de usuarios con diferentes niveles de permisos administrativos.

La mayoría de los CMS tienen extensiones que añaden potentes características a los sitios web.

Page 36: Fundamentos tecnologías web

P á g i n a | 35

Algunos CMS ya están alojados en los servidores que proporciona la compañía propietaria del software, ofreciendo lo que se denomina «solución alojada». Por tanto, con los CMS que pertenezcan a la categoría de solución alojada sólo se requiere una cuenta de usuario para comenzar a crear un sitio web.

Otros CMS pueden instalarse en distintos servidores web.

Las características y la personalización del sitio web varían enormemente entre los distintos CMS.

Hay que asegurarse de identificar las necesidades que debe cubrir el CMS antes de iniciar el proyecto.

RECURSOS ONLINE Y WEBS RECOMENDADAS

JAVASCRIPT

Page 37: Fundamentos tecnologías web

P á g i n a | 36

Page 38: Fundamentos tecnologías web

P á g i n a | 37

WEBS RECOMENDADAS

Page 39: Fundamentos tecnologías web

P á g i n a | 38