Rumah >Java >javaTutorial >Mengapa HTTPURLConnection Tidak Mengikuti HTTP ke HTTPS Redirects?

Mengapa HTTPURLConnection Tidak Mengikuti HTTP ke HTTPS Redirects?

DDD
DDDasal
2024-12-03 04:03:17196semak imbas

Why Doesn't HTTPURLConnection Follow HTTP to HTTPS Redirects?

HTTPURLConnection Tidak Mengikuti HTTP ke HTTPS Redirection

Dalam senario tertentu, pembangun menghadapi tingkah laku yang tidak dijangka di mana HTTPURLConnection Java gagal mengikuti ubah hala HTTP kepada HTTPS URL.

Sebab Isunya

Punca kelakuan ini terletak pada reka bentuk HTTPURLConnection. Secara lalai, ubah hala hanya diikuti jika ia mengekalkan protokol yang sama. Ini bermakna ubah hala daripada HTTP ke HTTPS tidak dikendalikan secara automatik oleh kelas.

Implikasi Keselamatan

Sekatan ini dikuatkuasakan kerana kebimbangan keselamatan. HTTPS, walaupun persamaannya dengan HTTP, secara teknikalnya dianggap sebagai protokol yang berbeza dari perspektif HTTP. Mengikuti ubah hala HTTPS tanpa kelulusan pengguna menimbulkan isu keselamatan, terutamanya dalam senario di mana pengesahan pelanggan dikonfigurasikan secara automatik untuk HTTP tetapi bukan HTTPS.

Penyelesaian

Malangnya, tiada pilihan untuk melumpuhkan semakan ini, dan dengan itu, HTTPURLConnection tidak boleh dibuat untuk mengikuti HTTP ke HTTPS ubah hala.

Penyelesaian

Untuk mengatasi had ini, pembangun boleh mengikut ubah hala secara manual dengan menghuraikan pengepala Lokasi dalam respons HTTP dan memulakan permintaan baharu kepada HTTPS URL. Sebagai alternatif, mereka boleh menggunakan perpustakaan atau rangka kerja yang menyokong ubah hala HTTP dan HTTPS.

Atas ialah kandungan terperinci Mengapa HTTPURLConnection Tidak Mengikuti HTTP ke HTTPS Redirects?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn