Большая часть простого способа получить сырые данные, непроанализированный ответ HTTPS

У меня есть идея. Я протестировал это с маленькими файловыми системами на циклических устройствах, я рекомендую сделать то же прежде, чем попробовать его сами. В этом ответе/dev/sda является Вашим диском с важными данными, и/dev/sdb является новым emtpy диском.

export DATA_DISK='/dev/sda'
export EMPTY_DISK='/dev/sdb'
  1. Создайте ухудшенный массив RAID1 из пустого диска. Это важно!

    mdadm --create /dev/md0 --level=1 --raid-devices=2 "${EMPTY_DISK}" missing
    
  2. Затем уменьшите файловую систему на диске, который Вы хотите зеркально отразить. (Надо надеяться, это поддерживается.) Это необходимо, потому что RAID-массивы имеют заголовок, и полная файловая система не будет соответствовать на массиве.

  3. Скопируйте данные в новый ухудшенный массив.

    dd if="${DATA_DISK}" of=/dev/md0 bs=4k
    
  4. Добавьте исходный диск к массиву.

    mdadm --manage /dev/md0 --add "${DATA_DISK}"
    
  5. Можно наблюдать, что синхронизация прогрессирует.

    watch 'cat /proc/mdstat'
    
39
19.01.2012, 01:30
4 ответа

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

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

' | openssl s_client -quiet -connect google.com:443 2>/dev/null
13
27.01.2020, 19:35
  • 1
    , с которым только работают некоторые серверы (например, github.com) HTTP/1.0 –  Steven Penny 23.01.2018, 03:14

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

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

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

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

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

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

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

То, что Вы действительно получаете, является всеми заголовками ответа HTTP и документом в требуемом URL.

53
27.01.2020, 19:35
$ GET -e https://www.google.com

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

1
27.01.2020, 19:35

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

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 }'
4
27.01.2020, 19:35
  • 1
    Вы знаете, сохранило ли это \r\n символы в ответе? –  Acorn 19.01.2012, 02:04
  • 2
    @Acorn - В первую очередь, не все веб-серверы ответят \r\n как окончание строки. Я не полагаю, что это сохранит его в любом случае, но если это будет иметь значение для Вас, то я добавлю способ получить тот результат в ответе. –  Chris Down 19.01.2012, 10:05

Теги

Похожие вопросы