全栈工程师眼中的HTTP-笔记-Web优化:前端,后台,前后端交集BigPipe

来源:互联网 发布:阿里账号和淘宝账号 编辑:程序博客网 时间:2024/04/27 14:14

基本知识



1.HTTP版本

HTTP 1 

HTTP /1.1 新特性:缓存处理,持续连接,ect.

HTTP /2    新特性:减小网络延迟,简化服务器向浏览器传输内容的过程,ect


2.用户代理 User Agent

指一串字符,表明当前用户使用什么样的代理在访问站点。 浏览器是最常见的一种UA。



Web优化:浏览器端服务器端,前后端交集

Web优化-前端视角的HTTP

通过Http Watch/Fiddler查看站点的HTTP请求信息,进行基本的优化:尽量减少同一域下的HTTP请求数,以及减少每一个资源的体积。

HTTP请求数最大化利用

当浏览器在用完了当前连接之后,对某个域需要进行更多的连接,则重复使用或者重新建立新的连接。

1.并发连接数限制。(是并行进程,通过时间共享共同使用存储器和处理器,进程的生成/销毁/切换增加负载)

应对:将静态资源放在非主域名的其他域名下(不同子域名也被认为是不同的域名)。

由于:并发连接数限制是浏览器针对资源的域名限制,而不是针对浏览器地址栏中的页面域名。

缺点:服务器压力变大。

优点:减少HTTP请求中携带的不必要的cookie数据。cookie的作用域是整个域名,在此域名下的所有HTTP请求都会带上cookie数据。

2.合并同一域名下的资源。例如将多个CSS合并为一个CSS,或者将图片组合为CSS贴图。

3.省掉不必要的HTTP请求。比如:内嵌小型CSS/JavaScript、设置缓存、减少定向, etc.


减少每个资源的体积

减少流量,进而缩短等待时间。

1.选择合理的文件格式。例如:合适的图片格式,更小的体积达到更好的显示效果。

2.压缩。对于较大的文本资源,gzip压缩,对含有“重复单词”的文本压缩率很高。


Web优化-后台视角的HTTP

让服务器尽快响应请求,以及减少请求对服务器的开销。


提高服务器的请求处理能力

Ngnix:处理前端高并发。原理:处理请求时异步非阻塞型的。Node.js同类。
Apache:处理后台请求。原理:处理请求是阻塞型的。
MPM多处理模块设置:prefork:进程维持连接(稳定,消耗资源多);worker:线程维持连接(不稳定,占内存少),适合高http请求的服务器。

DDos攻击 Distributed Denial of Service

DDos攻击客户端,不限制http并发连接数,允许自由设置TCP/IP并发数,在连上服务器后保持连接,直到连接数大于最大连接数。
包括:CC \ SYN \ NTP \ TCP \ DNS, ect.
应对:
1.增加贷款,提高服务器最大连接数。
2.首页静态化。
原理:静态资源对服务器压力小,还可以部署在CDN上。(TCP/IP攻击)
常受攻击的时候页面会对数据库进行写操作的页面,因为无法静态化,易于使服务器宕机。(TCP/IP攻击)


前后端交集:BigPipe

传输分三个部分:服务器的页面生成,网络传输,浏览器的页面渲染。

1.TCP/IP协议

http协议的底层是TCP/IP,需要三次握手才建立连接。
新增请求需要重新建立TCP/IP连接。

2.现有阻塞模型的缺陷

阻塞模型,需要100%完成相应环节才进入下一环节。
非阻塞式模型:借助http /1.1分块传输编码,允许服务器动态生成的内容维持http持久连接,在传输期间连接保持不断开。
BIgPipe首先传输框架,然后按优先级传输不同区域内容,浏览器分块渲染。最后一块的标记为0,可传输不确定数量的块。
用户体验好。

http /2 允许服务器在没有相应请求的时候,主动向浏览器推送它认为浏览器应该需要的内容,减少了等待浏览器接收并解析完才请求下载的时间。
  允许后面的请求复用之前建立的底层连接。




阅读全文
0 0
原创粉丝点击