`
xitong
  • 浏览: 6188967 次
文章分类
社区版块
存档分类
最新评论

网页速度分析 && 网页头文件解析 && 性能优化 && httpwatch工具使用

 
阅读更多
一:网页整体 分析


1:总用时
2:未知
3:总下载数据量
4:总上传数据量
5:未知
6:DNS 查询次数
7:TCP查询次数
二:速度分析


1:阻塞时长 访问请求前的所用时间,比如等待有效TCP连接。浏览器TCP的并发数有限。
2:connect TCP连接时间
3:get/post 时长
4:服务器响应时长
5:下载时长
6:第一个数据包达到时长 6=2+3+4
7:整个网络过程时长 7=6+5
三:HTTP报头分析

1:左边分析
accept-Encoding
也就是说当服务器返回的是用gzip或deflate协议进行压缩过的内容, 浏览器将自动的进行解压缩 . 这样做可以节省大量的网络带宽,负面影响是加重了服务器的负担。
connect: keep-active 还有close
resin 处理流程
<!-- Configures the socket timeout -->
<socket-timeout>65s</socket-timeout>
<!-- Configures the keepalive -->
<keepalive-max>32</keepalive-max>
<keepalive-timeout>5s</keepalive-timeout>
1.处理完成http请求
2.等待keepalive-timeout秒,如果在这个等待中收到后继的http请求,则跳转到1
3.进入keepalive等待过程,超时时间是socket-timeout秒。如果有后继请求,则跳转到1
4.线程释放到线程池
TCP连接方式 增加keep-active值可以减少TCP连接次数,DNS查询次数。
2:右边分析
max-age:总有效时长(s) 源服务器设置。
Age: 已过时间(s) 这个值CDN计算出的。
浏览器会根据max-age age ,expires 计算缓存是否有效。max-age,age级别高于expires,expires是以时间点为基准,时间点在一些情况下不准(本机的系统设置等)。
Cache-crontrol max-age 最长的有效时间 有服务器端设置 CDN不修改
Date: CDN或者浏览器从源站读取的时间(服务器的时间)
Etag:
服务器首先产生ETag,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。
  其过程如下:
  客户端请求一个页面(A)。 服务器返回页面A,并在给A加上一个ETag。 客户端展现该页面,并将页面连同ETag一起缓存。 客户再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。 服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改——Not Modified)和一个空的响应体。
etag的优先级高于 not modified
区别 etag 用于标示 文件本身的一些描述信息,可以自己写算法实现。
如:apache2 中定义的是 3段 inode-size-timestamp
inode 存储文件的 类型,所有者,组,访问模式
size 存储文件的大小
timestamp 存储的是文件内容被修改的时间戳
什么情况下使用 etag:
1:一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候我们并不希望客户端认为这个文件被修改了,而重新GET。
2:某些文件修改非常频繁,比如在秒以下的时间内进行修改,(比方说1s内修改了N次),If-Modified-Since能检查到的粒度是s级的。if-non-math的颗粒是SS级的。
为提高访问速度,提高性能,最好把etag关闭 apache 方法:在配置文件中加入 FileETag none
Expires:源站设置的的实效时间点
Last-Modified :文件最后一次修改时间
X-Cache :表示你的 http request 是由 proxy server 回的
四:性能优化
1:减少DNS查询次数,响应时间
增加TTL值 time-to-live 值 缓存时间。有域名解析设置,告知域名解析服务器缓存多长时间,域名解析服务器,通过换算出有效的缓存时长,告知浏览器。
增加keep-alive 时长 TCP连接时间长 DNS不在查询,TCP不用再重新连接。
配置响应速度快的DNS服务器。
IE4.x以上的缓存机制 默认缓存30分钟。如果服务器设置的TTL<30分钟,将以30分钟为准。
参考:support.microsoft.com/kb/263558/zh-cn
注册表地址 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
DnsCacheTimeout 默认值 30分钟
如果IE缓存实效后查找windows系统自身的DNS client 缓存。
浏览器重启会失效,超过浏览器的DNS记录的数量会失效。
ServerInfoTimeOut 默认值为2分钟,即:如果至少每2分钟重用一个主机名,将超过30钟不需要DNS查询。
windows DNS client 系统服务
缓存的时长在与 DNS 资源记录相关联的生存时间 (TTL) 中指定。
cmd --》 ipconfig/displaydns 查看缓存的DNS记录 ipconfig/flushdns 刷新缓存使其失效
注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters


在注册表中找到并单击以下项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters


在“编辑”菜单上,指向“新建”,单击“DWORD 值”,然后添加下列注册表值:
数值名称:MaxCacheTtl
数据类型: REG_DWORD
默认值:86400 秒(1天)
数值数据:如果您将客户端的 DNS 缓存中的最大 TTL 值降低为 1 秒,则客户端 DNS 缓存看起来已被禁用
以后还需要继续研究,不太清楚IE,DNS client缓存的机制,我测试都是按TTL走的。
2:增加单个TCP的使用时长,增加TCP并发连接数,减少TCP连接响应时间
增加keep-alive值可以增加单个TCP的使用时长。
增加并发数,可以更多的请求分布式的资源数据,加快下载,显示等速度。
分布式部署服务器,做最后一公里原则,选择优质带宽。
IE: 注册表信息KeepAliveTimeout 默认为1分钟,即TCP连接空闲超过1分钟就断开,未断开的情况下DNS不再查询。
3:减少服务器响应时间
部署高配服务器,做系统集群,分布式系统等,优化软件(数据库缓存,页面静态化等)
4:减少下载时长
优质带宽资源,同2. 网页组件压缩gzip等,网页组件制作要求。
5:减少页面的显示加载时长
将页面按DIV+table结构制作,实现部分加载。
做网页组件(如:图片等) 客户端缓存,从本地读取数据。
附:GMT英国格林威治时间 北京时间-8
分享到:
评论

相关推荐

    C++头文件解析(词法分析器)

    提取代码信息,最终形成xml(未完善),算是存个档

    基于lex&yacc技术的C语言头文件的解析器(c head file parser)

    这里是我所实现的程序的一个最关键部件:C语言头文件解析器。 其中比较关键的就是字节对齐的部分。 一个sizeof我写了很久。C语言的复杂真是可想而知。 而我只写了一个还不是非常完善的头文件解析器。 希望能对其它...

    C头文件 解析

    C头文件 解析 各种头文件大全 易学易用

    C语言头文件包含关系分析工具

    c# 简易绘制C语言头文件包含关系图 详细说明可以查看我的blog http://www.cnblogs.com/geeking/ 本工具使用了DotNetBar中的TreeGX控件。下载地址: http://down2.cr173.com/soft1/DotNetBarSetup.zip

    VC头文件依赖关系分析工具

    VC头文件依赖关系分析工具,可以查看指定位置的文件是如何依赖到某个头文件的。暂不支持分析VS2005工程,不过你可以分析VS2005工程目录下的指定文件。

    iar msp430头文件解析

    MSP430头文件解析文件,新手可以试着看看,不错的哦

    C++ Header Parser by Python,C++头文件解析器

    C++ Header Parser by Python,C++头文件解析器。 可以解析C++头文件,很方便的从中提取出: include define enum class namespace variable function (public/private) 甚至注释等。 输出可以按照需求自定义,...

    C语言函数大全 头文件解析 非常详细堪称完美实例加解析

    在CSDN找了好久没有找到比较完美的,下载下来N个 经过对比这个是最完美的。非常详细,头文件,函数,实例全有,值得收藏的好东西啊。。。CHM的,如果你觉得好的话,请评论吧。这样你就不用被扣资源分啦

    DSP头文件如何使用 DSP头文件如何使用

    DSP头文件如何使用 DSP头文件如何使用 DSP头文件如何使用 DSP头文件如何使用

    c++解析json头文件

    c++解析json头文件

    C语言头文件 DIR C语言头文件 DIR

    C语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言...

    C语言头文件 MEM C语言头文件 MEM

    C语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言...

    C语言头文件 NB30 C语言头文件 NB30

    C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言...

    C语言头文件 OLE C语言头文件 OLE

    C语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言...

    优化算法头文件

    *.h, gsm.h,优化算法头文件 优化算法头文件

    C语言头文件 MAP C语言头文件 MAP

    C语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言...

    C语言头文件 temp C语言头文件 temp

    C语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言...

    C语言头文件 RPC C语言头文件 RPC

    C语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言头文件 RPCC语言...

    C语言头文件 MATH C语言头文件 MATH

    C语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言头文件 MATHC语言...

    C语言头文件 DATA C语言头文件 DATA

    C语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言头文件 DATAC语言...

Global site tag (gtag.js) - Google Analytics