文档章节

移动适配 跳转

阿锋zxf
 阿锋zxf
发布于 2018/07/12 14:46
字数 917
阅读 11
收藏 0

HTTP Headers 200多项优化的:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Vary

百度代码适配:

https://ziyuan.baidu.com/college/courseinfo?id=156#h2_article_title5

Vary: Accept-Encoding,User-Agent

 

2,代码适配:该方法使用相同的网址(不考虑用户所使用的设备),但会根据服务器对用户所用浏览器的了解(ua),针对不同设备类型生成不同版本的HTML。

百度对js跳转不友好:

百度不支持JS跳转的方式适配

谷歌移动适配方面的指南:

https://developers.google.com/search/mobile-sites/mobile-seo/separate-urls?hl=zh-cn

 

Vary HTTP 标头

https://developers.google.com/search/mobile-sites/mobile-seo/dynamic-serving?hl=zh-cn#the-vary-http-header

 

 

 

 

在webkaka的网站速度诊断性能优化里有一项叫指定“Vary:Accept-Encoding”标头,可能很多人不太明白这是什么意思,不知道它对网站的影响有多大,不知道如何进行优化,为此,本文将给大家阐述下“Vary:Accept-Encoding”标头的意义以及设置方法。

指定“Vary:Accept-Encoding”标头

指定“Vary:Accept-Encoding”标头

      指定“Vary: Accept-Encoding”标头的意义

      指定“Vary: Accept-Encoding”标头,用一句话来说明它的意义,就是“告诉代理服务器缓存两种版本的资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测Content-Encoding标头的问题。”不过我想很多人都不理解这句话是什么意思,所以需要更详细的解释。

      先来看看下面这幅图:

网页从请求到响应的过程

网页从请求到响应的过程

      这个图显示了一个网页从请求到响应的过程。正常情况下,“Response”的结果是可读文本,但并不是所有的服务器端都返回这样的正常的结果到用户端,有的返回一堆乱码,这显然是不正常的。

      当浏览器发出一个请求时,会包含一些HTTP头信息,服务器会根据这些头信息决定返回什么样的东西(这是一个移动客户端吗?它能否处理压缩内容?它是否需要特定的语言支持?)。

      直接访问是好的,但现在网络使用了中间高速缓存(cache)和内容分发网络(CDN)。这就产生了一个问题,缓存如何使用头信息决定返回什么?它能否复制服务器端的决策逻辑?

      “Vary”解决了这个问题,“Vary”头描述什么信息“唯一地”标识一个请求——传入的请求只有完全匹配缓存的“Vary”信息,缓存才被使用。

      假如没有“Vary”头,那么如果由于某种原因,客户端有一个未压缩的版本在其缓存中的文件,它会不知道随后再次要求它的压缩版本,而不是只从缓存中使用未压缩的文件。——这就很好的解释了“Vary”头信息的重要意义。

      设想有两个客户,一个使用的旧浏览器不支持压缩,一个使用新的浏览器支持压缩,如果他们都请求同一个网页,那么取决于谁先请求,压缩或非压缩版本便存储在CDN上。这样问题就出现了,旧浏览器请求常规网页但获得缓存的压缩版本,而新浏览器会获得缓存的非压缩版本但尝试去“解压”它。无论哪种方式都是坏消息。解决方法是,源服务器回送“Vary: Accept-Encoding”。

      现在的中间CDN会存储独立的缓存条目,一个是Accept-encoding: gzip ,而如果你没有发送header,则存储另一个。

© 著作权归作者所有

阿锋zxf
粉丝 9
博文 227
码字总数 236789
作品 0
深圳
程序员
私信 提问
公司官网开发(PC+移动端)

目前已经做好官网的页面设计,根据所给的设计页面切图,并完成开发。 技术要求:PHP+mysql 工期要求:10个工作日 内容要求: 1、PC端适配目前所有主流浏览器,可根据屏幕大小自动适配分辨率;...

zb1491897060134
2017/04/13
19
4
判断是否移动端设备的JS代码,超短,百度都用它

大多数人都使用跳转适配的方式实现PC端到移动端的网页转换,而大多数人又是使用通过判断UA的方法来区分PC端还是移动端,思路一样,但代码各不相同,有长有短,主要是根据自己的编程习惯和网页...

fdhay
2016/12/22
69
0
H5唤醒App:一步直达App核心页面

移动互联网时代,H5已经成为App导流的重要途径,“从H5直接唤醒App核心页面”也成为了常见的技术需求。 技术需求的背后实际上是对用户体验的优化,众所周知,App日活量要和用户的新增量、活跃...

云山和大海
02/12
0
0
如何建设一个适配“百度轻舟计划”的移动站

百度轻舟计划已经出来了,目的很明确,提升百度在移动端的影响力,初步删除PC端的网页,加强移动站的网页权重吗,该计划要实现的目标是移动搜索达到百分百移动化。去年百度siteapp、开发者中...

卢松松
2014/03/13
4
0
一个草根站长在网络推广中遇到的那些“流氓行为”

写这篇文章的目的不是为了吐槽推广的不易,而是为了让后来的新手站长们别再走我的老路。 一、cnzz统计代码植入无下限广告 为什么要加个形容词“无下限”呢,我用你的统计代码你在我网站里植入...

卢松松博客
2018/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

交换两数(函数)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void Exchange(int* x, int* y){ int tmp = 0; tmp = *x; *x = *y; *y = tmp; } int main(){ int a; int b; scanf......

Lxxxxx256
49分钟前
3
0
给 K8s API “做减法”:阿里巴巴云原生应用管理的挑战和实践

作者 | 孙健波(天元) 阿里巴巴技术专家 本文整理自 11 月 21 日社群分享,每月 2 场高质量分享,点击加入社群。 早在 2011 年,阿里巴巴内部便开始了应用容器化,当时最开始是基于 LXC 技术...

阿里巴巴云原生
今天
6
0
数据平面

3.1数据平面的任务 解析数据包头 转发数据包到某些端口 通过查询由控制平面所生成的转发表 传统网络数据平面 数据包--输入端口---拆封和解析,转发策略匹配,转发调度---输出端口(协议相关,...

Firefly-
昨天
6
0
如何高效的阅读uni-app框架?(建议收藏)

作者 | Jeskson 来源 | 达达前端小酒馆 uni-app的框架,配置:page.json,manifest.json,package.json,vue.config.js。脚本,应用程序,main.js。日志打印,定时器,生命周期,页面,页面通...

达达前端小酒馆
昨天
8
0
实现原理专题--存储器的实现(三)

计算机实现原理专题--存储器的实现(二)中描述了一种电平触发器,但是某些应用需要在保持位从0到1变化的过程中对数据端进行保存。这种触发器叫边沿触发器。 一开始Q为0,时钟信号为0。当数据...

FAT_mt
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部