Tidak persis: itu tergantung pada bagaimana klien dikonfigurasi. Mari kita gunakan IE sebagai contoh dasar.
Jika Anda mengkonfigurasi IE dengan proksi eksplisit : mis. Tidak ada opsi lain yang dicentang, proksi disetel ke sesuatu: 8080.
Pengguna mengetik alamat
IE memeriksa alamat untuk kecocokan string dengan daftar pengecualian proxy IE (yaitu "Bypass proxy untuk alamat ini:")
Sebuah. Jika cocok dengan entri dalam daftar Bypass , klien menggunakan DNS-nya sendiri untuk menyelesaikan nama, dan kemudian klien terhubung langsung ke alamat IP target pada port 80 (diasumsikan), kemudian mengirimkan permintaan seperti:
GET /something.htm HTTP/1.1
Host: fulldomainame.example.com
b. Jika tidak ada entri pintasan daftar yang cocok , lanjutkan:
IE terhubung ke proxy yang dikonfigurasikan , dan mengirimkan permintaan formulir:
GET http://fulldomainname.example.com/something.htm HTTP/1.1
Bonus factoid: penggunaan FQDN dalam URL ini adalah salah satu cara Anda dapat mengatakan bahwa klien menganggapnya berbicara dengan proxy alih-alih server web asli
Proxy menyelesaikan nama host menggunakan DNS sendiri , dan kemudian menghubungkan ke situs target (bertindak seperti klien pada langkah 2 di atas), dll, dll.
Saat menggunakan WPAD / PAC:
Dalam kasus menggunakan script Web Proxy Auto Discovery (WPAD) atau Proxy Auto Configuration (PAC atau Autoconfig), seperti yang disediakan oleh ISA / TMG ketika konfigurasi otomatis diaktifkan, itu berbeda:
Pengguna mengetik alamat
Klien download saat wpad.dat / autoproxy.js / pac file dari lokasi dikonfigurasi
Klien mencari fungsi " FindProxyForUrl " di file js, dan menjalankannya
Script Autoproxy memproses nama host dan URL . Ini adalah file javascript fungsi terbatas, tetapi banyak hal masih mungkin:
Sebuah. ini mungkin termasuk resolusi nama (IsInNet, DnsResolve)
b. ini mungkin termasuk pencocokan string (ShExpMatch)
c. ini mungkin termasuk menghitung hingga sejuta (i ++)
d. ini mungkin termasuk pesan popup waspada narkotika jika admin brengsek
- (atau hanya lucu)
- ((atau debugging))
Fungsi FindProxyForUrl mengembalikan setidaknya satu string : daftar proxy yang terbaik untuk digunakan (dipisahkan dengan titik koma)
Sebuah. baik "LANGSUNG" , dalam hal ini klien kemudian perlu untuk menyelesaikan nama itu sendiri dan terhubung langsung, sesuai dengan kasus Bypass di atas
b. atau "PROXY proxyname: 8080" atau serupa, dalam hal ini klien terhubung ke port pada proxy itu, memberitahukannya untuk MENDAPATKAN URL lengkap , dan proxy melakukan resolusi nama .
- Sebagai contoh : jika fungsi skrip kembali "PROXY yourProxy: 8080; LANGSUNG" yang memberitahu klien untuk terhubung ke yourproxy pada TCP port 8080 untuk meminta URL ini, dan jika itu koneksi tidak dapat dibangun, cobalah pergi langsung.
Perhatikan bahwa kegagalan penyiapan sesi TCP tidak terlalu cepat, jadi ini kemungkinan bukan pengalaman kegagalan yang menyenangkan bagi pengguna, tetapi tidak mengalahkan apa pun. Mungkin.
Kadang-kadang ada gangguan, kehalusan dan perilaku yang tidak dapat dijelaskan, tetapi sebagian besar ketika hal-hal tidak rusak dengan cara yang aneh dan menarik, di atas adalah bagaimana saya melihatnya bekerja selama bertahun-tahun. Peramban yang lebih baru mengoptimalkan perilaku, dan menyejajarkan hal-hal, dan mencoba hal-hal menarik setiap saat, jadi periksalah dokumen terbaru untuk peramban Anda untuk memahami detail yang bagus.
WinSock Proxy / ISA Firewall Client / TMG Client :
Jika Anda tertarik dengan Winsock Proxy Client (dari TMG / ISA Server), itu cerita yang berbeda, dengan lebih banyak fleksibilitas dan komponen yang bergerak. Terlalu banyak untuk masuk ke sini, tetapi ada dokumen di sekitar yang menggambarkan cara kerjanya. Singkatnya: plugs ke Windows Sockets, dan dapat mencegat lalu lintas berbasis TCP / UDP dan permintaan resolusi nama berdasarkan per-aplikasi dan per-pengguna. Sangat kuat, tetapi juga sudah usang sekarang, dan belum diperbarui dalam beberapa tahun.
Klien dapat benar-benar lengket:
Satu catatan terakhir : Setelah klien HTTP memutuskan untuk berbicara dengan proksi untuk situs / url yang diberikan, tidak ada cara bagi proxy untuk mengatakannya .
Tidak ada kode status HTTP atau tajuk untuk "Saya tidak melayani itu, Anda harus langsung menuju ke sana" ...
Setelah klien memutuskan URL tertentu dilayani proxy , cengkeraman proksi kematian terjadi kemudian.
Satu-satunya cara untuk menghindarinya adalah dengan membuat logika pemilihan tepat sebelum klien membuat koneksinya, dalam daftar PAC atau Bypass.
Catatan akhir tentang Zona dan file PAC
IE memperlakukan situs yang DIRECT terhubung - bahkan jika mereka memiliki titik-titik di URL - untuk menjadi bagian dari Intranet Zona lokal (secara default - settable sifat Zone), dan begitu akan melakukan hal-hal seperti memungkinkan Integrated Windows Authentication ke situs tersebut (yaitu Kerberos dan / atau otentikasi NTLM, secara transparan). Jadi mengendalikan apakah ada sesuatu di Zona Intranet Lokal menentukan seberapa tepercayainya dalam hal autentikasi otomatis. Sekali lagi, setidaknya, secara default.