相关疑难解决方法(0)

403 Forbidden vs 401 Unauthorized HTTP响应

对于存在的网页,但对于没有足够权限的用户(他们未登录或不属于正确的用户组),要提供的正确HTTP响应是什么?401?403?别的什么?到目前为止,我对每个人的看法都不太清楚.哪些用例适合每个响应?

http-status-codes http-response-codes http-headers http-status-code-403 http-status-code-401

2544
推荐指数
18
解决办法
97万
查看次数

POST后,我应该进行302还是303重定向?

Web应用程序的常见方案是在修改数据库的POST后重定向.就像在用户创建数据库对象后重定向到新创建的数据库对象一样.

似乎大多数Web应用程序使用302重定向,但如果您希望使用GET获取重定向中指定的URL,则303根据规范似乎是正确的做法.从技术上讲,使用302,浏览器应该使用与获取原始URL相同的方法获取指定的URL,这将是POST.大多数浏览器不会这样做.

302 - http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3

303 - http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4

我应该使用302还是303?

http-status-codes http-status-code-302

51
推荐指数
5
解决办法
2万
查看次数

HTTP/1.0仍在使用吗?

假设一个是编写HTTP服务器/客户端,支持HTTP/1.0有多重要?它现在仍然在任何地方使用吗?

编辑:我与HTTP/1.0的有用性/重要性不太关注,而量软件实际使用它的非内部(单元测试是内部使用,例如)目的在现实世界(浏览器,机器人,智能手机/傻瓜等...).

http backwards-compatibility

26
推荐指数
6
解决办法
2万
查看次数

浏览器中保存302重定向多长时间?

由于我们的网络服务器配置错误,主域名将302重定向发送到新位置.我们解决了这个问题.清空浏览器缓存时,一切正常.

对于没有清空缓存的"普通"客户端:302重定向在浏览器中保留多长时间?

我正在寻找默认设置下每个主要浏览器(Chrome,Firefox,Safari,Opera,Edge,IE 12)的特定缓存时间(如果有的话).

browser redirect browser-cache http-status-code-302

25
推荐指数
3
解决办法
3万
查看次数

设计路由:有没有办法从Rails.application.routes中删除路由?

devise_for创建包含DELETE路由的路由,我们要删除它,并且devise_for不支持:except:only选项.

如何从中删除路线Rails.application.routes?在draw街区或之后?


以下是错误的详细信息,这是我们需要删除路由的原因.

  • 我们向自定义UJS控制器操作发出DELETE请求

  • 在控制器操作中,我们删除了我们想要的内容,然后执行302重定向.这是一个坏主意,我们已经通过返回一些JSON来纠正它.

  • 一些客户端在收到302后会向重定向发出一个新的DELETE请求,该请求路由到Devise删除路由!从而无意中删除了这个人!让人惊讶.我们假设这将是一个GET.不好的假设.

这个错误已经修复,但我想删除路由.


以下是我最后所做的事情,这是由Jose'Valim引用的赏金获胜者所建议的:

config/routes.rb,我在devise_for呼叫上面添加了这个,它设置了其余的'people'路由:

delete '/person', :to => 'people#destroy'
Run Code Online (Sandbox Code Playgroud)

然后在我现有的people_controller.rb,我添加了一个无操作方法:

def destroy
  render :nothing => true
end
Run Code Online (Sandbox Code Playgroud)

我仍然有点恼火,没有一种简单的方法可以从RouteSet中删除路由.此外,delete路由仍然存在于设计控制器,但它不会被调用,因为rails查找第一个匹配config/routes.rb并返回它.

routes ruby-on-rails devise ruby-on-rails-3

20
推荐指数
3
解决办法
9720
查看次数

为什么Django的HTTPResponseRedirect对PUT使用相同的HTTP方法但不使用POST?

我有一个Django项目,我正在使用视图来处理不同的HTTP方法.该POST处理的对象的创建,然后重定向到同一个视图作为GET(或因此我认为),使用Django的redirect()快捷方式(HTTPResponseRedirect)返回新创建的对象.这很好.我尝试了同样的事情,PUT但我陷入了重定向循环.在我挠了一会儿后,我偶然发现了这个SO答案,然后我推断,由于重定向不处理POST数据,请求变成了一个GET.

当我从以下位置进行重定向时,我通过观察日志来确认这一点POST:

[15/Dec/2014 00:47:43] "POST /client/151/ HTTP/1.1" 302 0
[15/Dec/2014 00:47:43] "GET /client/151/ HTTP/1.1" 200 395
Run Code Online (Sandbox Code Playgroud)

然而,PUT停留a PUT并将我引入重定向循环,直到它出错.

[14/Dec/2014 23:07:36] "PUT /api/asset/6779 HTTP/1.1" 301 0
[14/Dec/2014 23:07:37] "PUT /api/asset/6779/ HTTP/1.1" 302 0
[14/Dec/2014 23:07:37] "PUT /api/asset/6779 HTTP/1.1" 301 0
[14/Dec/2014 23:07:38] "PUT /api/asset/6779/ HTTP/1.1" 302 0
[14/Dec/2014 23:07:38] "PUT /api/asset/6779 HTTP/1.1" 301 0
[14/Dec/2014 23:07:39] "PUT /api/asset/6779/ HTTP/1.1" 302 …
Run Code Online (Sandbox Code Playgroud)

python django http http-status-code-301 http-status-code-302

11
推荐指数
1
解决办法
1508
查看次数

为什么POST重定向到GET和PUT重定向到PUT?

我使用快递4.13.3(最新)和以下代码:

var express = require('express')

var app = express()

app.get('/test', function (req, res, next) {
  res.send('hello!')
})

app.post('/test', function (req, res, next) {
  res.redirect('/test')
})

app.put('/test', function (req, res, next) {
  res.redirect('/test')
})

app.listen(5001)

// GET /test -> 'hello!'
// POST /test -> 'hello!'
// PUT /test -> ERR_TOO_MANY_REDIRECTS
Run Code Online (Sandbox Code Playgroud)

POST重定向到GET,但PUT重定向到PUT.是否可以使PUT重定向到GET(与POST相同)?

http node.js express

8
推荐指数
2
解决办法
9055
查看次数