Atšķirība starp CGI un Servlet

CGI vs Servlet

CGI (Common Gateway Interface) ir pirmais mēģinājums lietotājiem sniegt dinamisku saturu. Tas lietotājiem ļauj izpildīt serverī esošo programmu, lai apstrādātu datus un pat piekļūtu datu bāzēm, lai iegūtu atbilstošu saturu. Tā kā šīs ir programmas, tās tiek ierakstītas dzimtajā operētājsistēmā un pēc tam tiek saglabātas noteiktā direktorijā. Serversīklietotne ir Java ieviešana, kuras mērķis ir sniegt tādu pašu pakalpojumu kā CGI, taču vietējā operētājsistēmā apkopoto programmu vietā tā tiek apkopota Java baitkodā, kas pēc tam tiek palaista Java virtuālajā mašīnā. Lai arī Java programmas var apkopot vietējā kodā, tās tomēr dod priekšroku kompilēšanai Java baitkodā.

Servletu pirmā priekšrocība salīdzinājumā ar CGI ir tās platformas neatkarība. Serverses var darboties jebkurā operētājsistēmā tik ilgi, kamēr ir instalēts JVM, kas nozīmē, ka jums nebūtu problēmu pat tad, ja izvēlēsities pārslēgt operētājsistēmas. Izmantojot CGI, operētājsistēmas maiņa ir grūts un darbietilpīgs process, jo jums būs jāpārveido programmas jaunajā operētājsistēmā..

Tā kā jūs vadāt neatkarīgas programmas CGI, tās izveido savu procesu, kad tās tiek izpildītas, un tas nenotiek ar servletiem, jo ​​tie vienkārši dalās JVM atmiņā. Tas var radīt problēmas, kas saistītas ar pieskaitāmām cenām, it īpaši, ja eksponenciāli palielinat lietotāju skaitu. Tas rada arī ievainojamības problēmas, jo programmu nekādā veidā nekontrolē, tiklīdz tā tiek palaista uz servera.

Vēlāk CGI lietošanas biežākā metode ir skripti. Tas samazina programmu izveidošanai vajadzīgo laiku un parasti ir drošāki. Izmantojot CGI, jūs varat palaist skriptus uzreiz, savukārt servletos skripts būs jātulko Java un jāapkopo serversīklā, kas mazliet palielina ielādes laiku..

Kopsavilkums:
1.CGI parasti ir servera operētājsistēmas vietējie izpildāmie faili, lai gan servletus var arī apkopot vietējai operētājsistēmai, tos var apkopot Java bytecode, kas pēc tam tiek palaists JVM
2.CGI programmas ir atkarīgas no platformas, savukārt servleti ir neatkarīgi no platformas
3.CGI programmas datorā darbojas kā atsevišķi procesi, savukārt servleti darbojas JVM
4.CGI var būt neaizsargātāki pret uzbrukumiem nekā servleti
5.CGI var tieši apstrādāt skriptus, kamēr tas ir jātulko un jāapkopo, pirms to var palaist kā serversi