Ham, çözümlenmemiş bir HTTPS yanıtı almanın en basit yolu


39

HTTPS üzerinden bir URL'ye GET isteği göndermenin ve ham, ayrıştırılmamış yanıtı almanın en kolay yolu nedir?

Bu kıvrılma ile başarılabilir mi? Eğer öyleyse, hangi seçenekleri kullanmanız gerekir?

Yanıtlar:


51

Kullanmak istiyorsanız curl, bu çalışması gerekir:

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

Bununla birlikte, bunun tam olarak ham cevap olmadığını unutmayın. Örneğin, yığınlanmış transfer kodlaması yanıtta görünmez. --rawBunu kullanmak , aynı zamanda ayrıntılı mod ( -v) da kullanışlıdır -ive yanıt gövdesinden önceki başlıkları gösterir:

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

Sonuçta daha az gibi bir çağrı cihazı kullanmak istiyorsanız, progress-bar ( -s) işlevini devre dışı bırakmak da gerekir :

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

Ne yapmak istediğinize bağlı olarak bu bir sorun olabilir veya olmayabilir.

Ne elde edersiniz, tüm HTTP yanıt başlıkları ve istenen URL'deki belgedir.


13

İşte akla gelen basit bir yol

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

' | openssl s_client -quiet -connect google.com:443 2>/dev/null

Bazı sunucuların (örneğin, github.com) yalnızca birlikte çalıştığını unutmayınHTTP/1.0
Steven Penny

4

Öyle değil curl, ama neredeyse tüm Unices'da mevcut olmalı:

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

Durum mesajları sizi rahatsız ediyorsa:

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

CRLF satır sonları istiyorsanız:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'

Bunun \r\ncevaptaki karakterleri koruyacağını biliyor musunuz ?
Acorn

@Acorn - Her şeyden önce, tüm web sunucuları \r\nbir satır sonu olarak yanıt vermeyecektir . Bunun her durumda onu koruyacağına inanmıyorum, ancak bu sizin için önemliyse, cevabı bu sonucu almanın bir yolunu ekleyeceğim.
Chris Down

1
$ GET -e https://www.google.com

Debian / Ubuntu'da dağıtımlar pakete aittir lwp-request.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.