Pada bab sebelumnya, kita telah menyelesaikan pembahasan umum tentang program CGI. Di sini saya memberikan program demonstrasi sederhana sebagai ringkasan dari konten sebelumnya.
Untuk menggunakan program ini, Anda memerlukan OmniHTTPD versi beta terbaru: OmniHTTPD 2.0b1 (beta 1) untuk Windows 95/NT. Jika belum punya bisa download disini (oh20b1.zip).
Cara install OmniHTTPD sama seperti pada kuliah pertama, jadi saya tidak akan membahasnya disini. Saya hanya akan membicarakan beberapa masalah pengaturan dalam versi ini di sini:
Buka kotak dialog pengaturan properti OmniHTTPD, gunakan tombol Pengaturan Global Server Web, buka halaman Eksternal, dan hapus pengaturan .cgi. Jika tidak dihapus, program CGI dengan ekstensi cgi diproses sebagai program Perl; dalam kursus kami, ekstensi program CGI dalam bahasa Perl adalah .pl, dan ekstensi program CGI yang dikompilasi adalah .cgi pengaturan harus diubah seperti ini.
Dalam versi OmniHTTPD ini, dukungan untuk perintah SSI (Server Side Include) ditingkatkan secara signifikan dibandingkan versi sebelumnya, dan perintah seperti include dan exec juga didukung. Dalam program demo, saya menggunakan perintah ini.
Setelah Anda mendownload (ex8.zip), berisi tiga file: index.shtml, makelog.cpp dan makelog.exe. index.shtml adalah skrip yang berisi perintah SSI, silakan salin ke direktori c:httpdhtdocs; makelog.exe adalah program CGI, silakan salin ke direktori c:httpdcgi-bin; exe, jika Jika Anda ingin mengubah kompilasi, Anda harus menggunakan kompiler 32-bit, seperti VC, jika tidak maka tidak dapat digunakan.
Selain itu, Anda perlu melakukan modifikasi pada pengaturan di OmniHTTPD: pilih Default Virtual Setting dan ubah Default Index menjadi index.shtml di halaman Server. Dengan cara ini, saat Anda mengetik http://localhost di browser, OmniHTTPD secara otomatis memuat index.shtml.
Buat dokumen WEB lain dan simpan di direktori c:httpdhtdocs dengan nama file index.html. Saat Anda menggunakan browser untuk mengakses localhost, index.shtml terlebih dahulu memanggil makelog.exe untuk menyimpan informasi akses pengguna, lalu memanggil index.html untuk menampilkannya di browser. Informasi akses pengguna disimpan dalam file userlog di direktori c:httpdcgi-bin.
Contoh ini menggunakan variabel lingkungan dasar dan teknologi SSI dalam spesifikasi CGI.
4. Basis Data
Di antara aplikasi CGI, aplikasi database paling mencerminkan fungsi program CGI yang hebat. Ada banyak database di Internet, dan permintaan akan aplikasi WEB dari database ini juga meningkat (baik dari perusahaan maupun pengguna). Dapat dikatakan bahwa WEB itu sendiri adalah database yang sangat besar. Cara mengatur kumpulan data yang sangat besar ini secara efektif dan mempublikasikannya di WEB adalah topik yang diselesaikan bersama oleh CGI dan sistem database.
Jika Anda ingin mengklasifikasikan CGI dan aplikasi database, terdapat metode klasifikasi berbeda dari perspektif berbeda. Misalnya, menurut ukuran database, dapat dibagi menjadi database teks, database lokal (Microsoft Access, dll.) dan server database (MS SQL Server, Informix, dll.); dapat dibagi menjadi program CGI database front-end (dengan pengguna yang menggunakan browser WEB). Program CGI interaktif) dan program CGI database back-end (program CGI yang berinteraksi dengan database), dll. Memilih ukuran database biasanya bergantung pada volume data dan biaya tugas yang ingin Anda selesaikan; apakah akan memisahkan atau menggabungkan front-end dan back-end saat memprogram program CGI biasanya bergantung pada kompleksitas pemrosesan data Anda.
Biasanya, jika kumpulan data Anda berukuran beberapa megabita, dan tidak ada hubungan rumit antara rekaman data, Anda dapat memilih untuk menggunakan file teks untuk membangun database, yang dapat menghemat biaya seminimal mungkin, dan file teks tersebut memiliki basis data Keuntungan yang tidak dimiliki oleh sistem manajemen (DBMS, yaitu Sistem Manajemen Basis Data): Jika terjadi kesalahan pada data Anda, Anda dapat mentransfer file teks Anda ke editor teks mana pun untuk pemulihan, dan jika terjadi kesalahan pada sistem basis data Anda, Kecuali Anda seorang ahli basis data, Jika tidak maka akan sulit untuk memperbaikinya.
Jika kumpulan data Anda sangat besar, atau jika rekaman data Anda memiliki hubungan yang kompleks di antara keduanya, yang terbaik adalah menggunakan sistem database. Menggunakan file teks untuk mengimplementasikan database berukuran puluhan megabita akan membebani server RISC tingkat lanjut mana pun. Jika Anda menggunakan program CGI untuk menangani hubungan kompleks antar data, hal ini pasti akan meningkatkan kompleksitas program CGI dan menghabiskan terlalu banyak sumber daya server. Di sisi lain, penggunaan fungsi sistem database dapat menyederhanakan kesulitan desain program CGI; dan meningkatkan efisiensi pembangunan.
Saat memilih sistem database, Anda harus memilih dari aspek-aspek berikut: 1. Platform sistem operasi: Anda harus memilih sistem database yang paling Anda kenal, dan Anda juga harus memilih platform sistem operasi yang paling Anda kenal Hanya di dengan cara ini Anda dapat menghindari kesalahan. 2. Harga: Anda sebaiknya memilih yang termurah di antara berbagai sistem database yang dapat menyelesaikan pekerjaan Anda. Di sini, saya dapat memberi tahu Anda tentang sistem database gratis bernama MiniSQL. Ini harus dijalankan pada platform UNIX atau linux ada sistem database gratis untuk platform Windows. Jika ada yang tahu, tolong beri tahu saya dan saya akan memberi tahu Anda di kursus mendatang.
Kursus kami adalah tentang penggunaan Delphi untuk mengembangkan program CGI, dan Delphi menyediakan sistem database Interbase Server di sini. Pada saat yang sama, karena sistem database mengurangi banyak pekerjaan pengkodean, saya menggabungkan CGI front-end dan CGI back-end menjadi satu untuk menyelesaikan pemrosesan input pengguna dan operasi database dalam satu program CGI. Namun pada platform sistem lain, metode ini tidak boleh digunakan. Pembaca diminta mengambil keputusan sendiri berdasarkan diskusi sebelumnya.
Di sini, saya ingin menjelaskan beberapa CGI berbeda dan perbedaan penggunaannya di OmniHTTPD kami:
CGI Standar: CGI standar harus ditempatkan di direktori yang ditetapkan oleh /cgi-bin/ dan dapat dimodifikasi kapan saja saat OmniHTTPD sedang berjalan.
Win CGI: CGI yang diterapkan pada sistem Windows harus ditempatkan di direktori yang diatur oleh /cgi-win/. CGI ini menggunakan file INI untuk mendapatkan permintaan dari browser klien, daripada menggunakan variabel lingkungan atau input standar. Kami biasanya tidak menggunakan CGI semacam ini.
ISAPI: Spesifikasi CGI menggunakan pustaka tautan dinamis yang diusulkan oleh Microsoft.
NSAPI: Spesifikasi CGI menggunakan pustaka tautan dinamis yang diusulkan oleh Netscape.
Masing-masing spesifikasi CGI ini memiliki karakteristiknya sendiri: CGI standar dapat ditulis menggunakan program yang dapat dieksekusi atau bahasa skrip seperti Perl, namun tidak efisien dan memakan banyak sumber daya. Setiap permintaan CGI akan memiliki instance dari program CGI berjalan di server. Win CGI memiliki fitur yang sama dengan Stardand CGI. ISAPI dan NSAPI sangat efisien dan tersimpan di memori, dan tidak peduli berapa banyak permintaan CGI yang ada, hanya ada satu instance yang berjalan di server. Hanya kumpulan data yang terkait dengan instance ini yang berbeda; untuk melakukan debug karena harus ada di server WEB. Pembaruan hanya tersedia ketika perangkat lunak ditutup.
Pada kuliah berikutnya, saya akan memberikan program demonstrasi White Page. Halaman Putih adalah daftar alamat email. Anda dapat mengizinkan pengguna untuk menanyakan, mengedit, menambah, dan menghapus daftar ini melalui browser WEB. Pada kuliah kali ini, program demonstrasi yang saya berikan hanyalah operasi query, dan operasi lainnya akan dijelaskan pada kuliah selanjutnya.
Program demonstrasi ini dibangun pada database Borland Interbase Server dan dikembangkan di Delphi. Selama pengembangan, saya memilih CGI Standar karena lebih mudah untuk di-debug.
Program kami ditulis menggunakan Stardand CGI, yang dapat di-debug dengan mudah. Setelah debugging berhasil, dapat dengan mudah diubah menjadi ISAPI/NSAPI di Delphi hanya dengan satu pernyataan (bagaimana, Delphi sangat bagus!).