AWS CloudFront移动设备检测机制及相关规则咨询
AWS CloudFront设备检测相关问题解答
关于公开的User-Agent列表
咱先明确说:AWS并没有对外发布用于检测移动浏览器的完整User-Agent列表。这是因为User-Agent字符串会随着新设备、新浏览器版本的迭代持续变化,CloudFront的设备识别逻辑是动态维护和更新的——如果公开固定列表,很快就会过时,所以AWS选择内部维护这个设备特征库,保证设备识别的准确性。
关于CloudFront判定设备类别的具体规则
虽然AWS没有公开判定规则的全部细节,但我们可以基于官方信息梳理核心逻辑:
- CloudFront会解析请求中的
User-Agent头字符串,和内部维护的设备特征库进行匹配。 - 当匹配到对应设备类别的特征时,就会把对应的
CloudFront-Is-*头(比如CloudFront-Is-Mobile-Viewer)设为true,未匹配的类别则设为false。 - 有些设备可能同时属于多个类别,比如部分平板设备的User-Agent同时包含移动设备和平板的特征,这时候
CloudFront-Is-Mobile-Viewer和CloudFront-Is-Tablet-Viewer都会被设为true。
另外补充个实用点:如果你需要基于设备类型缓存不同版本的内容,只需要在CloudFront配置里开启那几个CloudFront-Is-*头的转发,源站就能根据这些头返回适配的内容,CloudFront也会用这些头来区分缓存键,实现不同设备版本的独立缓存。
内容的提问来源于stack exchange,提问作者Nic
相关产品推荐
相关产品推荐

