我有一个https
链接,嵌入<img>
,一切都很好。例如https://jsfiddle.net/Lbhhtt6n/。但是,如果您尝试直接下载链接,例如使用链接https://version.gitlab.com/check.svg?gitlab_info=eyJ2ZXJzaW9uIjoiOC4xNi4wLXByZSJ9的浏览器直接打开它,则会返回404
错误。
由于这个问题,我无法通过httparty
response = HTTParty.head('https://version.gitlab.com/check.svg?gitlab_info=eyJ2ZXJzaW9uIjoiOC4xNi4wLXByZSJ9')
puts response.success? # always return false
它背后的魔力是什么?有人可以开导我吗?感谢。
答案 0 :(得分:2)
如果您通知HTTP Refer标题,Gitlab会给您提供图片。否则,它会回复404.请参阅https://about.gitlab.com/handbook/sales-process/version_check详细信息。
当您尝试通过浏览器地址栏或任何其他工具获取资源而未明确设置此标头时,您将获得404。
但是,当您尝试将其作为页面资源时,请浏览您将此标题发送给您。
亲自尝试看看它的实际效果:
$ curl -v https://version.gitlab.com/check.svg?gitlab_info=eyJ2ZXJzaW9uIjoiOC4xNi4wLXByZSJ9
$ curl -v https://version.gitlab.com/check.svg?gitlab_info=eyJ2ZXJzaW9uIjoiOC4xNi4wLXByZSJ9 -e stackoverflow.com
查看Chrome开发者工具显示的差异:
作为页面资源: