网站性能优化

虽然网站优化在这个话题有点大,我只能从自己的一些理解分享一些自己对于网站优化的意见。

一:

首先,我们在优化网站之前我们要搞清楚我们的一个基本的上网流程。

上网的过程不管多么复杂,我总结无非就是两端一线,客户端、服务器端、还有就是网络路由。

客服端:

       1、当我们在浏览器输入网址并回车后,如果你是第一次访问这个网址例如www.kscenery.com  。你的浏览器并不知道这个网站的IP,所以第一次请求时发向DNS服务器,进行DNS解析,那什么什么事DNS解析呢?

(脑补一下:DNS解析就是为了方便人们很好地记忆网址,而不是主机IP地址,将IP地址与域名之间一一对应起来,亲你访问了网址,实际上你的网址是通过了域名解析这个行为来找到的主机IP,so我们上网首先要经过专门的DNS服务器来帮助你完成!)

        2、DNS服务器查询到该网址对应的IP后,再给你发回,然后浏览器根据IP地址向www.kscenery.com  对应的web服务器发送请求。(客服端的第一步算完了,来看看服务器端)

服务器端:

        1、首先在服务器端有一个监听请求的东东,那是什么呢?是Socket!

{这个网上有脑补,我找了一些看你能否理解:他会根据socket.Accept()立即创建一个socket负责与发送请求的浏览器进行通信,浏览器本来就是用socket与服务器通信的,因此浏览也就是一个socket(说白了就是客服端与浏览器通信用的。Socket接口是TCP/IP网络的API应用程存编程接口),因为监听请求的的socket占用一个线程,因此我们也创建另一个线程专门处理客户端浏览器的请求。},

负责监听请求的Sockets发现有请求到达,

        2、如果发现请求的是静态页面,我么直接读取静态页面页面,并生成响应报文头(text/html),通过socket发回给浏览器;如果请求的是图片的话,生成响应报文头(image/jpeg),和图片内容一起发回给客户端,像css,js之类的都是基本一样的处理方式;

            如果发送来的请求是动态页面,那服务器该怎么处理请求呢?他会先先处理网页的骨架和渲染,然后再html和css都加载完了才去处理js的行为。这也是为什么我们一般将script放在/body之后。在这期间浏览器会与服务器就行多次的交互。也就是处理完毕后将处理完的结果交给socket,由socket 发回给浏览器。

二:

当我们对这个流程有所了解后,就可以更好的理解一些优化的措施

1、当然首先想加快页面的加载,增加网速呀什么的也是灰常重要的,不过对于前段的童鞋来说就不讨论了~~

2、仔细想想,我们想要冲前段的角度来加快页面,减少请求的发送,使浏览器与服务器减少不必要的交互不失为一个好的办法。

(1)合并css文件、javascript文件

(2)图片可以用一张大图一次性上传,使用图片切割

(3)css中尽量不使用通配符选择器(它会使重绘增多,加重css渲染)

(4)实用工具将css、js中的文件压缩

(5)编码是增加js代码的耦合度,减少代码量

(6)图片也可以通过专业工具进行压缩,能用JPG不要用PNG

(7)在数据交互时减少304重定向的情况

ok!自我小小终结了一下下,要是有错请帮忙果断提出,


你可能感兴趣的:(网站性能优化)