Html 该URL如何响应图像或嵌入该图像的网页?

Html 该URL如何响应图像或嵌入该图像的网页?,html,.htaccess,web-services,http,webserver,Html,.htaccess,Web Services,Http,Webserver,的url有一些有趣的行为,我以前没有见过。我是一个狂热的互联网用户,但我对HTTP的了解有限。我知道Web服务器可以以任何方式响应请求,并提供元数据以帮助浏览器了解它实际响应的内容类型,因此.gifurl实际上可以返回.gif以外的内容并正确显示也就不足为奇了。让我困惑的是.gifurl生成的网页如何包含在img标记中 这只是某种不透明的服务器端魔法吗?(即,服务器正在使用HTTP请求标头猜测请求是否来自或浏览器地址栏中的URL)在这种情况下,区别似乎在于接受:标头中存在文本/html 尝试:

的url有一些有趣的行为,我以前没有见过。我是一个狂热的互联网用户,但我对HTTP的了解有限。我知道Web服务器可以以任何方式响应请求,并提供元数据以帮助浏览器了解它实际响应的内容类型,因此
.gif
url实际上可以返回
.gif
以外的内容并正确显示也就不足为奇了。让我困惑的是
.gif
url生成的网页如何包含在
img
标记中


这只是某种不透明的服务器端魔法吗?(即,服务器正在使用HTTP请求标头猜测请求是否来自
或浏览器地址栏中的URL)

在这种情况下,区别似乎在于
接受:
标头中存在
文本/html

尝试:

然后尝试:

curl 'https://media1.tenor.com/images/f1fec382c29ce096bfbacd7844c54e0f/tenor.gif' \
-H 'accept: */*'

请求图像时,如通过HTML
元素, 用户代理通常会设置一个特定的媒体类型列表:


差不多就是最后一句,是的。比较浏览器中的两个HTTP请求……这个关于如何查看这些标题的问题很有帮助:对于像我这样不知所措的人,在chrome inspector的网络下,“tenor.gif”同时对应网页和图像。它显示两个请求。
curl 'https://media1.tenor.com/images/f1fec382c29ce096bfbacd7844c54e0f/tenor.gif' \
-H 'accept: */*'
|User Agent|Value                       |
-----------------------------------------
|Firefox   |*/* (since Firefox 47)      |
|Safari    |*/*                         |
|Chrome    |image/webp,image/*,*/*;q=0.8|