三叶草欧洲码和亚洲码怎么换算(YSLOW性能测试前端调优23大规则(十七):避免空链接)

关于空链接的通常会有两种方式,第一种模式是直接的HTML的空链接。

<img src=”” >

第二模式是使用JavaScript动态的设置src属性。

var img = new Image();

img.src = “”;

这两种模型写出来的空链接的影响是一样的,但是对于不同的浏览器来说会有所不同。

1) Internet Explorer向页面所在的目录发出请求。例如,如果您运行的页面

http://192.168.40.128:8091/ECShop_V2.7.3_UTF8_release0411/upload/test1.html,由于空链接找不到图片,所以会向

http://192.168.40.【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目128:8091/ECShop_V2.7.3_UTF8_release0411/upload发送请求来查找图片。HTTP请求如图所示。

2) Firefox和Chrome会向实际页面提出请求。例如运行的页面

http://192.168.40.128:8091/ECShop_V2.7.3_UTF8_release0411/upload/test1.html,如果使用Firefox或Chrome浏览器就只会向这个页面发送请求,请求的是test1.html文档,图片的请求会被忽略,如图所示。

所以当页面中存在图片空链接时,可能会导致以下两个问题:

第一:可能出现流量峰值。例如上面的例子,访问

http://【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目192.168.40.128:8091/ECShop_V2.7.3_UTF8_release0411/upload/test1.html页面,如果这个页面中包含空图片链接,那么就会对根目录进行再次发送请求,这样相当于访问服务的流量增加了一位。

如果是一个小型网站,访问量不是很多的话,请求从1000变成2000这样服务器也不会出现太大问题,但如果网站每天的流量很大时,上百万的流量时,那么由于图片空链接导制流量成倍增长时,那么对服务器的的性能就会产生很大的影响。

第二:用户状态可能受损。如果您通过cookie或其他方式跟踪请求中的状态,则可能会破坏数据。即使图像请求未返回图像,浏览器也会读取并接受所有【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目标头,包括所有cookie。虽然其余的响应被丢弃,但可能已经造成了损害。

正常情况下不会写出图片空链接的情况,但是如果出现以下情况就可能出现图片空链接的情况,如以下代码:

<img src=”$imageUrl” >

如果$imageUrl是由其它代码调用而已来,并且$imageUrl的代码存在问题,那么就会出现图片空链接的现象。

当然要解决图片空链接带的问题,那么最好的方法显然是完善代码,在代码中消除页面中的违规代码。如果我们不能保证代码中是否会出现图片空链接的情况,那么可以尝试在服务器上检测空链接并中止任何进一步的执行。下面是一个PHP的检测代码。

<?php

$referrer = isset($_【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目SERVER[HTTP_REFERER]) ? $_SERVER[HTTP_REFERER] : ;

$url = “http://” . $_SERVER[HTTP_HOST]Â . $_SERVER[REQUEST_URI];

if ($referrer == $url){

exit;

}

?>

上面代码的目的是检测页面是否引用自身,如果有引用自身,那么就立即退出,并阻止服务器执行任何其他操作。另一种选择,就是记录已发生的情况,并进行分析。

尝试在服务器上检测此类请求的另一种方法是查看HTTP Accept标头。除IE之外的所有浏览器都会Accept为图像请求发送不同的HTTP 标头,而不是HTML请求【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目。例如,Chrome会Accept为HTML请求发送以下标头,如以下Accept请求。

Accept: application/xml,application/xhtml+xml,text/html;q=0.7,text/plain;q=0.3,image/png,*/*;q=0.6

Firefox和Chrome浏览器都会使用Accept为HTML请求发送一些内容以上面大致相同的标头,这样可以去判断我们要的内容是否存在,例如判断“image/png”的内容,但是对于IE浏览器只会发送所有请求中最后一个请求的Accept头的内容,这样就无法在服务器上区分它。对于IE以外的浏览器,您可以使用以下内容:【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目

<?php

if (strpos($_SERVER[HTTP_ACCEPT], text/html) === false){

exit;

}

?>

之所以会出现图片空链接的问题是由于浏览器中执行URI解析方式引起的,在RFC3986统一资源标识中定义,当遇到空字符串作为URI时,浏览器解析时会认为是相对URI。

这其实是浏览器的一个严重缺陷,当然浏览器都在尝试不断的解决这个问题。在HTML5中添加了<imag>标记src属性的描述,以指示不要再额外的增加其它的请求。

推荐阅读

给力项目线报网会员可免费下载 加入会员
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

计算器上清除键是什么符号(计算器上各运算符、储存键、清除键功能说明)

2024-6-7 11:37:14

行业资讯

火辣的舞蹈有哪些(火辣示范!掌握这6种接吻技巧,让你的吻更有魅力!)

2024-6-7 11:57:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索