前端性能-减少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 请求查询服务器的性能,或者查询与资源相关的选项和需求