奥林匹克国家公园中的可可西里雨林,华盛顿州
(© Jorge Romano/Offset by Shutterstock)

本题摘自于我 github 上的面试每日一题:https://github.com/shfshanyue/Daily-Question,并有大厂面经及内推信息,可「在左下角打开本题原文链接」

如果 PC 端和移动端是一套代码则不会出现这个问题。「这个问题出现在 PC 端和移动端是两套代码,却共用一个域名。」

使用 nginx 配置如下,根据 UA 判断是否移动端,而走不同的逻辑 (判断UA是否移动端容易出问题)

location / {    // 默认 PC 端    root /usr/local/website/web;

    # 判断 UA,访问移动端    if ( $http_user_agent ~* "(Android|webOS|iPhone|iPad|BlackBerry)" ){        root /usr/local/website/mobile;    }

    index index.html index.htm;}

解决方案通常使用 Vary 响应头,来控制 CDN 对不同请求头的缓存。

「此处可以使用 Vary: User-Agent ,代表如果 User-Agent 不一样,则重新发起请求,而非从缓存中读取页面」

Vary: User-Agent

当然,User-Agent 实在过多,此时缓存失效就会过多。

简答

使用 Vary: User-Agent,根据 UA 进行缓存。

Vary: User-Agent

但最好不要出现这种情况,PC 端和移动端如果是两套代码,建议用两个域名,理由如下

  1. nginx 判断是否移动端容易出错
  2. 对缓存不友好

更多面试

【字节-视频架构组-前端】头条架构组招人了内含自测题

【美团】什么是防抖和节流,他们的应用场景有哪些

【美团】如何获取一个进程的内存并监控

关注我

我是山月,正致力于「每天用五分钟能够看完的简短答案回答一个大厂高频面试题」。扫码添加我的微信,备注进群,加入高级前端进阶群.

加我微信拉你进入面试交流群

欢迎关注公众号【互联网大厂招聘】,定时推送大厂内推信息及面试题简答,每天学习五分钟,半年进入大厂中

每天五分钟,半年大厂中

移动pc一套代码_【腾讯】如何避免 CDN 为 PC 端缓存移动端页面相关推荐

  1. bat比较有意思的代码_腾讯开源的 Unity全系列 代码逻辑热修复方案--InjectFix

    InjectFix 腾讯开源的 Unity 代码逻辑热修复方案 Unity代码逻辑热修复 可用于Unity业务的bug修复,支持Unity全系列,全平台. 几个亮点 直接在Unity工程上修改C#即可 ...

  2. f1 score 代码_腾讯广告算法大赛冠军代码解读:稠密特征工程

    什么是稠密特征? 本赛题中利用 word2vec 变换得到的特征维度设定为 n*64,因此得到的稠密特征也是一个 n*64 的矩阵.稠密的特性体现在,64 个维度上每一个维度都存在有意义的值,需要进行 ...

  3. 二叉树的建立与遍历完整代码_腾讯面试官这样问我二叉树,我刚好都会

    前记 上周我投递出了简历,岗位是后端开发工程师.这周腾讯面试官给我进行了视频面试.面试过程中他问了二叉树的问题. 二叉树相关算法题,在面试中出现的次数非常非常多,所以我面试之前也有所准备.今天结合面试 ...

  4. vue项目区分打开的是pc端还是移动端

    我是一个vue 项目 pc一套代码 移动端一套代码 1.建立两个文件夹 一个mobile 一个pc,在router里配置项目路径 2.新建一个js文件夹 下列代码放入 假设名字叫util export ...

  5. vue 项目适配PC和移动端配置 (两套代码)

    vue 项目适配PC和移动端配置 (两套代码) 1.首页的配置: 首页用重定向的方式来进行适配的方案:` const redirectPath = /Android |webos | iphone i ...

  6. uni app 调用网络打印机_一套代码,七端运行-uni-app

    为什么要使用uni-app uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS.Android.H5.小程序等多个平台. 同时在别的方面它也有很大优 ...

  7. TinkPHP内核仿每推推51领啦试客源码_PC源码+WAP端+APP原生代码_自带5套精美模板

    TinkPHP内核仿每推推51领啦试客源码_PC源码+WAP端+APP原生代码_自带5套精美模板 源码说明:TinkPHP内核上制作而成,是全国领先的免费试用网站!程序全开源无加密!带有wap手机端, ...

  8. vuecli3 实现 移动端和pc端 界面切换(两套代码)

    适合场景 多页面多系统应用 所有系统都在同一目录下.配置多入口多出口.每个系统之间可以链接.每个系统内依然采用Vue单页应用开发. 产品需求:一套代码 兼容pc端和移动端 , 移动端和pc端的样式布局 ...

  9. rem结合媒体查询适配的vue项目(PC端和移动端共用一套代码)

    一.前言 上周四接到了一个简单的纯前端网页的项目,我用了三天时间已经开发并且部署完毕(为了实现快速简易部署,使用了gitee pages进行部署,这篇文章记录我使用gitee pages部署的详细过程 ...

  10. mxm智能教育机器人无法智能对话_零代码使用腾讯TBP打造智能对话机器人

    点击观看大咖分享 心疼你独自一人承担生活的苦难,寂寞夜里陪伴你的只剩无人倾诉的压抑和无处安放的焦虑.养个宠物,它却不能get到你的"宠言宠语".找个伴侣,还要浪费吵架的时间和精力. ...

最新文章

  1. 2022-2028年中国马铃薯市场研究及前瞻分析报告
  2. MySQL笔记-binlog理论及binlog回滚恢复数据
  3. 移动端取消iphone ipad默认按钮
  4. 如何配置Ubuntu17的软件库(sortware update)
  5. ESXI上的新建虚机绑定已使用过的静态ip无法ping通网关的奇怪现象
  6. java dwg转pdf_CAD处理控件Aspose.CAD转换功能演示:使用Java将DWG和DXF文件转换为PDF...
  7. junit5 入门系列教程-05-junit5 断言(assert)
  8. weblogic jdk版本升级
  9. Android跑马灯进度条,跑马灯进度条在Powershell中冻结
  10. pysaprk数据倾斜怎么解决?
  11. python做题记录之正方形拼接
  12. python的MYSQLdb
  13. 数据导入(excel读取,存储进数据库【多表】)
  14. CAD图纸转换成高质量的PDF文件,两种方法一步搞定哦
  15. 会变色的背景透明NSButton
  16. SQL存储过程根据,循环取出数据
  17. Multisim高频电子线路2.7章LC谐振电路的仿真
  18. 联通物联卡为什么没有网络_联通物联卡突然没有信号,试着用这几方法!
  19. [C++] 销毁单向循环链表
  20. python分发扑克牌_python实现扑克牌交互式界面发牌程序

热门文章

  1. 用户自定义变量、系统变量、环境变量
  2. CentOS 8 基础命令
  3. hashmap containsvalue时间复杂度_恕我直言,你真的了解HashMap吗?
  4. lzw编码 matlab,LZW编码算法matlab实现.docx
  5. java 文件夹不存在则创建_java判断文件不存在就创建的方法
  6. Git(1):一个能够快速下载Git.exe的方法
  7. (14)Spring框架----Spring 注解机制和XML配置机制之间的比较
  8. (7)Redis-Cluster集群理论及实践【上】
  9. IDEA中 GIT与SVN版本控制插件的切换
  10. 实验一:JDK下载与安装、 Eclipse下载与使用