Ответ 1
Запрос SSL с стандартной библиотекой Ruby
require 'net/http'
require 'uri'
Net::HTTP.get URI('https://encrypted.google.com')
Net::HTTP
в Ruby ( >= 2.0.0) выполняет проверку SSL по умолчанию, если вы передаете ему объект URI с URL-адресом https. См. https://github.com/ruby/ruby/blob/778bbac8ac2ae50f0987c4888f7158296ee5bbdd/lib/net/http.rb#L481
Вы можете проверить это, выполнив запрос получения на Excon
Excon - это чистая реализация Ruby HTTP.
require 'excon'
Excon.get 'https://encrypted.google.com'
Curb - это HTTP-клиент, который использует libcurl под капотом.
require 'curl'
Curl.get 'https://encrypted.google.com'
HTTP или http.rb является чистой реализацией Ruby HTTP, но использует http_parser.rb для анализа HTTP-запросов и ответов. Поскольку http_parser.rb использует собственные расширения, он утверждает, что является одной из самых быстрых клиентских библиотек HTTP. Но, как всегда, принимайте контрольные отметки с солью.
require 'http'
HTTP.get 'https://encrypted.google.com'
HTTPClient - еще одна чистая реализация Ruby.
require 'httpclient'
HTTPClient.get 'https://encrypted.google.com'
Ниже перечислены библиотеки HTTP, а не HTTP-обертки. Оберточные драгоценные камни, такие как HTTParty и Faraday либо обернуть вокруг конкретной реализации HTTP или использования адаптеров для обеспечения унифицированного HTTP-интерфейса. Вы можете проверить эту матрицу сравнения возможностей Ruby HTTP client. Он сравнивает функции каждой клиентской библиотеки HTTP. Но обратите внимание, что информация не обновляется с 2012 года.