如何减少http请求()-冯金伟博客园

前端性能-减少Http请求

根据性能黄金法则,80%的时间花在图片、脚本、样式表、Flash等Http请求上。我们需要花点时间。这些技术包括使用图像映射、CSS精灵、内嵌图像以及将javascript与样式表合并。

如果页面上有很多带链接的图片,图像映射是减少Http请求数量的一种方法。一个image maps可以让你在一张图片上放置多个相关的链接地址,用户点击图片的不同区域可以跳转到不同的链接页面;

有两种类型的图像映射,一种是服务器端图像映射。在这类地图中,所有的点击都请求同一个URL,参数附有用户点击点的x、y坐标;另一个是客户端图像地图,这是更常用的,因为用户点击不同的区域,并要求不同的网址;;如下

-可查看图像地图详情。

https://en.wikipedia.org/wiki/Image_map

-客户端图像映射的实例

https://www.w3schools.com/tags/tryit.asp?文件名=tryhtml_areamap

俗称雪碧图,具体怎么做你应该知道;先说它的好处。它不仅减少了Http请求的数量,而且比图像映射更灵活,因为图像映射所需的图像要求图形是有序的,而单个sprites则不要求。

另外,一般认为合并后的图片会大于单独图片的总数,因为合并后的图片有多余的空白色区域。实际上,合并后的图片往往更小,因为合并后的图片相对于单独的图片减少了存储信息开销,比如颜色表、格式等。

可以使用data:URL协议让你的页面直接包含图片,不需要任何Http请求,但是浏览器直到ie8才支持;格式如下

数据:它不仅可以用于内嵌图片,还可以用于指定URL的任务,包括脚本和标签;

因为data:URL是嵌入在页面中的,所以在不同的页面访问过程中不会被缓存,从而增加了页面的大小。一个聪明的办法是通过设置外部css和内容图片为背景图片,使嵌入图片随css一起缓存,当多个页面使用这个嵌入图片时,比如网站logo,这是值得做的;;

-如何生成图片的base64编码

使用一些在线工具,比如这个http://www.pjhome.net/web/html5/encodeDataUrl.htm;

或者使用google chrome开发者工具,在chrome下新建一个窗口,然后把要转换的图片直接拖到浏览器中,打开控制台,点击Source,点击图片,右边会显示图片的base64代码。

理想情况下,将一个网页上引用的多个脚本脚本合并为一个,将多个引用的样式文件合并为一个,这样可以减少http请求的数量。一般合并后还会有一步减小文件大小,叫做压缩;

-如何合并?

一般来说,童鞋使用咕噜或大口包装工具是众所周知的,可以很容易地做到;

http请求报文是乱的,怎么格式化?

先粘贴到其他编辑软件里editplus,在复制出出来

http请求如何解决编码问题?

HTTP请求常用的分为get请求和post请求,但两种请求方式处理编码问题的方式不一样

1.post请求因为post请求以数据包的的形式发送请求,不存在URL的编码问题,所以直接使用request.setCharacterEncoding("gbk")就可以解决编码问题。

2.get请求同样也需要使用request.setCharacterEncoding("gbk"),而且

因为get请求以URL方式传递参数,在接收请求后需要对参数执行URLdecoder. decode(url,"gbk"),如果没有显式执行Decoder则使用系统默认编码。

服务器拒绝请求怎么解决?

原因是:发起连接请求的客户端,在 Http 请求头部字段里没有维护对应的 authorized 字段导致的错误。

解决方法:收到这种错误后,客户端需要仔细检查错误消息,在 HTTP RFC 里,根据状态码查找到对应的错误消息,再有针对性的进行处理。

http请求由什么组成?

http请求由三部分组成,分别是:请求行、消息报头、请求正文

请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本

 请求行格式:Method Request-URI HTTP-Version CRLF

      Method表示请求方法;

      Request-URI是一个统一资源标识符;

      HTTP-Version表示请求的HTTP协议版本;

      CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF符)。

 

举例:

GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)。

HTTP请求方法(所有方法全为大写)有多种,各个方法的解释如下:

GET     请求获取Request-URI所标识的资源

POST    在Request-URI所标识的资源后附加新的数据

HEAD    请求获取由Request-URI所标识的资源的响应消息报头

PUT     请求服务器存储一个资源,并用Request-URI作为其标识

DELETE  请求服务器删除Request-URI所标识的资源

TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断

CONNECT 保留将来使用

OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求