我正在使用Django来build立一个简单的网站。 当你键入基地址(现在是127.0.0.1:8000/)时,我使用django来显示一个视图,它根据你的用户权限进行一些检查并redirect你。 (如果你有pipe理员权限,你去'/pipe理',如果你不去'/ home',如果你没有login,你去'/login')。 当我发出这个HTTP请求时,我会redirect,但我也在我的django日志中看到以下两个错误: 代码400,消息不良请求语法('x16 \ x03 \ x01 \ x00 \ x95 \ x01 \ x00 \ x00 \ x91 \ x03 \ x01N \ xaa \ x9c \ x08 \ x96 \ x7f \ x92 \ xe9Z \ x925 \ xcaY4 \ xa6 \ xa5 \ XAB \ XF2 \ X16 \ […]
HTTP / 1.1规范(RFC 2616)对状态码400的含义说明如下: 错误请求(§10.4.1) : 由于格式错误,服务器无法理解请求。 客户端不应该不加修改地重复请求。 目前在几个基于HTTP的API中似乎有一个惯例,使用400来表示请求的逻辑错误而不是语法错误。 我的猜测是,API正在做这个区分400 (客户端诱导)和500 (服务器诱导)。 用400来表示非语法错误是可以接受的还是不正确的? 如果可以接受的话,RFC 2616中是否有注释参考,可以更深入地了解400的预期用途? 例子: Google数据协议,协议参考,HTTP状态代码
我有一个JSON请求,我发布到一个HTTP URL。 这应该被视为400 where requestedResource字段存在,但"Roman"是这个领域的无效值? [{requestedResource:"Roman"}] 这应该被视为400 ,其中"blah"字段根本不存在? [{blah:"Roman"}]