Lapisan di sebalik permintaan HTTPS Mechanize melalui proksi
Lihat bagaimana Mechanize, modul protokol HTTPS LWP dan backend SSL bekerjasama untuk menghalakan, menerowong dan mengesahkan satu permintaan HTTPS.
Tetapkan laluan pada objek Mechanize sebelum mengambil:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
Gunakan pendengar HTTP yang dimaksudkan dalam contoh; untuk permintaan yang dibenarkan ke sasaran awam, calon berada dalam senarai proksi HTTP. Tatasusunan menamakan skema destinasi. Titik akhir http:// menyediakan laluan CONNECT biasa untuk HTTPS: HTTP ke proksi, terowong ke sasaran, kemudian TLS sasaran. Jika penggunaan menggunakan tetapan persekitaran sebaliknya, $mech->env_proxy ialah alternatifnya; mengimportnya kemudian boleh mengubah laluan yang ditetapkan dalam kod.
Mechanize mewarisi rangkaian LWP::UserAgent dan bukannya menyediakan enjin proksi HTTPS berasingan:
- Mechanize menyediakan pautan, borang dan tingkah laku halaman semasa.
- LWP::UserAgent dan pengangkutan HTTPnya memilih laluan dan mengatur CONNECT.
- LWP::Protocol::https menyediakan pengendalian HTTPS dan menaik taraf sambungan.
- Net::HTTPS dengan backend SSLnya menyediakan soket berkemampuan TLS, biasanya IO::Socket::SSL dalam konfigurasi moden.
Backend SSL yang dipasang tidak memilih proksi sendiri. Kekalkan nama hos HTTPS asal dalam URL: penerimaan CONNECT tidak mengesahkan sijil tapak itu.
Semasa menyelenggara komponen lama, bezakan sempadan ini. libwww-perl 6.06 dan LWP::Protocol::https 6.06 yang diedarkan secara berasingan memperkenalkan pembetulan terselaras untuk CONNECT HTTP biasa. Versi UserAgent sahaja tidak mengenal pasti modul HTTPS. LWP::Protocol::https 6.15 menambah pembetulan untuk titik akhir proksi berdaya TLS, yang skema https:// menambah TLS pada proksi sebelum TLS sasaran.
Konfigurasi Net::SSL/Crypt::SSLeay yang lebih lama boleh menggunakan mekanisme persekitaran HTTPS_PROXY yang didokumenkan backend itu sebaliknya. Jangan gunakan resipinya pada laluan IO::Socket::SSL moden, di mana LWP memiliki penghalaan.
Gunakan peringkat pertama yang gagal untuk memilih komponen: pengendali HTTPS yang hilang melibatkan modul protokol; CONNECT yang ditolak melibatkan laluan, kelayakan atau dasar; ralat sijil selepas terowong melibatkan identiti dan kepercayaan destinasi. Kekalkan pengesahan semasa menukar komponen yang disokong oleh bukti itu.