V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
NGINX
cURL
SillyGod
V2EX  ›  CDN

为什么大家都要用 BootCDN ?

  •  
  •   SillyGod · 2024-09-01 00:06:18 +08:00 · 3867 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人技术不精,只是编程小白

    我发现很多人会用:
    https://cdn.staticfile.org
    https://cdn.bootcdn.net

    这俩经过我的测试,已经被 uBlock 拦截掉了

    我也看了前段时间的投毒事件,大概理解为什么


    但是我不理解,为什么这种简单的 CSS 文件需要用第三方 CDN 呢?
    全部用自己的服务器存储并加载,难道很消耗流量吗?这又不是图片资源


    我技艺不精,可能有些地方不清楚,所以希望大佬赐教,诚心发问:

    为什么你们 CSS 文件要用第三方 CDN ?
    22 条回复    2024-09-04 12:07:40 +08:00
    q8515620
        1
    q8515620  
       2024-09-01 00:19:17 +08:00
    抛开投毒事件不谈,使用 CDN 难道不是为了加速吗?
    3IOhG7M0knRu5UlC
        2
    3IOhG7M0knRu5UlC  
       2024-09-01 00:27:43 +08:00
    Keep it simple
    SillyGod
        3
    SillyGod  
    OP
       2024-09-01 00:44:45 +08:00
    @q8515620

    我的意思是,这点 CSS 文件,恐怕加载也要不了 1s 吧
    SillyGod
        4
    SillyGod  
    OP
       2024-09-01 00:46:06 +08:00
    @GooMS

    就像 Python 一样呗,就 import 就完了
    dejavuwind
        5
    dejavuwind  
       2024-09-01 01:12:27 +08:00 via Android
    不是写前端的 猜测一下
    CDN 可以加速不同网络环境 提升访问体验 升级啥的也方便 不然还得自己替换文件
    另外就可能虽然只有几十个 Bytes 但是如果访问量足够大 还是能省一些钱的
    jeesk
        6
    jeesk  
       2024-09-01 01:16:23 +08:00 via Android
    现在已经不相信任何国内供应链了
    IvanLi127
        7
    IvanLi127  
       2024-09-01 02:15:28 +08:00
    大家都用同一个 cdn 地址加载相同的库,浏览器不就能高高兴兴地缓存了嘛。

    http 时代中间链路还能帮你半路就响应缓存的内容,不知道现在是什么形态了
    07aPzknB16ui9Cp3
        8
    07aPzknB16ui9Cp3  
       2024-09-01 06:12:12 +08:00
    我也不理解,业务小流量小的在 CDN 自托管花不了几个钱,业务大流量大的肯定要 CDN 自托管
    0o0O0o0O0o
        9
    0o0O0o0O0o  
       2024-09-01 09:27:40 +08:00   ❤️ 2
    我觉得动机也就只剩网络优势和能省一点是一点了,对于这些子资源正确使用 SRI 也不用太担心投毒: https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity

    @IvanLi127 #7
    > 大家都用同一个 cdn 地址加载相同的库,浏览器不就能高高兴兴地缓存了嘛。
    应该是不能的吧?现代浏览器都默认开了缓存分区: https://developer.chrome.com/blog/http-cache-partitioning
    thorby
        10
    thorby  
       2024-09-01 10:42:33 +08:00 via iPhone
    v2ex 说话需要这么小心谨慎吗哈哈
    paopjian
        11
    paopjian  
       2024-09-01 10:52:36 +08:00
    免费的 CDN 为什么不用, CDN 存在的意义就是全球加速网络, 自己放自己服务器还得费心关心用量和费用,
    Bingchunmoli
        12
    Bingchunmoli  
       2024-09-01 11:05:25 +08:00 via Android
    第一用自己的 cdn ,那么钱从何来,你不是大客户,节点多吗, 被攻击自己余额保得住吗
    totoro625
        13
    totoro625  
       2024-09-01 11:13:47 +08:00
    粗劣的解释一下:
    1. 相当大一部分正规网站的国内服务器出口带宽一般都非常小,如 1mbps
    1mb 大小的文件需要 8 秒加载完,这种是不能接受的,而提高带宽的价格通常是:20 元/mbps/月
    2. 国内 CDN 的价格非常昂贵,还有可能被人恶意刷流量,这些占比较大的静态资源提供了免费快速的 CDN
    所有命运的馈赠,早已暗中标好了价格
    3. 现代浏览器的设计,对于域名拆分提供了更好的使用体验,提高并行下载速度,减轻单一域名的压力
    4. 现代程序代码的设计沿用的国外习惯,这些资源在国外都是专业的可信机构免费提供 CDN 的,代码设计上就是要从 CDN 获取资源,而且非常零碎
    这涉及到国内国外网络建设及收费模式的问题,详见 /t/1015855#r_14321278 /t/837890#r_11430013
    muzihuaner
        14
    muzihuaner  
       2024-09-01 11:47:32 +08:00 via Android
    为了省钱
    IvanLi127
        15
    IvanLi127  
       2024-09-01 13:12:25 +08:00
    @0o0O0o0O0o 看来我的知识过期了🤣
    CHS
        16
    CHS  
       2024-09-01 15:06:13 +08:00
    你这个问题就和别人问为什么要用 Github 、vercel 、Cloudflare 、jsDelivr 、unpkg 、npmjs 之类的一样
    因为这类服务已经是基础设施的一部分了,直接上手使用是理所当然的事情
    msg7086
        17
    msg7086  
       2024-09-01 15:10:28 +08:00
    很慢啊。我服务器在一个地方,但用户遍布全球各地,不用现成的 CDN ,总不见得自己从头建一个 CDN 起来吧。
    Mogugugugu
        18
    Mogugugugu  
       2024-09-01 15:18:20 +08:00
    用 CDN 没问题,就算再小的文件,也是占用请求的,而浏览器给统一域名的并发请求数量是有限制的,加上 CDN 的区域加速等功能,CDN 已经成为了基础设施的一部分。

    但是用 BootCDN 是什么玩意?无法理解,至于楼上说的 SRI 是个好东西,但是知道 SRI 也不会用 BootCDN...
    restkhz
        19
    restkhz  
       2024-09-01 16:30:24 +08:00   ❤️ 1
    楼主想的是流量不大,不就一 css 吗,通常也就传输 20 到 100kB ,其实比较教科书的说法是:延迟优化。

    我有一个网站。HTML+CSS+JS 总共 300kB 需要传输.
    但是我的服务器在地球的另一端,有一个自己编写的脚本,30kB. 这个请求一来一回,加载时间 500ms 。
    但是有另一个 CDN 上的脚本,80kB ,可是 CDN 会就近加载,只需要 30ms ,这个脚本就已经加载完成。
    更大的脚本,用 CDN 加载速度却快了十几倍。
    你当然希望你的 css 能更早,更快地加载完成。少看几百毫秒的白屏,让用户体验更好。
    这是很多 web 实践书里(教科书)会推荐 CDN 的原因。

    另一方面,带宽真的不是问题吗?
    国内的 VPS 通常只有 1-4mbps 。
    我的 HTML 本体 7kB 不到,但是加上 CSS 和 HTML ,就算是 4mbps 的带宽(512kB/s),对于 300kB 需要传输的数据来说,似乎只要有用户同时访问,那么带宽就容易成瓶颈。
    所以我当然会考虑,如果我只需要传输那 7kB 的 HTML 本体,剩下的将近 300kB 的 JS 和 CSS 都扔给 CDN ,带宽不足的问题是否会有很大的缓解呢?
    还有,其实我的网站已经不大了。HTML+css+js 超过 512kB 的比比皆是。楼上有人提到 1mbps 的小鸡,那么 30 到 100kB 的 CSS 是否应该节约就很显而易见了,对不对?

    简而言之,CSS 用 CDN 是一种可以不花钱,让响应时间快一个数量级,还能节省带宽/流量的方法。
    SillyGod
        20
    SillyGod  
    OP
       2024-09-03 03:51:35 +08:00
    @restkhz

    您具体了信息量的尺度,这能让我更明白为什么了

    CSS 的大小往往比 HTML 本身要 "大的多" ,这种情况下,CSS CDN 就很有道理了
    可能我自己写的项目都很简单,所以我自认为我写的项目涉及的 CSS 并没有大很多
    我在提这个问题时,确实是极大的低估了 CSS 文件的大小

    如果以正常项目尺度来评判,那这些 CSS 可能也相当于 1 至 多个 图片文件了
    SillyGod
        21
    SillyGod  
    OP
       2024-09-03 03:53:01 +08:00
    @Mogugugugu

    BootCDN 不是用的人很多嘛,要不然之前投毒时也不至于反响那么大吧,我个人用的很多 Github 开源项目都是用的 BootCDN ,那件事情后基本都有 issue 或者 pull request 来改 CDN 了。
    Francklin
        22
    Francklin  
       2024-09-04 12:07:40 +08:00
    还有一个重要原因就是国内网站需要备案,且对个人网站非常不友好,限制非常多,导致许多个人网站不备案,网站托管在境外,速度自然是慢很多的。如果能把部分静态资源放到国内 CDN 上就更好了,能较快提升网站访问速度。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5446 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:23 · PVG 11:23 · LAX 20:23 · JFK 23:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.