我在http中使用“Accept”标题时出现问题。我写了http客户端,当我设置“Accept:image / png”时,我可以读取任何文件(如txt,html等...)。 如果我像上面那样设置标题“接受”,我想我应该是不可能的......
我试着查看我的Firefox行为......我写了“about:config”并将“network.http.accept.default”设置为“image / png”...我可以上网冲浪通常
我不明白这个标题的含义吗?我想我只能打开文件* .png。
有人能解释一下吗?
(抱歉我的英文)
请帮帮我。
答案 0 :(得分:3)
接受不是强制性的;服务器可以(并且经常)不实现它,或者决定返回其他内容。
如果请求中存在[Accept]标头字段且响应的任何可用表示都没有列为可接受的媒体类型,则源服务器可以通过发送406(不可接受)来标记标头字段。 )通过将响应视为不受内容协商的影响来响应或忽略标题字段。
答案 1 :(得分:1)
实际上,前者的行为是正常的。我举个例子。
如果给定的URL指向PDF文件且Accept标头仅接受docx,则服务器将盲目地忽略它并发送PDF文件,因为服务器未设置为在PDF和其他文档之间做出决定。
如果有多种格式可用,那么服务器将考虑“Accept”标头并尝试相应地发送响应,否则,它将忽略“Accept”标头。
答案 2 :(得分:0)
接受标头很少被浏览器实现,并且在抓取工具也发出请求的公共网站上使用时会导致奇怪的错误。
这就是为什么,在Rail framework。
中大多数时候都会忽略接受标头答案 3 :(得分:0)
正如您所设想的那样,设置Accept意味着您不能接受除这些指定之外的其他媒体,并且服务器应返回406响应代码。 它实践,服务器无法正确实现,并始终发送响应。
所有详情均可在RFC 2616
中找到