回答
使用400如果请求参数是错误的。如果其中一个If-*
请求标头像If-Match
,If-Modified-Since
等其中一个是错误的,请使用412。
为什么?这正是RFC所说的。例如见这种提取物If-Match
规格:
如果没有实体标签匹配,或者如果“*”,并给出当前没有实体存在,服务器不能执行所请求的方法,并且必须返回一个412 (先决条件失败)响应。当客户端要阻止更新方法(如PUT)修改自客户端上次检索到的资源时发生更改时,此行为非常有用。
412当您的服务器不符合客户端指定的条件时使用。
在你的情况下,你应该使用400.这只是一个不好的要求。
请参阅此link了解有关预处理标题的一些说明。
Etag标头通常是一个字符串,代表我们在HTTP标头中的资源 。您要求具有If-Match的资源是一个 预先规定的HTTP标头。如果它不符合您发送的代码 ,它将发送一个412。
如果-None-Match通知服务器仅当 Etag与客户端发送的Etag不同时才处理整个响应。
为什么downvote?答案有什么问题? – nunespascal
认为有人度过了一个糟糕的一天。只要忽略它,让系统完成它的工作:) – BalusC
有一个upvote来平衡它。 –
你可以使用状态码422.如果你不想,400是好的。
- 1. 角4 HTTP状态代码= 400
- 2. HTTP状态代码200-299或400
- 3. Google.Apis.Admin.Email_Migration_v2 [HTTP状态代码412 - 数量达到限额]
- 4. HTTP状态码200 vs 202
- 5. HTTP状态代码
- 6. Facebook SDK 3.1 - 错误:HTTP状态码:400
- 7. 什么是正确的HTTP错误代码返回,404 vs 412?
- 8. HTTP请求状态400
- 9. Spring MVC的HTTP状态400
- 10. Jetty客户端http错误代码412
- 11. 我需要$ HTTP POST状态代码400,但得到200
- 12. 预检的响应具有无效的HTTP状态代码400
- 13. 中东国家的http状态代码400
- 14. 400使用Parse.Cloud.httpRequest时的状态代码
- 15. 亚马逊s3 | MalformedXML状态代码:400
- 16. 不良请求-400状态代码
- 17. HTTP状态代码:在GCMDemo
- 18. 蟒蛇HTTP状态代码
- 19. 设置http状态代码
- 20. PUT的HTTP状态代码
- 21. 开关HTTP状态代码
- 22. HTTP状态代码413
- 23. 替代HTTP状态码401?
- 24. 502 HTTP状态代码
- 25. 检测HTTP状态代码
- 26. 获取HTTP状态代码
- 27. HTTP状态500而不是HTTP状态的JAX-RS响应400
- 28. Internet Explorer Internet失败HTTP状态代码
- 29. AppsFlyer返回状态码400
- 30. HTTP错误代码:400
它还表示,由于400的语法格式不正确,请求无法实现。 – Rob
本页帮助我 - http://odino.org/don-t-rape-http-if-none-match-the- 412-http-status-code/- 使用'PUT'请求上下文使我更容易理解它的用途,因为滥用某些状态码总是容易的。 – Charlie