Cara paling mudah untuk mendapatkan respons HTTPS yang mentah dan tidak diuraikan

39

Apa cara paling mudah untuk membuat permintaan GET ke url di atas HTTPS, dan mendapatkan respons mentah dan tidak diuraikan?

Mungkinkah ini dicapai dengan ikal? Jika demikian, opsi apa yang perlu Anda gunakan?

Biji pohon ek
sumber

Jawaban:

51

Jika Anda ingin menggunakan curl, ini harus bekerja:

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

Namun, perhatikan bahwa ini bukan respons yang mentah. Misalnya penyandian transfer yang terpotong tidak akan terlihat dalam respons. Menggunakan --rawsolves this, juga mode verbose ( -v) juga bermanfaat, dan -imenampilkan header di depan badan respons:

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

Jika Anda ingin menggunakan pager seperti kurang pada hasilnya, Anda juga perlu menonaktifkan progress-bar ( -s):

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

Tergantung pada apa yang ingin Anda lakukan ini mungkin atau tidak mungkin menjadi masalah.

Apa yang Anda dapatkan adalah semua header respons HTTP dan dokumen di URL yang diminta.

Mika Fischer
sumber
13

Inilah cara sederhana yang terlintas dalam pikiran

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

' | openssl s_client -quiet -connect google.com:443 2>/dev/null
Patrick
sumber
perhatikan bahwa beberapa server (mis. github.com) hanya berfungsi denganHTTP/1.0
Steven Penny
4

Tidak curl, tetapi harus tersedia di hampir semua Unices:

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

Jika pesan status mengganggu Anda:

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

Jika Anda ingin ujung garis CRLF:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'
Chris Down
sumber
Apakah Anda tahu apakah ini akan mempertahankan \r\nkarakter dalam respons?
Acorn
@ Acorn - Pertama-tama, tidak semua webserver akan merespons dengan \r\nsebagai baris yang berakhir Saya tidak percaya ini akan mempertahankannya dalam hal apa pun, tetapi jika itu penting bagi Anda, saya akan menambahkan cara untuk mendapatkan hasil dalam jawaban.
Chris Down
1
$ GET -e https://www.google.com

Pada Debian / distro Ubuntu milik paket lwp-request.

funollet
sumber