📅  最后修改于: 2023-12-03 15:01:20.520000             🧑  作者: Mango
本文介绍的主题是关于URL中的一串参数——_nc_x
。这个参数有什么作用?在实际应用中,如何使用它?
读者可以按照下面的章节,了解完整的知识体系。
_nc_x
参数的作用在URL中,我们经常看到带有_nc_x
参数的情况,比如:
https://static.xx.fbcdn.net/rsrc.php/v3/ya/r/O2aKM2iSbOw.png?_nc_x=Ri_z-RDzEFt
那么这个参数的作用是什么呢?
官方文档中解释道,_nc_x
参数是为了防止CDN(内容分发网络)缓存而设立的。当访问一个URL时,CDN会根据URL的路径和查询参数产生缓存,返回相同的结果给下一个请求。但若是URL中带有不同的_nc_x
参数,CDN则认为这是一个不同的请求,从而不会返回缓存结果。
_nc_x
为了避免CDN缓存,通常的做法是在URL后面加上一个随机的字符串作为查询参数,比如:
https://example.com/image.png?_={random_string}
但这样在URL缓存性能的影响上不利,因为不同的字符串意味着不同的URL,而服务器在返回请求时,必须单独处理每个URL。
所以我们使用_nc_x
参数取代上面的随机字符串,以得到一个更好的性能,提高URL缓存的能力。
具体做法如下:
const url = 'https://example.com/image.png';
// 利用随机字符串生成不同的_nc_x参数
const nc_x = Math.random().toString(36).substring(2, 15) +
Math.random().toString(36).substring(2, 15);
// 将_nc_x参数添加到URL查询参数中
const newUrl = url + `?_nc_x=${nc_x}`;
console.log(newUrl);