2013-02-19 44 views
4

考虑下面的代码:如何执行img标签的src属性?

<img src="http://website.com/Page/1"/> 

“1”是在一些表中插入在website.com“页面”页面的参数。 访问此页面(包含上面的代码)是否会导致页面执行并将1插入表中?如果页面包含一些Javascript代码。如果我们访问包含上面代码的页面,它会执行吗?

+0

为什么不自己测试一下? – yogi 2013-02-19 09:21:18

+0

我忘记了,好主意谢谢 – 2013-02-19 09:27:12

回答

1

当浏览器在可见区域发现这个img标签(所以它不应该被隐藏,例如display: none),它会以http请求的形式执行该图像。统计跟踪也是如此。

因为它是一个普通的http请求,它将执行该URL的服务器端代码,该代码应该返回一个图像(不过它只是一个空白的1x1 gif),所以浏览器不报告错误。

但请记住,如果您第二次访问此页面,浏览器可能会缓存图像。所以要么在最后附加一个随机字符串或时间戳(例如http://website.com/Page/1?23423412341),要么告诉浏览器使用htaccess不要缓存它。

4

浏览器(如果配置为加载并显示图像)将首先检查它是否将自己的缓存中的文档匹配URL作为新鲜(按某些缓存标准)。如果不是,它将通过HTTP向资源/ Page/1发送一个GET请求给mysite.com。然后发生什么取决于服务器。它可能会从资源中选取一个图像文件并将其发送到浏览器,或者它可能会生成一个图像并将其发送给它,或者它可能(而不是此类事物之外)存储或更新其数据库中的某些内容,或者只是一个文件中的计数器,或者它已被编程的任何东西。

如果服务器发送的资源是图片数据,浏览器会尝试显示它。如果碰巧是例如一个HTML文档,它将被丢弃,并且浏览器将显示alt属性的值,或者是一个破碎图像的图标,或者两者都显示。