HTTP/1.1优化措施
创始人
2024-06-03 08:54:34
0

日升时奋斗,日落时自省 

目录

1、减少重复数据的HTTP请求

 2、减少HTTP请求次数

<1>减少重定向请求次数

<2>资源合并

<3>延迟请求

3、降低HTTP响应的数据大小

<1>无损压缩

<2>有损压缩


HTTP优化总体分为以下三种:

(1)针对HTTP请求重复的数据处理

<1>重复数据缓存下来,下次请求时直接使用就行,不用再次请求

(2)针对HTTP请求次数

<1> 将原本由客户端处理的重定向请求,交给代理服务器处理,这样可以减少重定向请求的次数

<2>将多个小资源合并成一个大资源再传输,能够减少HTTP请求次数以及头部的重复传输,再来减少TCP连接数量,进而省去TCP握手和慢启动的网络消耗

<3>按需访问资源,只访问当前用户看得到 / 用得到的资源,当客户往下滑动,再访问接下来的资源,以此达到延迟请求,也就减少了同一时间的HTTP请求次数

(3)针对HTTP响应的数据大小

对于HTTP的请求和响应,通常HTTP的响应的数据大小会比较大,数据大小影响到网络传输的效率,跟我常见方法相通压缩操作,降低数据大小提高网络传输

1、减少重复数据的HTTP请求

针对请求响应不免会有一些重复操作,相同操作持续性,那每次都进行HTTP请求,但是数据都是一样的,此时就凭空增加了服务器的负荷量,可以把该请求针对响应的数据缓存到本地,下一次读取本地的数据,不必在通过网络获取服务器的响应了,这样不就更快了

HTTP请求中的方法通过缓存技术,其中HTTP协议的头部有不少的缓存字段来处理

缓存技术:当客户端向服务器请求资源时,会先抵达浏览器,如果浏览器有“要请求资源”的副本,就可以直接从浏览器中提取而不是从原始服务器中提取这个资源

细致化缓存处理:

http缓存都是从第二次请求开始的,第一次请求资源时,服务器返回资源,并在response header中回传资源的缓存参数;第二次请求时,浏览器判断这些请求参数,命中强缓存就直接200,否则就把请求参数添加到request header头中传给服务器,看是否命中协商缓存,命中返回304,否则服务器会返回新的资源

 针对过期有两种理解,一种理解是真过期了,还有一种理解就是原来的响应更新了,那此时第二种情况就出现问题了,客户端不知道响应更新了咋办???

但是针对这种情况,服务器再发送HTTP响应中,会预估一个过期时间,并把这个信息放到响应头中,这样客户端在查看响应头部的信息时,一旦发现缓存的响应是过期的,会重新发送网络请求

针对以上情况是应该会免除我们所设想的情况(临时更新,缓存失效),但是不是所有的情况都如意,如果过期时间已经到了,需要客户端重新发送请求,那此时的服务器的资源仍然没有改变,那不又是凭空增大了HTTP请求的负荷量

那会如何处理,能优化性能,需要客户端在重新发送请求时,在请求的Etag头部带上第一次请求的响应头的摘要,ETag 响应标头的值是服务器生成的任意值,因此服务器可以根据他们选择的任何方式自由设置值,该响应资源具有唯一标记,如果该响应是陈旧的,则客户端获取缓存响应的 ETag 响应标头的值,并将其放入 If-None-Match 请求标头中,以询问服务器资源是否已被修改;

结果一:如果服务器为请求的资源确定的 ETag 标头的值与请求中的 If-None-Match 值相同,则服务器将返回 304 Not Modified,继续使用原来的

结果二:如果服务器确定请求的资源现在应该具有不同的 ETag 值,则服务器将其改为 200 OK 和资源的最新版本进行响应

 2、减少HTTP请求次数

