Anuncio
Internet es increíble, creo que todos podemos estar de acuerdo en eso. Pero, ¿alguna vez te has sentado y pensado cómo demonios un sitio web realmente llega a tu computadora? ¿Qué tecnologías hay detrás de MakeUseOf, por ejemplo? Es mucho más que una simple colección de archivos e imágenes HTML.
Siga leyendo para averiguar exactamente qué se necesita para ejecutar, alojar y ofrecer un sitio web para su consumo, queridos lectores.
Hardware
Comencemos por el componente más básico del alojamiento de 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 lo mismo. De hecho, cualquier máquina vieja puede alojar un sitio web, es solo un caso de qué tan rápido podrá enviar páginas a los usuarios.
Puedes leer más aquí sobre el varios tipos de alojamiento Se explican las diversas formas de alojamiento de sitios web [Tecnología explicada] Lee mas
disponible, desde una sola máquina compartida entre miles de sitios web que pagan cada uno $ 5 / mes, hasta 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 servidor web ejecutan una versión optimizada de Linux, aunque hay una buena cantidad de servidores allí ejecutando Windows, generalmente en entornos corporativos donde las aplicaciones web se basan en ASP o punto net. A partir de enero de este año, la distribución de Linux más popular para alojamiento web es Debian, seguido de cerca por CentOS (basado en RedHat), ambos disponibles de forma gratuita para que los descargues y pruebes tú mismo, y cada uno dice que aloja alrededor del 30% de todos los sitios web. Google ejecuta su propio Linux personalizado, por supuesto, así como su propio sistema de archivos personalizado.
Software de servidor web
Aquí es donde las cosas realmente comienzan a diferenciarse. El software de servidor web es la aplicación que recibe las solicitudes entrantes y sirve las páginas o archivos. El software del servidor web en sí mismo no se preocupa en gran medida por el idioma de la página web a la que sirve - un servidor Apache es bastante capaz de servir Python, PHP, Ruby o cualquier cantidad de diferentes idiomas; Pero esto no es universal. La cuota de mercado actual indica que Apache ejecuta alrededor del 65% de los principales sitios web, Microsoft IIS 15% y nginx 10%. Se considera que nginx es mejor para manejar sitios de alta concurrencia, es decir, donde muchos 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 socket (una conexión) entre su computadora y el servidor del sitio web. Un baile elaborado y prolongado con la melodía HTTP comienza con el intercambio de solicitudes, datos y códigos de estado. Como solicitó esta página, nuestro servidor respondió con un 200 - OK, sentido "claro aquí tienes"; si visitó antes, su navegador también puede preguntar "Hey, ya tengo una copia de este gráfico en la memoria caché de mi navegador, ¿realmente lo necesito de nuevo?", a lo que nuestro servidor respondió 304 - No modificadoo "No, eso es genial, no lo hemos cambiado ni nada, solo usa ese".
Ocasionalmente, encontrarás lo temido 404 No encontrado, pero no necesito explicarte ese código de error. Si alguna vez has abierto Firebug Guía de aficionados para personalizar el diseño de sitios web con FireBug Lee mas o el modo de desarrollador de su navegador, se sorprenderá al ver cuánto pasa de un lado a otro, no es simple "Dame esa página" - "OK, aquí", pero en realidad 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 servírselos, 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 y ver cómo se cargan las imágenes, es porque el servidor web está buscando esos archivos por usted mismo, simplemente no están optimizados para hacer ese tipo de trabajo. En cambio, los sitios web grandes descargan todos estos archivos estáticos en lo que se llama Red de entrega de contenidos - 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 al ubicar físicamente los servidores en diferentes lugares del mundo que se reflejan entre sí, por lo que los datos tienen menos distancia para viajar. En este momento, a pesar de que el artículo MakeUseOf que está leyendo en realidad está 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 que una página web sea dinámica, se necesitan lenguajes de programación web. Escribí antes sobre el varios idiomas disponibles para usted Qué lenguaje de programación aprender: programación webHoy vamos a echar un vistazo a los diversos lenguajes de programación web que impulsan Internet. Esta es la cuarta parte de una serie de programación para principiantes. En la parte 1, aprendimos lo básico de ... Lee mas (y me metí en algunos acalorados debates por sugerir que PHP era el mejor). Sin embargo, sea cual sea el idioma que elija, funciona en conjunto con la capa de software del servidor web para generar primero dinámicamente el contenido de la página y luego servirlo a usted.
Bases de datos
Detrás de todos los sitios web dinámicos hay bases de datos: grandes almacenes de datos sin procesar que nos permiten acceder a esos datos de varias maneras. Para esto, se requiere un lenguaje de programación de base de datos separado, siendo el más popular SQL (Lenguaje de consulta estructurado) y son muchas variantes. Las bases de datos contienen diferentes tablas de datos para representar diferentes estructuras de datos: una podría ser una lista de artículos; otro para comentarios sobre esos artículos. Usando SQL, podemos ordenar, combinar y presentar esos datos de varias maneras.
En WordPress, por ejemplo, una "publicación" consta de al menos un título y una fecha, y probablemente algo de contenido real. Se utiliza una tabla separada para almacenar los comentarios sobre ese artículo, con otra tabla para almacenar una lista de categorías, y luego aún otra para almacenar una lista de las categorías que se han asignado a qué artículo. Al hacer referencias cruzadas y extraer datos de todo esto, WordPress reúne toda la información que necesita para una página particular de su blog, antes de aplicar el tema y presentárselo, a través del servidor web software.
Sistemas de almacenamiento en caché
Servir archivos HTML estáticos es bastante fácil en términos de cálculo: el servidor solo tiene que recuperar el archivo: contenido dinámico por otro lado, se requiere mucho trabajo para armar la página, con la base de datos y el procesamiento que ocurre en ese datos. Un sistema de almacenamiento en caché nos lleva a un círculo completo al crear estas páginas dinámicas y luego básicamente guardarlas como archivos HTML estáticos. Cuando se vuelve a solicitar exactamente la misma página, no es necesario volver a calcularla, lo que acelera el sitio.
Sin embargo, el almacenamiento en caché es un término amplio que puede significar muchas cosas: los CDN son un tipo de caché; también hay cachés de bases de datos para consultas frecuentes (piense en WordPress pidiendo a la base de datos el título de tu blog cada vez que alguien mira tu 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 las diversas configuraciones del complemento de caché total W3 para tu blog de WordpressHace un tiempo hablé sobre los beneficios de instalar el plugin W3TC en su blog de Wordpress para acelerarlo con varios cachés, pero es comprensible que algunos lectores desconfíen un poco de ... Lee mas , también usado aquí en MakeUseOf. Tu el navegador también tiene un caché Todo lo que necesita saber sobre la memoria caché del navegador [MakeUseOf explica]Siempre que tenga un problema con un sitio web, una de las primeras sugerencias que escuchará del soporte de TI es "intente borrar el caché de su navegador" junto con "y elimine sus cookies". Entonces que es... Lee mas - Casi cualquier cosa se puede almacenar en caché.
Como puede ver, de hecho, existe una inmensa cantidad de trabajo y muchas tecnologías involucradas con 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 Configure su blog con WordPress: la guía definitiva¿Quieres comenzar tu propio blog pero no sabes cómo? Mire a WordPress, la plataforma de blogs más poderosa disponible en la actualidad. Lee mas . Escalarlo a miles de usuarios es donde comienzan los problemas.
¿Alguna pregunta? Pregunte y haré todo lo posible para responder. ¿Te sorprende cuánto esfuerzo se puede dedicar a un sitio web?
James tiene una licenciatura en Inteligencia Artificial y está certificado por CompTIA A + y Network +. Es el desarrollador principal de MakeUseOf, y pasa su tiempo libre jugando VR paintball y juegos de mesa. Ha estado construyendo computadoras desde que era un niño.