this gif of Michael Jackson eating Tide Pods的网址有一些我以前从未见过的有趣行为。我是一个狂热的互联网用户,但我对HTTP的了解有限。我知道网络服务器可以响应它想要的请求并提供元数据来帮助浏览器确定它实际响应的内容类型,因此.gif
网址实际上可以返回其他内容并不太令人惊讶而不是.gif
并正确显示。让我感到困惑的是.gif
网址生成的网页如何将自己包含在img
标记中。
这只是某种不透明的服务器端魔术吗? (即服务器正在使用HTTP请求标头来猜测请求是来自<img>
或浏览器地址栏中的URL)
答案 0 :(得分:3)
在这种情况下,似乎有所作为的是text/html
标题中存在accept:
。
尝试:
curl 'https://media1.tenor.com/images/f1fec382c29ce096bfbacd7844c54e0f/tenor.gif' \
-H 'accept: text/html'
然后尝试:
curl 'https://media1.tenor.com/images/f1fec382c29ce096bfbacd7844c54e0f/tenor.gif' \
-H 'accept: */*'
请求图片时,例如通过HTML
<img>
元素, user-agent经常设置一个特定的媒体类型列表:
|User Agent|Value |
-----------------------------------------
|Firefox |*/* (since Firefox 47) |
|Safari |*/* |
|Chrome |image/webp,image/*,*/*;q=0.8|