Как определить файл webp по ссылке .png? - PullRequest
0 голосов
/ 16 июня 2019

У меня есть хитрая ссылка:
https://www.pwc.com.tr/tr/sektorler/Perakende-T%C3%BCketici/kuresel-tuketicileri-tanima-arastirmasi/kuresel-tuketici-gorusleri-arastirmasi-info-5en.png

Последние 4 символа в ссылке означают, что мы получим изображение в формате png, и даже GET HTTP-запрос на эту ссылку приносит контентвведите 'image / png'.Но если вы попытаетесь сохранить его в браузере, вы получите файл формата webp Save image...

Итак, вопрос в том, как определить, что это действительно изображение webp '.скрыто за ссылкой, которая выглядит и действует (помните заголовки!) как файл png через программу, которая может использовать только протокол http?

Обновление: я хочу указать, что я сделал http, получил запрос из разных сред и получил тип 'image / png' в типе содержимого заголовков.Например, используя node.js и axios https://youtu.be/KiRrAVl67uQ

1 Ответ

1 голос
/ 17 июня 2019

Обновление: сервер определит тип клиента по заголовку User-Agent запроса и, соответственно, выдаст другое значение Content-Type.Это имеет смысл, поскольку не все клиенты поддерживают webp.

Таким образом, чтобы получить ресурс типа image/webp, вы можете отправить собственный заголовок User-Agent и смоделировать его как Chrome и т. Д. Например, в Node.js и axios:

const axios = require('axios');

axios.request({
  url: 'https://www.pwc.com.tr/tr/sektorler/Perakende-T%C3%BCketici/kuresel-tuketicileri-tanima-arastirmasi/kuresel-tuketici-gorusleri-arastirmasi-info-5en.png',
  method: 'get',
  headers: {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
  }
}).then(function(res) {
  console.log(res.headers); // content-type header is image/webp now.
}).catch(function(err) {
  console.log(err);
});

Браузер пытается сохранить это изображение в формате .webp, поскольку: в заголовках ответа HTTP значение заголовка Content-Type равно image/webp:

enter image description here

как можно определить, что это действительно веб-изображение, «спрятанное» за ссылкой, которая выглядит и действует как файл png ...?

Вы можете проверить заголовок HTTP-ответа и узнать, что это такое Content-Type.

...