<1>减少重定向请求次数

 HTTP 协议中,操作由服务器向请求发送特殊的响应而触发。 响应包含以 3 开头的 状态码 ,以及 Location 标头,其保存着的 URL。 浏览器在接收到时,它们会立刻加载 Location 标头中提供的新 URL,此时告诉客户端资源已经迁移到另外一个网址了,客户端需要再次向发送新网址发送请求获取服务器的资源。

 以上看到重定向会带来多一次的请求的,就意味着重定向的次数越多,那么客户端就要多次发起HTTP请求,每一次的HTTP请求都得经过网络,增加了请求的载荷,同样会降低网络效率

使用代理服务器看起来是比较慢的,中间多了一个中间人进行操作,通信就需要两次了

怎么解决重定向多次请求带来的网络影响??

(1)通过代理服务器来完成重定向工作减少HTTP请求次数

(2) 代理服务器能知晓重定向操作,能在代理服务器中处理掉部分的重定向工作的请求次数将会更少

注:重定向是以3开头的状态码

<2>资源合并

以文件为例,每个文件都会有一次请求,那将所有文件合并成一个大文件,总量都是一样的,合并以后只需要一次请求就行了,也就意味着减少了重复发送的HTTP请求

浏览器一般会发送多个请求,每个请求都是不同会有TCP连接,合并请求后也会也减少了TCP连接的数量,减少了TCP连接(就是减少了TCP握手)和慢启动过程消耗的时间

举例:

合并CSS和JavaScript文件最小化,组合CSS和JavaScript文件也是减少网站总文件大小,就是将所有的CSS和JavaScript文件合并为了一个单独的文件,假设你的网站有4个外部JavaScript文件和3个外部CSS文件,意味着需要7个请求

但是,如果将CSS文件合并为一个CSS文件,并将4个JS文件合并为一个JS文件,你的网站就需要两个请求,而不是7个请求

注:这里不是说CSS叠在一个文件里写的,而是将文件合成一个大文件进行请求

引发问题:合并带来的问题给到客户端,如果小资源改变了,导致大资源在客户端这边下载的时候就要重新开始,需要额外的网络消耗

<3>延迟请求

一个页面可能包含许多图像,当用户访问该页面时,您的站点将针对所有这些图像发送HTTP服务器请求,根据您的网页有多沉重,这可能会使它变慢;但是,如果用户甚至没有打算向下滚动到页面底部看其他内容的想法,那不是就成了无故加载,无端消耗资源

延迟加载技术就解决了这个问题,代替发送不必要的HTTP请求,仅仅用户向下滚动到页面上的图像时发送服务器请求,延迟加载技术对资源智能利用可以显得减少HTTP请求数量。

3、降低HTTP响应的数据大小

每一种文件类型都会存有冗余,也就是浪费的空间,如果文件冗余大的话,空间浪费也就多,响应数据大小也就是受之影响,针对回收这些浪费空间的需求,设计了可以应用于特定用途的文件类型的经过优化的算法,用于文件的压缩算法可以大致分为以下两类:

<1>无损压缩

在压缩与解压缩的循环期间,不会对要恢复的数据进行修改。复原后的数据与原始数据是一致的(比特与比特之间一一对应)。对于图片文件来说,gif 或者 png 格式的文件就是采用了无损压缩算法。

注:gzip 应用最广泛

压缩算法上也是会有选择的,浏览器和服务器之间会使用主动协商机制,其中浏览器会是有Accept-Encoding标头,包含了所支持的压缩算法(存在优先级),服务器选择后发送Content-Encoding标头来告知浏览器选哪一种

<2>有损压缩

在压缩与解压缩的循环期间,会对原始数据进行修改,但是会(希望)以用户无法觉察的方式进行。网络上的视频文件通常采用有损压缩算法,jpeg 格式的图片也是有损压缩。

注:一些特定的文件格式既可以采用无损压缩算法,又可以采用有损压缩算法;其中有损压缩通常会比无损压缩效率更高一些。

