【发布时间】:2015-02-13 15:07:59
【问题描述】:
编辑:为了澄清我的问题,这就是我想要理解的内容。
如果网页嵌入了这样的图像:
`<img src="...">`
浏览器如何处理从图片 url 接收到不同的 HTTP 错误状态码?它在浏览器中是否非常一致,并且基本上与图像不存在一样(404)?
请注意,我知道我可以“试一试”,但我没有每个浏览器/操作系统/手机都可以试一试,我想了解这实际上是如何合理地工作的现代桌面和移动浏览器(〜IE9和更新的模糊线)。另外,如果其他人都想知道同样的事情,他们也可以来这里看看答案;-)
原始问题:
我正在实现一个 REST 服务,它可以安全地为客户端返回图像和视频。
我想为不同类型的故障发送不同的 HTTP 响应代码会很好:
- 一般错误为 400(错误请求)
- 如果用户无权查看图片,则为 401
- 如果不允许用户查看图像,则为 403(禁止)
- 如果找不到图片,则为 404
从 HTML 和 Javascript 的角度来看,对于所有相当现代的浏览器,使用这些不同的错误代码进行响应是否与 404 响应完全相同?
我当然知道错误代码会有所不同,但我要确保不会因为使用这些错误代码而弹出奇怪的安全错误不同的 HTTP 响应。
【问题讨论】:
-
试试?带有正确标头的 401 将显示身份验证弹出窗口,无论资源是如何访问的(直接、img 标记、脚本标记)..
-
好点!所以我会忽略 401,然后发送 400 或 403.... 其他 Http 代码怎么样...它们还有其他奇怪的问题吗?
-
我将不得不重复我的“尝试”。 ;-) 您可以阅读 HTTP RFC,但浏览器可能有自己的怪癖。
-
这就是我在这里问的原因 - RFC 只能让你到目前为止......我在问其他人是否已经走这条路并意识到浏览器 A 在 os X 上运行有怪癖 B ;-)如果他们确实这么说,那么我可以自己检查那个场景,看看它是否真的有问题,并且会在此处记录下来供其他人查找,而不必自己尝试;-)
-
我不太明白这个问题。 http 协议不知道它在发送/接收什么。错误代码不受随附内容的限制。由浏览器相应地处理这些错误。
标签: image http http-error