Carta Perbandingan
Asas untuk perbandingan | CGI | Servlet |
---|---|---|
Asas | Program ditulis dalam OS asli. | Program yang digunakan menggunakan Java. |
Ketergantungan platform | Bergantung kepada platform | Tidak bergantung kepada platform |
Penciptaan proses | Setiap permintaan klien mewujudkan prosesnya sendiri. | Proses dibuat berdasarkan jenis permintaan klien. |
Penukaran skrip | Hadir dalam bentuk executable (asal kepada pelayan OS). | Disusun ke Java Bytecode. |
Berjalan | Proses berasingan | JVM |
Keselamatan | Lebih terdedah kepada serangan. | Boleh melawan serangan. |
Kelajuan | Lebih perlahan | Lebih cepat |
Memproses skrip | Langsung | Sebelum menjalankan skrip ia diterjemahkan dan disusun. |
Kemudahalihan | Tidak boleh dipindah | Mudah alih |
Takrif CGI
CGI (Common Gateway Interface) adalah antara muka yang mengendalikan program luaran (skrip CGI) pada pelayan web untuk membolehkan pelaksanaan laman web interaktif. CGI telah dibangunkan oleh NCSA (National Center for Applications Supercomputing) pada tahun 1993. Ia berada di sisi pelayan dan membolehkan penyemak imbas web berinteraksi dengan program-program di pelayan web. Misalnya, jika laman web menanyakan pangkalan data atau pengguna menyerahkan maklumat borang kepada pelayan pada masa itu skrip CGI dipanggil. Pelayan melewati maklumat tersebut ke aplikasi dalam dua cara GET atau POST, maka aplikasi itu akan membalas server kembali ke penyemak imbas. Dengan cara ini, pelayar mendapatkan beberapa hasil untuk pengguna.
CGI adalah syarat, untuk menerangkan kaedah untuk menjalankan skrip CGI dan memberikan hasilnya kembali kepada pelayan untuk program tertentu. Fungsi CGI adalah untuk mengimbas maklumat yang diterima dari pelayar dan menghasilkan tindak balas yang betul, setelah selesai tugas skrip CGI ditamatkan. Dalam Common Gateway Interface, yang umum menandakan bahawa ia boleh beroperasi dengan baik dalam mana-mana sistem operasi atau bahasa pengaturcaraan.
Dahulu, skrip shell UNIX dan PERL digunakan untuk menulis program CGI, itulah sebabnya ia dinamakan sebagai "skrip" CGI. Tetapi, sekarang mana-mana bahasa seperti C, C ++, Perl, Visual Basic atau Python boleh digunakan. Walaupun, CGI boleh memimpin isu-isu keselamatan yang berpotensi, kerana pelayan web juga dapat merawat fail-fail executable sebagai program CGI di beberapa direktori tertentu. CGI mengendalikan setiap permintaan klien dengan proses yang berasingan yang meningkatkan beban pelayan menjadikannya lebih lambat.
Definisi Servlet
Servlet adalah komponen komponen web berasaskan Java sebagai program perantaraan yang memudahkan interaksi antara penyemak imbas web atau klien HTTP dan pelayan HTTP. Sama seperti CGI, servlet juga boleh digunakan untuk mengumpul maklumat dengan borang halaman web, menunjukkan rekod dari pangkalan data dan menghasilkan laman web dinamik dengan bantuan sebuah bekas. Servlet adalah kelas Java yang tidak bergantung pada platform dan dikompilasi lagi dengan bytecode yang bebas platform. The bytecode neutral platform boleh disimpan secara dinamik dan dilaksanakan oleh pelayan Web Java. Servlet menggunakan soket dan mekanisme RMI untuk menubuhkan sambungan antara aplet, pangkalan data atau program pangkalan data yang lain.
Kontena servlet adalah sebahagian daripada pelayan web yang menyokong protokol HTTP dan HTTPS . Ia menggunakan kaedah permintaan / tindak balas dengan menggunakan protokol HTTP dan HTTPS untuk membolehkan interaksi dengan pelanggan web. Tidak seperti CGI, servlet berjalan di dalam ruang alamat pelayan web, di mana setiap pelanggan tidak semestinya dirawat secara berasingan. Dalam servlet, koleksi kekangan dikuatkuasakan di pelayan untuk melindungi sumber-sumber di pelayan.
Perbezaan Utama Antara CGI dan Servlet
- Skrip CGI ditulis dalam OS asli dan disimpan di direktori tertentu. Sebaliknya, program servlet biasanya ditulis di Jawa yang dikompilasi oleh Java bytecode dan dilaksanakan di JVM.
- CGI adalah platform khusus yang menjadikannya sukar untuk beralih antara sistem operasi. Sebaliknya, Servlet boleh dilaksanakan di mana-mana sistem operasi yang telah memasang JVM, oleh itu ia adalah platform yang bebas.
- Dalam CGI setiap permintaan klien yang tiba dapat menghasilkan proses yang terpisah semasa servlet, proses tidak dibuat tanpa sia-sia dan berkongsi ruang memori JVM.
- Skrip CGI adalah program boleh laku yang ditulis dalam OS asal pelayan. Sebaliknya, servlet disusun ke bytecode Java yang berjalan di JVM.
- Servlet lebih selamat daripada CGI kerana ia menggunakan Java.
- Kelajuan, prestasi dan kecekapan servlet adalah lebih baik daripada CGI.
- Skrip CGI boleh diproses secara langsung. Sebaliknya, servlet mula-mula menerjemahkan dan menyusun program kemudian memprosesnya.
- Apabila ia datang kepada servlet portabiliti adalah mudah alih manakala CGI tidak.
Kesimpulannya
CGI dan Servlet berfungsi dengan cara yang sama tetapi penggunaan servlet adalah berfaedah kepada CGI kerana servlet adalah cepat, aman, platform bebas, mudah dibangunkan, diakses melalui beberapa API dan disokong oleh pelbagai pelayan web.