为什么大家都要用 BootCDN ?

112 天前
 SillyGod
本人技术不精,只是编程小白

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

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

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


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


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

为什么你们 CSS 文件要用第三方 CDN ?
2580 次点击
所在节点    CDN
22 条回复
q8515620
112 天前
抛开投毒事件不谈,使用 CDN 难道不是为了加速吗?
GooMS
112 天前
Keep it simple
SillyGod
112 天前
@q8515620

我的意思是,这点 CSS 文件,恐怕加载也要不了 1s 吧
SillyGod
112 天前
@GooMS

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

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

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

但是用 BootCDN 是什么玩意?无法理解,至于楼上说的 SRI 是个好东西,但是知道 SRI 也不会用 BootCDN...
restkhz
111 天前
楼主想的是流量不大,不就一 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
110 天前
@restkhz

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

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

如果以正常项目尺度来评判,那这些 CSS 可能也相当于 1 至 多个 图片文件了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX