Internet es increíble, creo que todos podemos estar de acuerdo en eso. Pero, ¿alguna vez te has sentado y pensado cómo un sitio web en realidad llega a tu computadora? ¿Qué tecnologías están detrás de MakeUseOf, por ejemplo? Es mucho más que una simple colección de archivos e imágenes HTML.
Siga leyendo para saber exactamente qué se necesita para ejecutar, alojar y servir un sitio web para su consumo, queridos lectores.
Hardware
Comencemos por el componente más básico de alojar un sitio web: el hardware. Esencialmente, las máquinas utilizadas para alojar un sitio web no son realmente diferentes a las PC de escritorio que usted o yo tenemos en casa. Tienen más memoria, unidades de respaldo y, a menudo, conexiones de red de fibra óptica, pero básicamente son las mismas. De hecho, cualquier máquina antigua puede albergar un sitio web; es solo cuestión de qué tan rápido podrá enviar páginas a los usuarios.
Puede leer más aquí sobre los diversos tipos de alojamiento. Explicación de las diversas formas de alojamiento de sitios web [Explicación de la tecnología] Explicación de las diversas formas de alojamiento de sitios web [Tecnología explicada] Más información disponible, desde una única máquina compartida entre miles de sitios web cada uno pagando $ 5 / mes, a un servidor dedicado completo capaz de ejecutar algo como MakeUseOf, que cuesta miles de dólares al mes .
Sistema operativo
La mayoría de las máquinas de servidores web ejecutan un sabor optimizado de Linux, aunque hay una buena cantidad de servidores que ejecutan Windows, generalmente en entornos corporativos donde las aplicaciones web están basadas en ASP o dotNet. A partir de enero de este año, la distribución de Linux preferida más popular para alojamiento web es Debian, seguido de cerca por CentOS (basado en RedHat), ambos disponibles libremente para que los descargues y pruebes tú mismo, y cada uno dice que aloja alrededor del 30% de todos sitios web. Google, por supuesto, ejecuta su propio Linux personalizado, así como su propio sistema de archivos personalizado.
Software de servidor web
Aquí es donde las cosas realmente comienzan a diferenciarse. El software del servidor web es la aplicación que recibe solicitudes entrantes y sirve las páginas o archivos. El software del servidor web en sí no se preocupa por el idioma de la página web a la que presta servicios: un servidor Apache es bastante capaz de servir Python, PHP, Ruby o cualquier cantidad de idiomas; pero esto no es universal. La cuota de mercado actual indica que Apache corre alrededor del 65% de los principales sitios web, Microsoft IIS 15% y nginx 10%. nginx se considera mejor en el manejo de sitios de alta concurrencia, es decir, donde miles de usuarios pueden estar en el sitio al mismo tiempo, y de hecho se usa aquí en MakeUseOf.
Cuando carga un sitio web, abre un zócalo, una conexión, entre su computadora y el servidor del sitio web. Luego, un baile elaborado y extenso de la melodía HTTP comienza con el ir y venir de solicitudes, datos y códigos de estado. Como solicitó esta página, nuestro servidor respondió con un 200 - OK, lo que significa "seguro, aquí tiene" ; si lo visitó anteriormente, su navegador también podría preguntar "hey, ya tengo una copia de este gráfico en el caché de mi navegador, ¿realmente lo necesito de nuevo?", a lo que nuestro servidor respondió 304 - No modificado, o "no", eso es genial, no lo hemos cambiado ni nada, solo usa ese " .
Ocasionalmente, encontrarás el temido 404 - no encontrado, pero no necesito explicarte ese código de error. Si alguna vez ha abierto Firebug Amateur's Guide To Customizing Website Design con FireBug Amateur's Guide To Customizing Website Design Con FireBug Read More o el modo desarrollador de su navegador, se sorprenderá al ver cuánto avanza y retrocede - no es un simple "dame esa página" - "OK, aquí", sino cientos de interacciones más pequeñas.
Archivos estáticos y redes de entrega de contenido
En todos los sitios web, hay algunos archivos que casi nunca cambian. Cosas como Javascripts, CSS, imágenes, PDF o mp3. Estos se llaman archivos estáticos, y para servirte esto, el software del servidor web simplemente tiene que tomar el archivo y enviarlo. Fácil, ¿verdad? No tan rapido.
Desafortunadamente, enviar grandes cantidades de archivos estáticos es una tarea bastante laboriosa debido al tamaño de los archivos. Si alguna vez ha visitado una página web en la que puede sentarse allí viendo cómo se cargan las imágenes, es porque el servidor web está buscando esos archivos por sí mismo, simplemente no están optimizados para hacer ese tipo de trabajo. En cambio, los grandes sitios web descargan todos estos archivos estáticos en lo que se denomina Red de entrega de contenido : servidores separados que están optimizados para servir archivos estáticos ridículamente rápidos en un abrir y cerrar de ojos.
También logran esto ubicando físicamente los servidores en diferentes lugares del mundo que se reflejan entre sí, por lo que los datos tienen menos distancia para viajar hacia usted. En este momento, aunque el artículo de MakeUseOf que está leyendo está realmente alojado en los Estados Unidos, las imágenes y Javascript provienen de un lugar mucho más cercano a usted a través de un CDN local.
Contenido dinámico - Lenguajes de programación web
Casi todos los sitios web modernos tienen contenido dinámico de algún tipo, ya sea que eso signifique que WordPress agregue comentarios a una publicación de blog o que Google publique resultados de búsqueda. Para hacer que una página web sea dinámica, se necesitan lenguajes de programación web. Escribí antes sobre los diferentes idiomas disponibles para usted. Qué lengua de programación para aprender - Programación web Qué lengua de programación para aprender - Programación web Hoy vamos a echar un vistazo a los diversos lenguajes de programación web que alimentan Internet. Esta es la cuarta parte en una serie de programación para principiantes. En la parte 1, aprendimos lo básico de ... Leer más (y tuvimos algunos debates acalorados para sugerir que PHP era el mejor). Independientemente del idioma que elijas, funciona junto con la capa de software del servidor web para generar dinámicamente los contenidos de la página en primer lugar y luego entregártelos a ti.
Bases de datos
Detrás de todos los sitios web dinámicos se encuentran las bases de datos: tiendas masivas de datos brutos que nos permiten acceder a esos datos de diversas maneras. Para esto, se requiere un lenguaje de programación de base de datos separado, siendo el más popular SQL (Structured Query Language) y sus muchas variantes. Las bases de datos contienen diferentes tablas de datos para representar diferentes estructuras de datos; una puede ser una lista de artículos; otro para comentarios sobre esos artículos. Al usar SQL, podemos ordenar, combinar y presentar esa información en una variedad de formas.
En WordPress, por ejemplo, una 'publicación' consiste al menos en un título y una fecha, y probablemente en un contenido real. Se usa una tabla separada para almacenar los comentarios en ese artículo, con otra tabla más para almacenar una lista de categorías, y luego otra para almacenar una lista de qué categorías se han asignado a cada artículo. Al hacer referencias cruzadas y extraer datos de todos estos, WordPress reúne toda la información que necesita para una página particular de su blog, antes de aplicar el tema y presentarlo a usted, a través del software del servidor web.
Sistemas de almacenamiento en caché
Servir archivos HTML estáticos es bastante fácil en términos de computación: el servidor solo tiene que buscar el archivo; el contenido dinámico, por otro lado, requiere mucho trabajo para juntar la página, con la base de datos y el procesamiento que se produce en esos datos. . Un sistema de almacenamiento en caché nos da un círculo completo al crear estas páginas dinámicas y, básicamente, guardarlas como archivos HTML estáticos. Cuando se solicita nuevamente la misma página, no es necesario volver a calcularla, lo que acelera el sitio.
El almacenamiento en caché es un término amplio que puede significar muchas cosas: las CDN son un tipo de caché; también hay cachés de base de datos para consultas frecuentes (piense en WordPress pidiéndole a la base de datos el título de su blog cada vez que alguien mira su publicación, porque eso es realmente lo que sucede). Escribí antes sobre cómo configurar el popular sistema W3 Total Cache para WordPress Cómo configurar los diversos parámetros W3 Total Cache Plugin para tu blog de Wordpress Cómo configurar los diversos sobre W3 Total Cache Plugin Settings para tu blog de Wordpress Hace un tiempo hablé sobre el beneficios de instalar el plugin W3TC en su blog de Wordpress para acelerarlo con varios cachés, pero algunos lectores eran comprensiblemente un poco cautelosos acerca de ... Leer más, también se usa aquí en MakeUseOf. Su navegador también tiene un caché Todo lo que necesita saber sobre el caché del navegador [Explicaciones de MakeUseOf] Todo lo que necesita saber sobre el caché del navegador [Explicaciones de MakeUseOf] Siempre que tenga un problema con un sitio web, una de las primeras sugerencias que recibirá El soporte de TI es "intente borrar el caché de su navegador" junto con "y borre sus cookies". Entonces, qué es ... Leer más - casi cualquier cosa puede almacenarse en caché.
Como puede ver, de hecho hay una inmensa cantidad de trabajo y muchas tecnologías involucradas en el alojamiento de un sitio web. Sin embargo, eso no quiere decir que no puedas tener tu propio blog configurado y funcionando en menos de una hora. Escalando a miles de usuarios es donde comienzan los problemas.
¿Alguna pregunta? Pregunte, y haré todo lo posible para responder. ¿Te sorprende cuánto esfuerzo puedes ingresar en un sitio web?
Crédito de la imagen: Shutterstock, sala de servidores de red; Netcraft, gráfico del servidor web compartido; Shutterstock, base de datos; Justin Pot / Technophilia, INTERNETZ