Perbezaan antara CGI dan Servlet

Perbezaan antara CGI dan Servlet

CGI vs Servlet

CGI (antara muka gerbang biasa) adalah percubaan pertama untuk menyediakan pengguna dengan kandungan dinamik. Ia membolehkan pengguna melaksanakan program yang tinggal di pelayan untuk memproses data dan juga mengakses pangkalan data untuk menghasilkan kandungan yang berkaitan. Oleh kerana ini adalah program, mereka ditulis dalam sistem operasi asli dan kemudian disimpan dalam direktori tertentu. Servlet adalah pelaksanaan Java yang bertujuan untuk menyediakan perkhidmatan yang sama seperti CGI, tetapi bukan program yang disusun dalam sistem operasi asli, ia disusun ke dalam java bytecode yang kemudiannya dijalankan di mesin maya Java. Walaupun program Java dapat dikumpulkan ke dalam kod asli, mereka masih lebih suka menyusun di bytecode java.

Kelebihan pertama servlet atas CGI adalah dalam kemerdekaan platformnya. Servlets boleh dijalankan di mana -mana sistem operasi selagi JVM dipasang, yang bermaksud bahawa anda tidak akan menghadapi masalah walaupun anda memilih untuk menukar sistem operasi. Dengan CGI, sistem operasi beralih adalah proses yang sukar dan susah payah kerana anda perlu mengkompilasi semula program dalam sistem operasi baru.

Oleh kerana anda menjalankan program bebas di CGI, mereka membuat proses mereka sendiri apabila mereka dilaksanakan, sesuatu yang tidak berlaku dengan servlet kerana mereka hanya berkongsi dalam ruang ingatan JVM. Ini boleh membawa kepada masalah yang berkaitan dengan overhead, terutamanya apabila anda meningkatkan bilangan pengguna secara eksponen. Ia juga mewujudkan isu kelemahan kerana program ini tidak dikawal dalam apa jua cara apabila ia dijalankan di pelayan.

Kemudian, kaedah yang lebih biasa apabila menggunakan CGI adalah melalui skrip. Ini mengurangkan masa yang diperlukan dalam membuat program dan pada umumnya lebih selamat. Dengan CGI, anda boleh menjalankan skrip dengan segera, sementara servlet, anda perlu menterjemahkan skrip ke dalam java dan menyusunnya ke servlet yang menambah sedikit ke masa pemuatan.

Ringkasan:
1.CGI biasanya boleh dilaksanakan yang berasal dari sistem pengendalian pelayan, walaupun servlet juga boleh disusun kepada OS asli ia dapat disusun ke java bytecode yang kemudiannya dijalankan pada JVM
2.Program CGI bergantung kepada platform manakala servlet adalah platform bebas
3.Program CGI dijalankan sebagai proses berasingan di komputer semasa servlet dijalankan di JVM
4.CGI boleh lebih terdedah kepada serangan daripada servlet
5.CGI secara langsung boleh memproses skrip semasa ia perlu diterjemahkan dan disusun sebelum ia dapat dijalankan sebagai servlet