正确的 http 状态以拒绝客户端查看具有无效引荐来源页面的图像

正确的 http 状态以拒绝客户端查看具有无效引荐来源页面的图像

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

Long:假设我写了一篇博客文章,里面有很多非常漂亮的照片。我希望我的访问者通过这篇博客文章的链接与他们的朋友分享,但如果我的访问者绕过我的博客文章直接通过图片文件的链接与他们的朋友分享,我会有点难过。除了用“请通过这篇博客文章的链接与您的朋友分享”这样的说服性话语之外,还有什么礼貌的方式来表明图像文件最好使用相应的 HTTP Referer 标头,即使用特定的 http 状态来访问?

答案1

目前没有专门针对这种(非常常见)情况的状态码,使用 400 是错误的(400意味着服务器不理解该请求,但事实并非如此)。

根据您的劝说,您可以:

  • 回复301重定向到您的博客页面 - 这会导致您的图片无法显示在其他人的页面上,但尝试明确打开这些图片的人将被重定向到您的页面
  • 使用 301 回复特殊图片,例如,显示一个大红色 X,并附有文字解释您的立场
  • 回复403 未授权这正是你想要的:我明白你的要求,但不会给你
  • 回复一些更深奥的内容,例如417 未达到预期或者418 别当茶壶:-)

请务必在回复正文中包含简短的说明 - 以及指向您的博客的链接...

答案2

为此,没有特殊的 http 响应。通常使用400“错误请求”或者444 “连接已关闭且无响应”

相关内容