CDN数据流量减少

CDN数据流量减少

我试图保存 Chrome 中看似 JPG 的图像,但最终却下载了 WEBP 图像。

我在 macOS Catalina (10.15.4) 上使用 Chrome 版本 80.0.3987.163,我正在尝试下载JPG 图像来自网站。尽管图片 URL 显然有.jpg扩展名,但当我按 CMD+S 或右键单击图片并选择时,Save image as...系统会弹出一个保存对话框,格式下拉菜单设置为Google's WEBP 如图所示

我猜他们在实际是 WEBP 的图片上使用 JPG 扩展名,但这很容易让人误解。这可能吗?有没有办法将图片下载为 JPG?

答案1

文件扩展名对于 HTTP 来说无关紧要:如果服务器显示Content-Type: image/webp,那么它就是 WebP 图像,仅此而已。(相比之下,大多数网站不再.html在 URL 中使用 ,即使它们提供基于 HTML 的网页。)

原来的上传到网站的图像是 JPEG 文件;但是,它通过“内容分发网络”(在本例中为 Akamai)提供给您。CDN 的工作是托管这些文件并减少网站真实服务器的负载,但许多 CDN 还提供各种优化功能以节省客户端的带宽 - 这通常包括重新压缩图像、缩小 JS/CSS 文件等。

Akamai 查看 HTTP 请求的用户代理标头来猜测浏览器支持的最佳格式是什么(但奇怪的是,它忽略了接受标头)并自动将图像转换为 WebP。URL 保持不变,但响应的内容类型标题表示新格式。

除了安装“用户代理欺骗器”扩展或尝试使用其他浏览器外,您还可以复制 URL 并通过终端使用curlwget工具下载它(macOS 应该至少内置其中一个)。CDN 通常会将“非浏览器”工具排除在 webpification 功能之外。

curl -Of https://mosaic03.ztat.net/vgs/media/catalog-lg/NI/12/2O/0H/NQ/12/[email protected]

答案2

CDN数据流量减少

WebP是 Google 目前开发的一种图像格式,基于收购 On2 Technologies 所获得的技术。

如果User-Agent场地在你的HTTP(S) 请求标头显示你正在使用最新版本的浏览器,内容分发网络 (CDN)服务器可以提供原始.jpg.png这种新的 WebP 格式的图像以减少数据流量。尽管如此,这些提供的图像文件将保留其原始文件扩展名;这确实具有误导性和欺骗性。

在 GNU/Linux 系统上,一种解决方案是使用或wget命令下载原始图像文件curl

有几款 Google Chrome 扩展程序提供了将 WebP 格式的图片保存为其他格式的方法。不过,只有一个扩展程序开源软件;将图像另存为类型

不过,这款扩展程序和其他类似扩展程序都有一个令人讨厌的缺点。在保存之间,这些扩展程序不记得目录上一个图片保存到其中。这可能是也可能不是由于 Google 的扩展程序沙盒政策。无论如何,我打开了一个GitHub 问题关于它。

将图像另存为类型

答案3

不确定这会持续多久,但从今天(2021 年 8 月 7 日)开始它就有效了。

正如@user1686 上面提到的,如果图像扩展名在 URL 中是 jpg 或 png,但它尝试保存为 Webp 图像,那么它很可能是由 CDN 提供的 - 如上所述 - 原因多种多样。

为了避免这种情况,请在图像名称后添加“?”,然后将其下载为原始文件类型 - jpg 或 png。

这个“?”让 CDN 认为需要提供图片的原始版本,而不是该图片的缓存/优化版本(例如 webp 版本)。

尝试一下——在新标签页中打开此图像: https://crework.axiomthemes.com/wp-content/uploads/2017/06/cursor.png

请注意,它是一个 .png,但如果你尝试保存它,它会保存为 .webp

将图片 URL 重命名为: https://crework.axiomthemes.com/wp-content/uploads/2017/06/cursor.png?123

并重新保存。成功了!

答案4

我能够使用 Google Chrome 保存 jpg,方法是右键单击(并按住),然后将图像拖到我的计算机桌面上,然后选择“另存为”上下文菜单。不知为何,拖动鼠标光标会给我一个另存为 jpg 的选项。因此,61wpPwFUwtL._SL1500_.webp它不是保存为“ ”,而是保存为“ 61wpPwFUwtL._SL1500_.jpg”。非常简单。

相关内容