Как веб-сервер узнает, что с моего локального компьютера поступил запрос от удаленного сервера? - PullRequest
0 голосов
/ 28 марта 2020

Если я запускаю следующую команду в консоли ruby с локального компьютера, запрос выполняется без проблем:

base_url = 'https://www.mrporter.com/api/inseason/search/resources/store/mrp_gb/productview'
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:73.0) Gecko/20100101 Firefox/73.0'
x_ibm_client_id = '16c6e258-e6f8-4015-8c52-697f6e65ad67'
external_id = '9679066509472816'
url = "https://www.mrporter.com/en-gb/mens/product/hugo-boss/clothing/casual-shorts/slim-fit-stretch-cotton-twill-shorts/9679066509472816"

page = `curl '#{base_url}/#{external_id}?locale=en_GB' -H 'User-Agent: #{user_agent}' --compressed -H 'Referer: #{url}' -H 'X-Ibm-Client-ID: #{x_ibm_client_id}'`

Однако, если я пытаюсь запустить ту же команду с консоли ruby на экземпляре AWS EC2 или консоли rails на Heroku я получаю отказано в разрешении.

(Код выше основан на запросе, который браузер делает при посещении сайта.)

My Вопрос в том, как веб-сервер может определить разницу между вызовом с моего локального компьютера и экземпляром EC2, и есть ли способ обойти это?

...