Самый простой способ получения необработанного HTTPS-ответа

39

Каков был бы самый простой способ сделать GET-запрос к URL через HTTPS и получить необработанный, необработанный ответ?

Может ли это быть достигнуто с помощью curl? Если да, какие варианты вам нужно использовать?

Желудь
источник

Ответы:

51

Если вы хотите использовать curl, это должно работать:

curl -D - https://www.google.com/

Обратите внимание, однако, что это не совсем необработанный ответ. Например, кодированная передача в коде не будет видна в ответе. Использование --rawрешает эту проблему, также -vполезен verbose mode ( ), который -iпоказывает заголовки перед телом ответа:

curl -iv --raw https://www.google.com/

Если вы хотите использовать пейджер как поменьше для результата, также необходимо отключить индикатор выполнения ( -s):

curl -ivs --raw https://www.google.com/ | less

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

То, что вы получаете, это все заголовки HTTP-ответа и документ по запрошенному URL.

Мика Фишер
источник
13

Вот простой способ, который приходит на ум

echo 'GET / HTTP/1.1
Host: google.com

' | openssl s_client -quiet -connect google.com:443 2>/dev/null
Патрик
источник
обратите внимание , что некоторые серверы (например , github.com) работают только сHTTP/1.0
Стивен Пенни
4

Это не так curl, но оно должно быть доступно практически на всех Unices:

wget -S --spider https://encrypted.site

Если сообщения о состоянии вас беспокоят:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  /'

Если вы хотите окончания строки CRLF:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'
Крис Даун
источник
Вы знаете, сохранит ли это \r\nсимволы в ответе?
Желудь
@Acorn - Прежде всего, не все веб-серверы будут отображаться \r\nкак конец строки. Я не верю, что это сохранит это в любом случае, но если это имеет значение для вас, я добавлю способ получить этот результат в ответе.
Крис Даун
1
$ GET -e https://www.google.com

На дистрибутивах Debian / Ubuntu этот пакет принадлежит lwp-request.

funollet
источник