img标签的src属性是如何执行的?

13

考虑以下代码:

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

"1"是一个参数,需要插入到website.com中“Page”页面的某个表格中。如果访问者访问包含上述代码的页面,是否会执行该页面并将1插入到表格中?如果页面包含一些JavaScript代码,访问包含上述代码的页面时,它会被执行吗?

2个回答

15
如果浏览器配置为加载和显示图像,则首先检查它是否具有与URL匹配的文档作为新鲜的缓存(通过某些缓存标准)。如果没有,它将通过HTTP向mysite.com发送GET请求,获取资源/Page/1。然后发生什么取决于服务器。它可能只是从其资源中选择一个图像文件并将其发送到浏览器,或者生成一个图像并发送它,或者(除此之外或之外)在它的数据库中存储或更新一些内容,或者只是在文件中计数器,或任何它被编程执行的操作。 如果服务器发送的资源是图像数据,则浏览器将尝试显示它。如果它恰好是HTML文档,则会被丢弃,浏览器将显示alt属性的值,或损坏图像的图标,或两者都有。

1
当浏览器在可见区域找到这个img标记时(例如不应被隐藏使用display: none),它会将图像作为http请求执行。统计跟踪也是这样工作的。
因此,由于它是常规http请求,它将执行该URL的服务器端代码,该代码应返回一个图像(即使只是一个空白的1x1 gif),以便浏览器不报错。
但请注意,如果您第二次访问此页面,则浏览器可能会缓存图像。因此,请在末尾附加随机字符串或时间戳(例如http://website.com/Page/1?23423412341),或者使用htaccess告诉浏览器不要缓存它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接