Grafik perbandingan
Dasar untuk perbandingan | CGI | Servlet |
---|---|---|
Dasar | Program ditulis dalam OS asli. | Program digunakan menggunakan Java. |
Ketergantungan platform | Ketergantungan platform | Tidak bergantung pada platform |
Penciptaan proses | Setiap permintaan klien membuat prosesnya sendiri. | Proses dibuat tergantung pada jenis permintaan klien. |
Konversi skrip | Hadir dalam bentuk executable (asli ke server OS). | Dikompilasi ke Java Bytecode. |
Berjalan | Proses terpisah | JVM |
Keamanan | Lebih rentan terhadap serangan. | Dapat menahan serangan. |
Kecepatan | Lebih lambat | Lebih cepat |
Pemrosesan skrip | Langsung | Sebelum menjalankan skrip itu diterjemahkan dan dikompilasi. |
Portabilitas | Tidak bisa porting | Portable |
Definisi CGI
CGI (Common Gateway Interface) adalah antarmuka yang menangani program eksternal (skrip CGI) pada server web untuk memungkinkan pelaksanaan halaman web interaktif. CGI dikembangkan oleh NCSA (Pusat Nasional untuk Aplikasi Superkomputer) pada tahun 1993. Ia berada di sisi server dan memungkinkan browser web untuk berinteraksi dengan program di server web. Misalnya, jika halaman web menanyakan database atau pengguna mengirimkan informasi formulir ke server pada saat itu skrip CGI dipanggil. Server meneruskan informasi itu ke aplikasi dengan dua cara MENDAPATKAN atau POST, kemudian aplikasi merespons ke server kembali ke browser. Dengan cara ini, browser mendapatkan beberapa hasil untuk pengguna.
CGI adalah ketentuan, untuk menggambarkan metode untuk menjalankan skrip CGI dan memberikan hasilnya kembali ke server untuk program-program tertentu. Fungsi CGI adalah untuk memindai informasi yang diterima dari browser dan menghasilkan respons yang tepat, setelah menyelesaikan tugas skrip CGI dihentikan. Di Common Gateway Interface, yang umum menandakan bahwa ia dapat beroperasi dengan baik dalam sistem operasi atau bahasa pemrograman apa pun.
Sebelumnya, skrip UNIX shell dan PERL digunakan untuk menulis program CGI, itulah sebabnya ia disebut sebagai "skrip" CGI. Tapi, sekarang salah satu bahasa seperti C, C ++, Perl, Visual Basic atau Python dapat digunakan. Meskipun, CGI dapat menyebabkan masalah keamanan potensial, karena server web juga dapat memperlakukan file yang dapat dieksekusi sebagai program CGI di beberapa direktori tertentu. CGI menangani setiap permintaan klien dengan proses terpisah yang meningkatkan beban server sehingga membuatnya lebih lambat.
Definisi Servlet
Servlet adalah komponen web berbasis Java bertindak sebagai program perantara yang memfasilitasi interaksi antara browser web atau klien HTTP dan server HTTP. Mirip dengan CGI, servlet juga dapat digunakan untuk mengumpulkan informasi melalui formulir halaman web, menunjukkan catatan dari database dan menghasilkan halaman web dinamis dengan bantuan sebuah wadah. Servlet adalah kelas Java yang tidak bergantung pada platform dan selanjutnya dikompilasi ke bytecode yang merupakan platform-independen. Bytecode platform-neutral dapat disimpan dan dieksekusi secara dinamis oleh Java Web server. Servlet menggunakan mekanisme soket dan RMI untuk membangun koneksi antara applet, database atau program database lainnya.
Wadah servlet adalah bagian dari server web yang mendukung protokol HTTP dan HTTPS . Ini menggunakan metode permintaan / respons dengan menggunakan protokol HTTP dan HTTPS untuk memungkinkan interaksi dengan klien web. Tidak seperti CGI, servlet berjalan di dalam ruang alamat server web, di mana setiap klien tidak perlu diperlakukan secara terpisah. Di servlet, kumpulan kendala diberlakukan di server untuk melindungi sumber daya di server.
Perbedaan Kunci Antara CGI dan Servlet
- Skrip CGI ditulis dalam OS asli dan disimpan di direktori tertentu. Di sisi lain, program servlet biasanya ditulis dalam Java yang dikompilasi ke dalam bytecode Java dan dieksekusi di JVM.
- CGI adalah platform khusus yang membuatnya sulit untuk beralih di antara sistem operasi. Sebaliknya, Servlets dapat dieksekusi di sistem operasi apa pun yang telah menginstal JVM, karenanya platform-independen.
- Dalam CGI, setiap permintaan klien yang tiba dapat menghasilkan proses terpisah saat servlet, proses tidak dibuat sia-sia dan berbagi ruang memori JVM.
- Skrip CGI adalah program yang dapat dieksekusi yang ditulis dalam OS asli server. Sebaliknya, servlet dikompilasi ke Java bytecode yang berjalan pada JVM.
- Servlet lebih aman daripada CGI karena menggunakan Java.
- Kecepatan, kinerja, dan efisiensi servlet lebih baik daripada CGI.
- Script CGI dapat langsung diproses. Sebaliknya, servlet pertama menerjemahkan dan mengkompilasi program kemudian memprosesnya.
- Ketika datang ke portabilitas servlet adalah portabel sedangkan CGI tidak.
Kesimpulan
CGI dan Servlet bekerja dengan cara yang sama tetapi penggunaan servlet lebih menguntungkan daripada CGI karena servlet cepat, aman, platform independen, mudah dikembangkan, dapat diakses melalui beberapa API dan didukung oleh berbagai server web.