Terminologi Jaringan (WinHTTP)
Saat mengembangkan aplikasi yang menggunakan Microsoft Windows HTTP Services (WinHTTP), penting untuk memahami konsep dan terminologi berikut yang terkait dengan jaringan secara umum dan protokol HTTP khususnya.
Transaksi HTTP
Ketika Anda bekerja dengan transaksi HTTP, Anda bertukar informasi dengan komputer lain di tempat lain di jaringan. Informasi yang ditukar bisa berupa file yang berisi teks atau multimedia, atau bisa menjadi hasil kueri database. Sepotong informasi yang ditukar melalui jaringan disebut sumber daya . Biasanya komputer yang mengirim sumber daya adalah server dan komputer yang menerima sumber daya tersebut adalah klien. Namun, klien juga dapat memposting data ke server. Terkadang transaksi HTTP melibatkan server tingkat menengah. Server tingkat menengah mengumpulkan beberapa sumber daya dari server lain, mengkompilasi informasi ke dalam satu sumber daya, dan mengirim sumber daya tersebut ke klien.
Proses mendapatkan sumber daya menggunakan protokol HTTP mengharuskan serangkaian pesan ditukar antara klien dan server. Klien memulai transaksi dengan mengirim pesan yang meminta sumber daya. Pesan ini disebut permintaan HTTP, atau terkadang hanya permintaan. Permintaan HTTP terdiri dari komponen berikut.
- Metode, Pengidentifikasi Sumber Daya Seragam (URI), nomor versi protokol
- Header
- Badan entitas
Saat server menerima permintaan, server merespons dengan mengirim pesan kembali ke klien. Pesan yang dikirim oleh server disebut respons HTTP. Respons HTTP terdiri dari komponen berikut.
- Nomor versi protokol, kode status, teks status
- Header
- Badan entitas
Respons menunjukkan bahwa permintaan tidak dapat diproses, atau memberikan informasi yang diminta. Tergantung pada jenis permintaan, ini dapat menjadi informasi tentang sumber daya, seperti ukuran dan jenisnya, atau bisa beberapa atau semua sumber daya itu sendiri. Bagian dari respons yang mencakup beberapa atau semua sumber daya yang diminta disebut "data respons" atau "isi entitas,' dan respons tidak selesai sampai semua data respons diterima.
Untuk informasi terperinci tentang transaksi HTTP dan protokol HTTP, lihat RFC 2616, Protokol Transfer Hypertext — HTTP/1.1.
Server Proksi
Meskipun permintaan yang dikirim oleh klien akhirnya diterima oleh server target, terkadang transaksi pertama kali melewati server proksi. Proksi mencegat permintaan, dan bahkan dapat memodifikasi permintaan, sebelum mengirimkannya ke server. Ketika server merespons, respons juga melewati proksi sebelum diteruskan ke klien. Proksi dapat mengubah header dalam respons ini.
Dengan mencegat dan menerjemahkan transaksi jaringan, proksi dapat:
- Lindungi klien dengan memantau transaksi yang berpotensi berbahaya.
- Aktifkan klien untuk berkomunikasi menggunakan protokol yang mungkin tidak diimplementasikan oleh perangkat lunak klien.
- Bertindak sebagai gateway antara jaringan privat dan jaringan publik.
WINHTTP API menyertakan alat konfigurasi proksi yang memungkinkan Anda memberikan informasi kepada WinHTTP mengenai server proksi apa pun yang mencegat transaksi HTTP Anda. Untuk informasi tentang menggunakan alat konfigurasi proksi, lihat ProxyCfg.exe, Alat Konfigurasi Proksi.
Mode Sinkron dan Asinkron
Ada dua model pemrograman untuk mendapatkan sumber daya melalui jaringan menggunakan WinHTTP—model sinkron dan asinkron. Dalam model sinkron, panggilan ke fungsi atau metode tidak selesai sampai operasi yang diminta selesai atau sampai terjadi kesalahan. Misalnya, ketika aplikasi Anda meminta sumber daya menggunakan WinHTTP secara sinkron, itu tidak dilanjutkan dengan langkah berikutnya sampai data yang diminta telah diterima.
Model asinkron, di sisi lain, memungkinkan aplikasi untuk melakukan tugas lain saat menunggu sumber daya diambil. Jika fungsi atau metode WinHTTP lain dipanggil dan operasi sebelumnya belum selesai, fungsi mengembalikan kesalahan. Saat menggunakan WinHTTP secara asinkron, peristiwa Model Objek Komponen (COM) dan panggilan balik tersedia untuk memberi tahu aplikasi kemajuan dalam operasi HTTP.
Otentikasi
Autentikasi adalah proses di mana proksi HTTP atau server HTTP memvalidasi informasi masuk pengguna sebelum memungkinkan akses ke sumber daya. Berbagai skema autentikasi digunakan di Internet. Biasanya nama dan kata sandi pengguna dibandingkan dengan daftar yang diotorisasi, dan jika sistem mendeteksi kecocokan, akses diberikan sejauh yang ditentukan dalam daftar izin untuk pengguna.
Fungsi WinHTTP mendukung autentikasi server dan proksi untuk sesi HTTP. WinHTTP mendukung skema autentikasi berikut: Basic, Digest (lihat RFC 2617), NTLM Authentication, Negosiasi/ Kerberos, dan Microsoft Passport 1.4. Untuk informasi terperinci tentang autentikasi, serta contoh penggunaan autentikasi dalam aplikasi Microsoft Visual C++, lihat Autentikasi di WinHTTP.
Untuk informasi tentang pertimbangan keamanan mengenai autentikasi Dasar dan Paspor, lihat Pertimbangan Keamanan WinHTTP.