когда использовать use_ssl в запросе http - PullRequest
1 голос
/ 16 марта 2020

Я устанавливаю HTTP-соединение с URL. Когда я использую 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? Нужно ли присваивать значение true, если URL-адрес имеет тип https?

1 Ответ

1 голос
/ 16 марта 2020

Короче говоря - да, обычно он используется так:

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

TCP-порт отличается для HTTP и HTTPS:

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

Но в целом любой протокол может быть используется для любого номера порта, и для транспортного lib нет надежного способа узнать, какой протокол использовать. Например, вы можете легко настроить свой сервер для ответа с обычным http на порту 443 и наоборот.

Именно поэтому здесь use_ssl, он указывает библиотеке http, что соединение с этим портом должно быть установлено с использованием TLS / Безопасное соединение TLS, а не простое незашифрованное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...