Cuando incluimos la biblioteca de slideshow de JS en nuestra página web en la guía paso a paso anterior, escribimos esta URL: https://cdn.rawgit.com/pamelafox/a8b77c43f56da1753348/raw/slideshow.js
Esa URL es una URL "absoluta", lo que significa que incluye un protocolo y un dominio. Cuando incluimos bibliotecas de JS en el ambiente de Khan Academy, debemos usar una URL absoluta de modo que el ambiente sepa la ruta completa a la biblioteca.
Si estuvieras trabajando en una página web en tu propia computadora y tuvieras descargados todos esos archivos, entonces podrías usar una URL "relativa" en su lugar, como simplememte slideshow.js o lib/slideshow.js si estuviera dentro de una carpeta llamada lib. Cuando estés trabajando de manera local, asegúrate de abrir el panel de red de tu navegador para asegurarte de que encuentre todos los recursos locales, como tus archivos JS y tus archivos CSS. Si el navegador no pudo encontrar un recurso, verás un 404 y puedes depurar la URL y la ubicación del archivo.
Ahora, de regreso a esta URL: https://cdn.rawgit.com/pamelafox/a8b77c43f56da1753348/raw/slideshow.js
El protocolo es https. Eso significa que es una URL segura. Solo te permitimos traer recursos seguros en las páginas web de Khan Academy, y esa es la mejor práctica en desarrollo web. Sin embargo, no todos los servidores tienen habilitado SSL aún, así que algunas veces tendrás que usar URLs con http en tus proyectos.
El servidor es cdn.rawgit.com, y es un ejemplo de un "CDN": una "red de distribución de contenidos" (content delivery network en inglés). Los CDNs están optimizados para servir achivos estáticos como bibliotecas de JS y servirlos rápidamente. Hay algunos CDNs bastante grandes que alojan múltiples bibliotecas de JS (como la CDN de Google y cdnjs), y también hay otras bibliotecas que tienen sus propios CDN dedicados.
Cuando traes una biblioteca de JS a tu página web desde un CDN, o desde cualquier servidor que no sea tuyo, debes confiar en ese servidor. Un servidor malicioso podría reemplazar la biblioteca de JS con código que se robe los datos de tus usuarios y los mande a alguna parte ¡y ciertamente no quieres que eso pase!
En Khan Academy, usamos un mecanismo de seguridad llamado CSP en nuestro ambiente de páginas web para asegurarnos de que solo puedas traer recursos de servidores en los que confiamos: bootstrapcdn.com, rawgit.com, googleapis.com, jsdelivr.net y cdnjs.com.
En tus propios sitios web, tendrás que tomar la decisión de servir la biblioteca de JS desde tu propio servidor o incluirla desde un CDN externo. La mayoría de los sitios web grandes deciden alojar las bibliotecas en su propio servidor, porque pueden tener más control y hacer optimizaciones como combinar múltiples bibliotecas en un solo archivo JS para un mejor rendimiento al cargarlo. Es tu decisión, ¡solo ten en mente todo lo que hablamos aquí!