Acompáñanos en este breve artículo donde hablaremos de qué es y para qué sirve un IIS web server y de otros temas relacionados con dicho servicio de Microsoft.
El mundo de la informática está repleto de todo tipo de software: programas de usuario, aplicaciones móviles, software de servidor, etc. Existen cientos de tipos de licencia para tantos y tantos programas que a veces nos es complicado saber qué tipo de software es uno en concreto, para qué sirve o con qué fin fue desarrollado.
Y ojo, que sobre este último punto también podemos hablar todo lo que queramos, ya que una cosa es para qué se desarrolla un producto o servicio y otra muy distinta para qué se termina utilizando.
NOTA: Si quieres ver una de estas curiosidades de inventos que se piensan para una cosa y terminan usándose para otra puedes consultar el artículo ¿Quién inventó el Super Glue?
Por esta razón, hemos pensado poner el foco en uno de esos productos de Microsoft que para muchos es un gran desconocido y comentar qué es y para qué sirve IIS.
¿Qué es y para qué sirve un IIS web server?
Lo primero que deberíamos decir es que IIS son las siglas inglesas de Internet Information Services o lo que es lo mismo, Servicios de Información de Internet. Un nombre quizás demasiado pretencioso para… ¿Un simple servidor de páginas web?
IIS es usualmente conocido por ser el servidor web (HTTP/HTTPS) del gigante de Redmond, pero esta es una visión realmente simplista del mismo, ya que puede proporcionar otros servicios como NNTP, FTP o incluso una versión simplificada de SMTP.
Hay que decir que el propósito real de la versión simplificada de SMTP (Simple Mail Transfer Protocol) no es el de servir como servicio de correo al uso, o sea, que no está pensado para que usuarios se comuniquen entre ellos pudiendo enviar y recibir correos electrónicos, sino que está pensado para que las aplicaciones web que alojamos en nuestro servidor IIS sean capaces de enviar correos de tipo informativo. Esto se debe principalmente a que sí que contiene un servicio de SMTP pero no contiene un servicio de POP o IMAP.
Un poco de historia de IIS web server:
IIS web server fue desarrollado por Microsoft en un popular a la par que complejo lenguaje de programación, C++, siendo liberada su primera versión productiva en el año 1995 bajo licencia de software propietario.
A lo largo de estos años se le han ido añadiendo distintas funcionalidades y se le han ido puliendo algunos problemas, sobre todo de rendimiento y alguno de seguridad, que se iban detectando.
Adicionalmente, debemos tener en cuenta que PowerShell cada vez toma mayor importancia dentro del mundo de la administración de sistemas de Microsoft y el caso de IIS no es una excepción, siendo cada vez más importante conocer esta herramienta.
NOTA: Para aprender más sobre el uso de PowerShell en IIS es recomendable consultar el siguiente enlace de Microsoft.
Durante su tiempo de existencia, la popularidad de IIS web server ha fluctuado, teniendo una clara tendencia a la baja frente a otros servidores web tradicionales como Apache Web server y en favor de otros servidores como Nginx, de los cuales hablamos hace unos meses en el artículo Seleccionando un Servidor Web: Apache versus Nginx.
Esta clara tendencia decreciente se puede ver en el siguiente gráfico, en el que también se observan las tendencias de las que hablábamos en el anterior párrafo. Como el caso que nos ocupa es Internet Information Server, debemos decir que en el año 2007 estaba en torno al 40%, pero actualmente está en torno al 10% de cuota de mercado en lo que respecta a servidores web productivos.
NOTA: Fuente consultada para la gráfica de evolución de Web Servers según Netcraft https://news.netcraft.com/archives/2023/01/27/january-2023-web-server-survey.html
Aunque hay que tener en cuenta que en este caso hablamos de web servers que proporcionan servicio hacia la intranet de la empresa y hacia internet, y esto hace que IIS sea un servidor multipropósito que aún conserva una importante cuota de mercado.
Funcionamiento por módulos de IIS web server:
IIS utiliza para su ejecución un modelo basado en proceso único que atiende todas las peticiones que se hacen al servidor. Este es un modelo bastante distinto al que se utilizarían en Apache, que divide las solicitudes entre distintos subprocesos.
Podría parecer que esto genera un efecto embudo cuando crecen las peticiones, pero en realidad algunas operaciones se delegan a otros subprocesos para su ejecución, descargando de esta manera cierto volumen de trabajo aunque encargándose en todo momento de la atención a las peticiones y de la resolución de las mismas, haciendo una labor de “dispatcher” encargado de asignar a cada uno su trabajo y recogerlo después para entregar a cada petición lo que ha solicitado.
Esta forma de trabajar solventa en cierto modo ese problema de cuello de botella del que hablábamos, generando un modelo de gestión concurrente en el que se está continuamente recibiendo peticiones, reenviándolas, recibiendo las respuestas de los procesos que se encargan de estos y reenviándolos al peticionario original. De esta manera, se consigue un mejor rendimiento del servidor.
Extrapolando la forma en que se encaminan estas peticiones hacia los distintos procesos, podemos ver que el proceso de trámite de una petición de una petición de cliente sería como se muestra en el siguiente esquema:
- El cliente inicia una solicitud HTTP y la pila de protocolo HTTP toma la solicitud.
- La pila de protocolo HTTP contacta Windows Activation Service (WAS) y lee la configuración.
- Windows Activation Service (WAS) solicita información de configuración del almacén de configuración.
- El servicio WWW recibe la información de configuración del servicio, recopilando información como el grupo de aplicaciones o la configuración del sitio web.
- El servicio WWW usa la información de configuración recuperada para configurar el modo en el que la pila de protocolo HTTP tiene que contestar al cliente (HTTP.sys).
- Windows Activation Service (WAS) inicia un proceso de trabajo para la aplicación que lanzó la solicitud.
- Se procesa la solicitud y el pool de aplicaciones devuelve una respuesta a la pila de protocolo HTTP.
- Por último, se envía la respuesta al cliente.
Ediciones de IIS y su soporte:
Nuestro amigo IIS web server lleva con nosotros desde el año 1995, con lo que dentro de poco va a cumplir ¡30 añazos!
Desde su aparición junto a Windows NT 3.51 Service Pack 3 ha pasado por unas cuantas versiones que, seamos sinceros, no siempre han ido igual de finas.
La mayoría de estas versiones, ya no cuentan con soporte, más que nada porque van vinculados a sistemas operativos que tampoco cuentan con él, pero para Windows Server 2012 y Windows 8, además de todos sus sucesores ya contamos con soporte un soporte y con una fecha ya prefijada para el final de dicho soporte.
La siguiente tabla expone la correspondencia de versiones de IIS web server con los sistemas operativos que los hospedan y la fecha de fin de soporte si está en periodo de vigencia, quedando marcado como “fin soporte” en caso de que este ya haya expirado.
Version de IIS | Sistemas Operativos Soportados | Fin de Soporte |
IIS 1.0. | Windows NT 3.51 Service Pack 3. | Sin Soporte. |
IIS 2.0. | Windows NT 4.0. | Sin Soporte. |
IIS 3.0. | Windows NT 4.0 Service Pack 3. | Sin Soporte. |
IIS 4.0. | Windows NT 4.0 Option Pack. | Sin Soporte. |
IIS 5.0. | Windows 2000. | Sin Soporte. |
IIS 5.1. | Windows XP Professional. | Sin Soporte. |
IIS 6.0. | Windows Server 2003 y Windows XP Professional x64 Edition. | Sin Soporte. |
IIS 7.0. | Windows Vista (Solo Business y Ultimate) y Windows Server 2008. | Sin Soporte. |
IIS 7.5. | Windows 7 y Windows Server 2008 R2. | Sin Soporte. |
IIS 8.0. | Windows 8 y Windows Server 2012. | 10 de octubre de 2023. |
IIS 8.5. | Windows 8.1 y Windows Server 2012 R2. | 10 de octubre de 2023. |
IIS 10. | Windows Server 2016. | 12 de enero de 2027. |
IIS 10.0. | Windows 10, Windows 11, Windows Server 2019 y Windows Server 2022. | 9 de enero 2029. |
Tabla. Versiones de IIS web Server y su correspondencia de SO y fin de soporte
Conclusiones:
Tal como hemos visto en este artículo, IIS web server es un servidor que no solo sirve para mostrar páginas web sino que también sirve para mostrar archivos mediante WebDav o para servir ficheros mediante protocolo de FTP.
Es un servidor que, si bien hoy día no representa el volumen de servidores web que presentaba antiguamente, sí que es de gran ayuda tenerlo presente como opción cuando queramos servir una página web sin pagar licencias adicionales o incluso sin instalar software, ya que hoy en día IIS web server está incluido en las versiones de servidor o incluso de cliente de Microsoft, aunque por lo general se encuentra “desactivado”.
Si quieres aprender a desplegar IIS puedes consultar estos dos tutoriales en los que contamos:
También puedes obtener algo más de información sobre el producto en la página web del proyecto.
¡Gracias por leernos!