Banyak pengembang tidak pernah mempertimbangkan konsep keadaan sebelum mengirimkan aplikasi ke web. Seperti disebutkan sebelumnya, Web adalah lingkungan tanpa kewarganegaraan. Oleh karena itu, kita harus membahas apa negara itu dan memahami metode yang dapat menghindari masalah.
Definisi status yang akurat
Dalam program pengguna tunggal, saat membuat aplikasi yang dapat dieksekusi, seperti menggunakan VB untuk membuat file .exe, Anda dapat mendeklarasikan variabel global (atau publik) dan kemudian mengaksesnya di mana saja dalam kode. Nilai momen selalu valid dan dapat diakses setiap saat aplikasi sedang berjalan.
Untuk solusi klien/server tradisional, seperti sistem di mana aplikasi berbasis klien mengakses mesin basis data berbasis server, setiap klien membuat koneksi ke server dan aplikasi database. Koneksi ini biasanya dibuat dengan memverifikasi pengguna.
Proses verifikasi adalah proses khas mengidentifikasi pengguna, yang membuktikan apakah itu adalah pengguna yang sah melalui kombinasi nama pengguna dan kata sandi.
Setelah diautentikasi, koneksi dibuat antara klien dan aplikasi berbasis server, yang tetap berlaku untuk semua waktu pengguna telah menggunakan aplikasi tersebut. Ini terjadi ketika pengguna mendaftar di server Windows 2000 yang difermentasi. Setiap kali administrator menggunakan utilitas pengguna dan komputer Direktori Aktif (klik item manajemen direktori dalam opsi alat administrasi di menu start) untuk mengamati koneksi pengguna aktif. Proses ini sama di banyak sistem, seperti Microsoft SQL Server.
Koneksi permanen ini berarti bahwa ketika pengguna mengirimkan instruksi atau permintaan ke server, server dengan mudah mengidentifikasi setiap pengguna. Respons server yang sama atau informasi pengguna lainnya juga dapat dikembalikan ke pengguna secara langsung. Lebih lanjut dicatat bahwa server dapat menyimpan nilai dan informasi yang terkait dengan setiap pelanggan dengan lebih mudah dan memberikannya kepada pelanggan yang sesuai saat dibutuhkan. Tentu saja, aplikasi server dapat memiliki variabel global utama untuk diakses pengguna saat dibutuhkan.
Kemampuan untuk mengidentifikasi permintaan dari masing -masing klien dan menyimpan nilai -nilai pengguna yang relevan dalam memori merupakan status. Negara dapat dipertimbangkan untuk mewakili nilai aplikasi, lingkungan, dan variabel internal pengguna dan berjalan melalui seluruh proses aplikasi dan koneksi pengguna.
Pentingnya status
Jika Anda bermaksud membuat aplikasi berbasis situs web yang berinteraksi dengan pengguna, daripada situs web yang hanya menampilkan halaman independen, Anda harus dapat memberikan status terpisah untuk setiap pengguna. Ini mungkin hanya mengingat nama mereka, atau mungkin juga untuk menyimpan referensi objek atau catatan yang berbeda untuk setiap pengguna. Jika Anda tidak dapat melakukan ini, halaman web ASP tidak dapat berbuat lebih banyak, karena ketika halaman dieksekusi, variabel dan informasi terkait lainnya di halaman dihancurkan. Ketika pengguna meminta halaman berikutnya, semua informasi yang disediakan oleh halaman ini akan hilang.
Oleh karena itu, perlu menemukan cara untuk menyimpan status masing -masing pengunjung. Sangat penting untuk dapat menyimpan nilai -nilai global untuk semua pengguna. Misalnya, akses gaya web atau halaman klik halaman yang tidak memberikan setiap pengguna dengan penghitungnya sendiri, dan pengguna biasanya ingin melihat jumlah total pengunjung, bukan hanya jumlah kunjungan yang mereka kunjungi sendiri. Jumlah pengunjung perlu disimpan dengan keadaan tingkat aplikasi, bukan dengan keadaan tingkat pengguna.
Ini bukan masalah yang baru saja muncul. Jadi ada banyak solusi tradisional untuk menyimpan keadaan di web. Administrator situs web ingin tahu apakah pengunjung telah mengunjungi situs web mereka sebelumnya, dan jika demikian, berapa kali mereka mengunjungi? Kunjungi juga situs web lain secara teratur. Ini akan membuatnya lebih baik untuk menetapkan tujuan iklannya. Semua ini membutuhkan cara untuk menyimpan informasi tentang permintaan halaman web yang dihasilkan oleh pengguna selama akses atau di antara setiap kunjungan.
Buat status di web
Cara umum untuk memberikan status antara permintaan halaman dan akses situs adalah melalui cookie. Kami telah melihat di bab -bab sebelumnya cara menyimpan nilai yang sesuai di komputer klien, yang dikirim bersama dengan setiap permintaan halaman ke domain yang berlaku untuk cookie ini. Dengan memeriksa dan memperbarui cookie dengan ASP, dimungkinkan untuk mempertahankan keadaan sampai batas tertentu. Informasi yang disertakan dapat digunakan untuk mengidentifikasi pengguna dan kemudian menghubungkan pengguna ke satu set nilai yang disimpan.
Misalnya, dapat dideteksi apakah permintaan pengguna berisi cookie yang ditentukan situs. Jika tidak termasuk, pengguna diberi jenis identitas tertentu, menentukan angka, dan disimpan dalam cookie dengan periode validitas yang panjang. Setiap kali pengguna mengunjungi situs ini di masa mendatang, ia akan dapat mendeteksi cookie dan memperbarui informasi yang terkandung di dalamnya. Data tentang jumlah dan durasi kunjungan juga dapat dikumpulkan dan disimpan di server untuk penggunaan di masa mendatang.
Tetapi apa yang terjadi jika pengguna pindah ke komputer lain, atau menghapus cookie, atau browser mereka menolak untuk menerima cookie yang dikirimkan kepada mereka? Dalam hal ini, negara tidak dapat dipertahankan karena mereka tidak akan dikenali lain kali. Jika Anda membuka peringatan sebelum menerima opsi cookie di browser Anda dan kemudian berkeliaran di sekitar beberapa situs besar, Anda akan memahami artinya.
1. Pengunjung anonim dan pengunjung yang berwenang
Jika Anda berpikir cookie adalah solusi yang sedikit ceroboh, Anda dapat menggunakan pendekatan yang lebih mudah. Salah satu pendekatan yang digunakan banyak situs adalah memunculkan dialog login ketika pengunjung mengklik situs, atau ketika halaman yang memerlukan verifikasi identitas. Pengunjung harus terlebih dahulu mendaftar dan mendapatkan jenis kombinasi nama pengguna/kata sandi tertentu untuk memungkinkan akses ke situs atau halaman yang sesuai.
Untuk membuktikan bahwa pengunjung adalah pengguna yang dikenal dan sah, cookie yang ditempatkan di komputer pengunjung baik menyimpan data pendaftaran terperinci atau kunci yang menunjukkan bahwa identitas telah diverifikasi. Pada saat yang sama, data terperinci pengunjung disimpan secara permanen di server dan siap digunakan saat mengakses lagi. Jika pengunjung memiliki cookie di browsernya, ia dapat dengan bebas mengakses situs web karena telah diverifikasi.
Jika cookie tidak memiliki periode validitas (kedaluwarsa), nilai cookie akan secara otomatis menghilang ketika browser ditutup dan harus ditdaftarkan kembali dan diverifikasi lagi pada kunjungan berikutnya. Tentu saja, jika Anda menolak untuk menerima cookie atau menghapus cookie, Anda hanya bisa mendapatkan dialog pendaftaran lagi. Dengan cara ini, jika tidak dikenali, situs tidak dapat diakses.
Dengan memaksa pengguna untuk mendaftar dengan server web seperti mendaftar ke jaringan mereka sendiri, kinerja keamanan keseluruhan Windows 2000 memberikan II kemampuan verifikasi yang lebih kuat dan lebih aman. Namun, ini hanya dapat bekerja dengan browser dengan Internet Explorer 3.0 dan di atasnya. IIS juga dapat menggunakan verifikasi dasar untuk memungkinkan browser non-Microsoft mendaftarkan server web.
2. Tidak ada lagi pengunjung anonim
Saat menggunakan ASP di server web IIS, pengguna dapat dilacak di sesi saat ini kecuali pengguna meninggalkan situs ke situs web lain atau menutup browser. Kemudian di bab ini, Anda akan melihat bagaimana fitur ini digunakan untuk mengidentifikasi pengunjung, menyimpan informasi lokal pengguna, dan memberikan status. Berikut ini adalah diskusi tentang cara kerjanya dibandingkan dengan solusi yang sudah dibahas.
ASP dan IIS bersama -sama mengusulkan konsep sesi pengguna, berinteraksi melalui objek sesi ASP. Ketika setiap pengunjung pertama kali mengakses halaman web ASP di server, buat objek sesi baru dan independen untuknya, tetapkan nomor identifikasi sesi ke sesi, dan tambahkan versi khusus dari pengidentifikasi sesi.
Jalur cookie (lihat bab sebelumnya untuk deskripsi atribut cookie) diatur ke jalur root dari aplikasi ASP yang berjalan di server. Ini kemungkinan ada di direktori root situs web default (mis. /), Tetapi mungkin juga nilai lain (lihat nanti). Nilai kedaluwarsa tidak disediakan dalam cookie, jadi ketika browser ditutup, nilai cookie menghilang.
Setiap kali pengguna ini mengunjungi halaman web ASP ini, ASP akan mencari cookie ini. Bernama AspsessionIdxxxxxxxx, di mana masing -masing x adalah karakter alfabet. Dari koleksi Servervariables yang ditunjukkan pada Gambar 2-7 di Bab 2, Anda dapat melihatnya di header HTTP.
Namun, cookie ini tidak muncul dalam permintaan. Koleksi Cookies atau Response.Cookies, yang disembunyikan ASP, tetapi masih disimpan di browser. Untuk setiap permintaan halaman web ASP, ASP harus melihat nilainya. Nilai yang terkandung dalam cookie ini menunjukkan sesi pengguna. Oleh karena itu, konten dari objek sesi yang sesuai (yang telah diproses dalam memori dan selalu berisi semua nilai yang beroperasi selama proses permintaan halaman sebelumnya) dapat diserahkan ke skrip di halaman web ASP.
Tentu saja, seperti yang disebutkan sebelumnya, jika browser klien tidak menerima atau mendukung cookie ini, pemrosesan ini akan gagal. Dalam hal ini, sesi ASP tidak dapat dibuat dan status pengunjung ini tidak dipertahankan secara otomatis.