proper http status to refuse client view image with invalid referrer page

Short version: If I decide to reject access to some URI because a client doesn't supply a valid Referer HTTP header, what http status do I response?

Long: Suppose I wrote a blog post with very nice photos. I want my visitors share with their friends by using a link to this blog post, but am a little sad if my visitors share with their friends with a link directly to the image files bypassing my blog post. Besides persuading in words like “please share with your friends with a link to this blog post”, what is a polite way to indicate that the images files are better accessed with corresponding HTTP Referer header by using a certain http status?

0
задан 1 December 2016 в 07:49
2 ответа

Для этого нет специального HTTP-ответа. Обычно используется 400 «Плохой запрос» или 444 «Соединение закрыто без ответа»

0
ответ дан 4 December 2019 в 13:37

Для этой (очень распространенной) ситуации официально не существует кода состояния, и использование 400 неверно ( 400 означает, что сервер не понимает запрос, который является неправда).

В зависимости от ваших убеждений вы можете:

  • Ответить 301 перенаправлением на страницу вашего блога - это приведет к тому, что ваши изображения не будут отображаться на страницах других людей, но люди, пытающиеся открыть их явно, будут перенаправлены на вашу страницу
  • Ответьте с 301 на специальное изображение, показывающее, например, большой красный крестик с текстом, объясняющим вашу позицию
  • Ответьте с 403 Unauthorized , что означает именно то, что вы хотите: Я понимаю, что вы просите, но не дам вам этого
  • Ответьте чем-то более эзотерическим, например 417 Ожидание не выполнено или 418 Не будь чайником : -)

Не забудьте включить краткое объяснение в текст своего ответа -и ссылку на ваш блог ...

2
ответ дан 4 December 2019 в 13:37

Теги

Похожие вопросы