A Samsung está usando o Akamai Image Manager para servir esses arquivos.
Se eu passar um cabeçalho Accept com image/jpeg,image/gif, ele retorna image/jpeg, como esperado.
wget --header="Accept: image/jpeg,image/gif" http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg
--2020-11-13 11:43:58-- http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg
Resolving image-us.samsung.com (image-us.samsung.com)... 23.217.144.69
Connecting to image-us.samsung.com (image-us.samsung.com)|23.217.144.69|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 83094 (81K) [image/jpeg]
Saving to: 'samsung-logo-191-1.jpg.6'
O Discourse tenta buscar a imagem chamando FileHelper.download, que chama FinalDestination.get, o qual, por fim, solicita o arquivo com um UserAgent de:
Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Portanto, se solicitarmos a mesma imagem com o mesmo cabeçalho Accept acima, mas adicionando esse user agent, obtemos:
wget --header="Accept: image/jpeg,image/gif" --header="User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg
--2020-11-13 11:52:50-- http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg
Resolving image-us.samsung.com (image-us.samsung.com)... 23.217.144.69
Connecting to image-us.samsung.com (image-us.samsung.com)|23.217.144.69|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45540 (44K) [image/webp]
Saving to: 'samsung-logo-191-1.jpg.10'
E ele retorna um image/webp. Parece que eles estão ignorando o cabeçalho Accept e usando sua própria lógica para determinar o melhor tipo de arquivo com base no user agent.
A Apple não suportou o WebP historicamente, então vamos testar isso:
wget --header="Accept: image/jpeg,image/gif" --header="User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15" http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg
--2020-11-13 12:27:02-- http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg
Resolving image-us.samsung.com (image-us.samsung.com)... 23.217.144.69
Connecting to image-us.samsung.com (image-us.samsung.com)|23.217.144.69|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 83094 (81K) [image/jpeg]
Saving to: 'samsung-logo-191-1.jpg.16'
Sucesso!
Acho que podemos fazer um argumento bastante sólido de que o servidor web deve sempre respeitar o cabeçalho Accept e não tentar ser mais esperto que ele. Por outro lado, alguém poderia argumentar que, se você apresenta uma string de user agent específica, deve estar preparado para agir como esse user agent (embora a falsificação de user agent não seja incomum e tenha vários usos).
Como acontece, a Apple adicionou suporte ao WebP no iOS 14 (lançado recentemente) e no macOS Big Sur (lançado ontem), então provavelmente devemos suportar isso (adicionando-o como uma extensão permitida padrão) e configurando o ImageMagick para suportá-lo (o que introduzirá uma dependência do libwebp ou similar) para que possamos otimizar e redimensionar, etc.