Servidores Web
Como vimos en el primer capítulo, un servidor es una computadora con gran capacidad de almacenamiento y velocidad que está conectada las 24 horas del día, de modo que permite a los administradores de la página y a los usuarios acceder al sitio web.
Para que una computadora funcione como servidor es necesario instalarle un programa o software servidor.
Desde ahora cuando nombremos un servidor web nos estaremos refiriendo a un programa que permite a una computadora funcionar como servidor y no al hardware del servidor.
Los servidores web HTTP son aquellos programas que están diseñados especialmente para transferir hipertextos, páginas web o páginas HTML, a partir de la implementación de un protocolo HTTP.
El protocolo HTTP es el protocolo que se utiliza en todas las transacciones de datos de la Web.
El protocolo HTTP se rige por el esquema petición – respuesta entre un cliente y un servidor y representa el diseño clásico de arquitectura web.
Veamos un gráfico que representa este esquema:
Apache
Apache es un servidor web de código abierto compatible con plataformas Unix, Microsoft Windows y Macintosh que implementa el protocolo HTTP y por lo tanto su arquitectura se rige por el esquema Petición – Respuesta que acabamos de describir.
El servidor web Apache presenta muchas ventajas, entre ellas que es altamente configurable y permite la autenticación de bases de datos.
Sin embargo, fue muy criticado porque carece de una interfaz gráfica que permita que usuarios sin conocimientos técnicos avanzados accedan a su configuración.
Características de Apache
La arquitectura característica de un servidor que funciona con Apache es modular.
Esto quiere decir que está compuesto por partes o módulos que utilizamos de acuerdo con las necesidades que se presentan.
Algunos de los módulos más utilizados son:
mod_ssl:
Es un módulo que permite transferencias de datos seguras, ya que ofrece un protocolo de capa de conexión segura o TLS (Transport Layer Security).
Este protocolo hace que ante un requerimiento del servidor se autentifiquen los datos del cliente y de este modo garantiza mayor seguridad al usuario.
mod_auth_Idap:
Es un módulo que permite autentificar usuarios de una página web.
Este módulo funciona cuando necesitamos autentificar los datos de usuario y contraseña que se ingresan del lado del cliente para acceder a una página web o servidor.
mod_cband:
Es un módulo que permite configurar parámetros para controlar el tráfico que maneja el servidor y limitar el ancho de banda que utiliza cada requerimiento o demanda del lado del cliente.
mod_php:
Este módulo permite trabajar con páginas dinámicas programadas con PHP.
mod_aspdotnet:
Es un módulo que permite trabajar con páginas dinámicas programadas con .Net de Microsoft.
Glosario
Código Abierto: Es el término con el que se conoce al código de programación que es distribuido y desarrollado libremente, es decir, que es una tecnología que no tiene patentes ni se comercializa. Sin embargo sí puede estar regido por licencias no comerciales.
Protocolo de Control de Transmisión: Es el protocolo que garantiza el orden de los datos, serán entregados en su destino sin errores y en el mismo orden en que se transmitieron.
Protocolo de Internet: Conocido como IP, es un protocolo no orientado a conexión. Usado tanto por el origen, como por el destino para la comunicación de datos.
Protocolo de Red: Es un conjunto de reglas y procedimientos para la comunicación. Cuando dos o más computadoras están conectadas en red, se requiere un determinado conjunto de reglas y procedimientos, que se denomina protocolo de red. (para que puedan comunicarse e intercambiar información)
SQL: Siglas en inglés para Lenguaje de Consulta Estructurado (Structured Query Language). Es un lenguaje de programación declarativo para el acceso y gestión de bases de datos relacionales; se caracteriza por el manejo del álgebra y el cálculo relacional.
Sistemas de gestión de bases de datos: MySQL
Los sistemas de gestión de bases de datos son programas específicos que se utilizan para manejar una base de datos, cuando el usuario o las aplicaciones o programas de una página requieren la información que está en dicha base.
El sistema de gestión de bases de datos más difundido es MySQL, sencillo de usar, rápido y gratuito para aplicaciones no comerciales.
Para trabajar con este sistema de gestión de datos es preciso conocer el lenguaje de programación SQL.5
MySQL es una base de datos relacional, de modo que los datos se almacenan en tablas entre las cuales se establecen relaciones. Esta característica permite un manejo eficiente de los datos.
Base de Datos
Las bases de datos rodean todo lo que es el mundo web: están cuando ingresamos a nuestro correo electrónico, cuando hacemos compras en línea, en los juegos en red, en las redes sociales, etc.
Pero… ¿Qué es una base de datos?
Una base de datos es una colección organizada de información.
En el mundo analógico podemos decir que una agenda telefónica es una base de datos que tiene información (nombres, apellidos, teléfonos, direcciones) organizada con alguna lógica que nos permita acceder a ella de un modo rápido y eficaz (orden alfabético).
En el mundo digital, una base de datos es un sistema de archivos electrónicos organizados.
La lógica y organización de la misma es fundamental ya que, dada la enorme cantidad de datos que se manejan, sin una estructura lógica adecuada sería imposible el intercambio de datos entre una página web y un servidor.
Tradicionalmente, las bases de datos se organizan en tres categorías: campos, registros y archivos.
- Campo: Es una pieza única de información.
- Registro: Es un conjunto de campos relacionados entre sí.
- Archivo: Es una colección de registros.
Hay diferentes tipos de base de datos, que difieren en la forma en la que estructuran la información.
Tipos más comunes y utilizados son:
Base de Datos Jerárquicas
Tal como indica su nombre, organiza los datos a partir de una jerarquización de la información. Los datos se organizan a partir de un núcleo básico de información, del que se desprenden nodos con información relacionada y subsumida en el núcleo básico o central.
Este tipo de base de datos es utilizada cuando se manejan grandes volúmenes de información.
Sin embargo, tienen la limitación de no representar la redundancia de datos, que es cuando un mismo campo o registro pertenece a dos categorías diferentes.
Base de Datos Jerárquica
Base de Datos en Red
La diferencia fundamental de este tipo de base de datos, es que permite que un nodo esté subsumido en más de un núcleo básico o central de información.
Esta característica permite representar la redundancia de datos pertenecientes a diferentes categorías.
Base de Datos Relacionales
Este modelo, a diferencia del modelo jerárquico y el modelo en red, no requiere la definición de categorías.
El modelo relacional se basa en la formación lógica de conjuntos de datos basados en el binomio campo y registro, formando tablas.