相关内容

热门资讯

diy主机安卓系统推荐 亲爱的DIY爱好者们,你是否曾梦想过拥有一台完全由自己组装的安卓主机?想象一台运行流畅、功能强大的安...
安卓13系统可以安装吗 你有没有听说安卓13系统已经发布了?是不是迫不及待想要升级你的手机,体验一下新系统的魅力呢?不过,在...
手机壳平价推荐安卓系统,时尚与... 手机壳可是咱们手机的最佳守护者呢!想象你的宝贝手机在日常生活中难免会遭遇各种“小意外”,有了手机壳,...
麦芒是安卓系统吗,深度解析安卓... 你有没有想过,手机里的那个麦芒,它是不是安卓系统呢?这个问题,估计不少手机控都好奇过吧!今天,就让我...
苹果x系统感觉像安卓,安卓风潮... 你有没有发现,最近苹果的X系统好像有点儿像安卓呢?是不是觉得苹果的“高贵”形象突然变得有点儿接地气了...
小米的安卓系统设置在哪,轻松生... 你有没有发现,小米手机的操作界面简洁又美观,功能强大到让人爱不释手?但是,有时候你可能会觉得,这个设...
安卓系统荣耀排第一,引领智能手... 你知道吗?在智能手机的世界里,有一个系统可是风头无两,那就是安卓系统!而在这众多安卓手机品牌中,有一...
充电宝带安卓系统,便携式智能电... 你有没有想过,你的充电宝也能拥有自己的操作系统呢?没错,就是安卓系统!听起来是不是很酷?想象你的充电...
安卓类原生系统手机推荐,精选原... 你有没有想过,拥有一部安卓类原生系统手机,就像是拥有了掌控自己世界的魔法棒?没错,原生系统带来的流畅...
努比亚安卓13系统下载,下载与... 你有没有听说?努比亚手机最近可是大动作连连呢!他们推出了全新的安卓13系统,而且现在就可以下载啦!是...
一加5系统安卓10,安卓10系... 你有没有注意到,你的手机最近是不是变得特别聪明了?没错,我要说的就是那款让人眼前一亮的一加5手机,它...
ios系统数据转到安卓,iOS... 你是不是也有过这样的经历?手里拿着一台运行着iOS系统的苹果手机,突然有一天,你发现安卓手机的世界也...
安卓系统用什么修图,基于安卓系... 手机里的照片总是不够完美?别急,今天就来给你揭秘,安卓系统上那些超好用的修图神器!无论是磨皮美颜,还...
安卓使用低系统的软件 你有没有发现,手机里的那些老古董安卓系统,竟然还能玩出新花样?没错,就是那些使用低系统版本的安卓手机...
安卓系统怎么开通漫游,安卓系统... 你有没有遇到过这种情况:出国旅行,满心欢喜地想要用手机拍下那些美丽的风景,结果却发现信号全无,只能干...
编曲用软件推荐安卓系统,打造个... 音乐爱好者们,是不是在为编曲软件发愁呢?别急,今天就来给你推荐几款适合安卓系统的编曲神器,让你的音乐...
安卓系统版本更新后黑屏,安卓系... 最近是不是你也遇到了安卓系统更新后黑屏的尴尬情况?这可真是让人头疼啊!手机屏幕突然变成了一片漆黑,啥...
国家企业公示系统安卓app 你有没有发现,现在的生活越来越离不开手机了?无论是工作还是生活,手机都能帮我们解决不少麻烦。今天,我...
安卓系统更新提示失败,揭秘原因... 最近你的安卓手机是不是也遇到了更新提示失败的小麻烦?别急,让我来给你详细说说这个让人头疼的问题,让你...
ops电脑装安卓系统,开启多系... 你有没有想过,你的电脑装上安卓系统会是怎样的场景呢?想象你那台曾经只用来处理文档和浏览网页的电脑,突...