Ruby 如何完全阻止rails操作响应任何类型的HTTP状态?
轨道3.2.13。JRUBY 1.7.15。RUBY 1.9.3作为解释器 有没有办法阻止Rails操作的响应?我想这样做,以避免任何类型的响应被发送回匿名黑客。索引之前有一个约束检查,如果约束检查失败,理想情况下索引方法应该停止响应。这是RESTAPI中的一小部分,用于阻止将任何http状态发送回操作 欢迎提出任何建设性建议 i、 eRuby 如何完全阻止rails操作响应任何类型的HTTP状态?,ruby,ruby-on-rails-3,ruby-on-rails-3.2,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,轨道3.2.13。JRUBY 1.7.15。RUBY 1.9.3作为解释器 有没有办法阻止Rails操作的响应?我想这样做,以避免任何类型的响应被发送回匿名黑客。索引之前有一个约束检查,如果约束检查失败,理想情况下索引方法应该停止响应。这是RESTAPI中的一小部分,用于阻止将任何http状态发送回操作 欢迎提出任何建设性建议 i、 e 谢谢大家的帮助。尽管REST API可能会发送有效的HTTP响应,但您可以通过关闭底层输出流来抑制任何输出。这通过机架的API公开(假设您的服务器支持): 这将
谢谢大家的帮助。尽管REST API可能会发送有效的HTTP响应,但您可以通过关闭底层输出流来抑制任何输出。这通过机架的API公开(假设您的服务器支持): 这将导致一个空的回复,即服务器只是关闭连接而不发送任何数据:
$ curl -v http://localhost:3000/
* Connected to localhost port 3000
> GET / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: localhost:3000
> Accept: */*
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
你能解释一下你为什么否决它吗?rack.jackit有源代码吗?我好像在架子上找不到?谢谢。@TheMouseMan它是由服务器实现的。以下是Puma如何实现调用的方法:
def index
if env['rack.hijack?']
env['rack.hijack'].call
io = env['rack.hijack_io']
io.close
end
end
$ curl -v http://localhost:3000/
* Connected to localhost port 3000
> GET / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: localhost:3000
> Accept: */*
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server