ruby-on-rails - 何时在 http 请求中使用 use_ssl

标签 ruby-on-rails ruby http ssl https

我正在与 URL 建立 HTTP 连接。当我使用 http.use_ssl=false它不起作用,响应为 400 错误。当我使用 http.use_ssl=true有用。这是为什么?

          url = "https://beta.makaan-ws.com/"
          uri = URI.parse(url)
          http = Net::HTTP.new(uri.host, uri.port)
          http.use_ssl = true
          request = Net::HTTP::Put.new(uri.request_uri)
          headers.each do |header_key, header_val|
            request.add_field(header_key, header_val)
          end
          request.body = post_args.to_json
          begin
            response = http.request(request)
          rescue
            raise "Error from url: #{url}"
          end 

我想了解use_ssl的作用?如果 URL 是 https 类型,我们是否必须分配 true ?

最佳答案

简而言之 - 是的,通常它是这样使用的:

http.use_ssl = url.scheme == 'https'

HTTP 和 HTTPS 的 TCP 端口不同:

URI.parse("http://example.com").port # => 80
URI.parse("https://example.com").port # => 443

但一般来说,任何协议(protocol)都可以在任何端口号上使用,并且传输库没有可靠的方法来知道要使用哪个协议(protocol)。例如,您可以轻松地将服务器配置为在端口 443 上使用纯 http 进行应答,反之亦然。

这就是为什么这里是 use_ssl ,它向 http 库指示应该使用 TLS/TLS 安全连接而不是普通的非加密连接来建立与该端口的连接。

关于ruby-on-rails - 何时在 http 请求中使用 use_ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60711185/

相关文章:

ruby-on-rails - Cookie 溢出与 Twitter 登录

javascript - 如何处理环回传入的 http 请求

ruby-on-rails - 如何设置 Rails 项目默认使用 Slim 的 pretty-print 选项?

ruby-on-rails - CanCan的accessible_by(抓取记录)中的current_ability是什么?

ruby-on-rails - Rails : Association between Category, 子类别和律师

ruby-on-rails - Ransack:显示按 Ransack 排序的 has_many 关系的属性

ruby-on-rails - 需要使用 RestClient 挽救 401 状态码

java - Java 中称为 nanohttpd 的简单 Web 服务器

api - 使用 http api 发布到默认的 rabbitmq exchange

javascript - Javascript 中带父级和不带父级的 json 上的 .map 方法