Translate


Sistemas Operativos

Servidor Web


Un servidor Web es un software de aplicación que nos brinda un servicio; pero ¿qué tipo de servicio? bien, al decir “Web” nos referimos obviamente a internet o a una red, por ello un “Servidor Web” debe implementar el protocolo HTTP (protocolo de transferencia de hipertexto). Este protocolo está diseñado para transferir páginas web, es decir, documentos en HTML (HyperText Markup Language): textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de sonidos.
Aclaremos algo
El termino servidor es algo ambiguo, ya que un servidor es el software que presta un servicio, pero también se llama servidor a la máquina donde está instalado dicho software. En este artículo vamos a hablar del software, mas no del hardware.


El protocolo HTTP
El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un sencillo protocolo cliente-servidor que articula los intercambios de información entre los clientes Web y los servidores HTTP. 

El funcionamiento básico es que el cliente estable una conexión TCP con el servidor, hace una petición, el servidor le responde y se cierra la conexión. Para que se haga una idea el lector de la sencillez, en la primera versión ampliamente utilizada del protocolo (1.0), el cliente solo podía invocar tres operaciones en el servidor: GET para pedir una página, HEAD para pedir la cabecera de una página y POST para enviar datos a una URL.


Primero que nada hay que saber que todas las páginas que visitamos en internet están almacenadas en algún lado, en el disco duro de alguna computadora a la que llamamos el servidor, esta computadora generalmente de capacidades muy grandes es más bien como una torreta, sin pantalla, mouse o teclado, un tanto aplanada y aburrida, como la que se muestra a continuación:


¿Cómo funciona todo esto?
Para que una computadora puede servir una página web es necesario que tenga el software adecuado, es decir, un servidor web, que es una aplicación que escucha un protocolo especial llamado HTTP y responde enviando un archivo correspondiente a la URL solicitada.

La URL es el Uniform Resource Locator, o Localizador Uniforme de Recursos, que define cómo localizar un recurso o servicio en un entorno de red. Suele aparecer hasta arriba de nuestro navegador cuando entramos a una página.

Esto es una URL:
http://www.example.com:80/una_carpeta/archivo.ext
Y está dividida en varias partes
  1. El protocolo Que es la primera parte, indica qué tipo de comunicación establecen las computadoras cliente yservidor, un servidor puede servir varios protocolos. Los protocolos mas comunes son: http, ftp.
  2. La dirección IP o nombre de dominio El nombre de dominio en este caso es example.com, a veces los nombres de dominio tienen sub-dominios como: sub.example.com. Los nombres de dominio son administrados por un servidor DNS que los convierte asigna a una dirección IP, que es la dirección en la red de la computadora. Si conoces esta dirección también puedes usarla para acceder a un sitio. Si tienes curiosidad visita http://74.125.227.145/
  3. El puerto Muchas veces esto no aparece puesto que se manejan puertos por defecto, véase puerto para más información al respecto. Este elemento es el número que aparece después de los dos puntos. En el ejemplo es 80.
  4. Hasta aquí lo que hicimos fue ubicar la computadora, lo que sigue es ubicar el recurso, generalmente cada nueva diagonal indica una carpeta hasta llegar a un archivo, si la URL termina en una diagonal entonces se trata de una carpeta con un archivo de índice.

Los archivos de índice
Como les mencioné se necesita un software que provea del servicio para mostrar una página web, en adelante lo llamaré el servidor. Este servidor está ejecutándose en la memoria de la computadora y cuando recibe una petición responde según la configuración dada, en esta configuración está marcada la carpeta donde están los archivos a mostrar, también se indica si va a usar algún tipo de pre-procesamiento para mostrar la página web. Generalmente un servidor web muestra los contenidos de un directorio, si la URL especifica un archivo el servidor lo envía por la vía que fue solicitado, si en la URL se especifica una carpeta entonces el servidor busca en su configuración qué archivo debe llamar, por ejemplo el archivo index.html, pero esta configuración se puede modificar para que devuelva pollo.html por ejemplo.

Pre-procesamiento
Una página web hecha de archivos HTML planos puede llegar a verse muy bien, sin embargo sería bastante estática y difícil de mantener en constante actualización, perdería en realidad mucho potencial. Por eso se suele hacer un pre-procesamiento, lo que significa es que antes de mostrar la página a la computadora cliente se van a ejecutar cambios sobre ella en el servidor dependiendo de variables como la ubicación geográfica, la zona horaria, usuario u otras cosas. Este pre-procesamiento se hace en distintos lenguajes de programación como PHP, ASP, Python, Ruby, Java y otros monstruos que existen por ahí. Mediante estos lenguajes de programación se puede buscar información en una base de datos y mostrarla y hacer fácil muchas de las tareas de la página, haciéndola además dinámica.



Funcionamiento de un servicio HTTP

Ajax
Uno pensaría que una vez mostrada la página ya no se pueden hacer cambios sobre ella, sin embargo existen lenguajes del lado del cliente que pueden modificar el contenido, tal es el caso de JavaScript y Dart, ambos tienen la capacidad de modificar la vista gráfica de la página, mover elementos, ocultarlos e incluso hacer peticiones adicionales al servidor con información nueva sin necesidad de recargar toda la página. A esto se le llama Ajax, que es combinar un lenguaje del lado del servidor con uno del lado del cliente para hacer algo genial. Un ejemplo muy grande es Facebook, que hace todas sus operaciones con Ajax de modo que uno puede ver las actualizaciones y otras cosas sin recargar la página.






No hay comentarios:

Publicar un comentario