正确的http状态拒绝客户端视图图像与无效的引用网页

简短版本:如果我决定拒绝对某个URI的访问,因为客户端没有提供有效的Referer HTTP头,那么我应该使用哪个http状态?

长:假设我写了一个非常漂亮的照片的博客文章。 我希望我的访问者通过链接到这篇博客文章与他们的朋友分享,但是如果我的访问者与他们的朋友分享了直接链接到图像文件的链接,那么我有点难过。 除了用“请与你的朋友分享这个博客文章的链接”这样的词汇来说服之外,有什么礼貌的方式表明,通过使用某个http状态,使用相应的HTTP Referer头部可以更好地访问图像文件?

没有正式的专用于这种(非常常见的)情况的代码,使用400是错误的( 400意味着服务器不理解请求,这是不正确的)。

根据你的说服,你可以:

  • 回复301redirect到您的博客页面 – 这会导致您的图片无法显示在其他人的网页上,但是试图明确打开它们的人会被redirect到您的页面
  • 用一个301回复一个特殊的图像,例如,一个大的红色的X和一个文字说明你的位置
  • 回答403未授权 ,这意味着,你想要什么: 我明白,你在问什么,但不会给你
  • 回复像417更深奥的东西期望失败或418你不是没有茶壶 🙂

请务必在您的回复中包含简要说明 – 以及指向您的博客的链接…

要做到这一点,没有特别的http响应。 通常使用400“错误请求”444“连接无响应closures”