Ieteicams, 2020

Redaktora Izvēle

Starpība starp CGI un Servlet

CGI un Servlet ir programmas, kas atrodas tīmekļa vai lietojumprogrammu serverī un palīdz komunikācijai starp tīmekļa serveri un pārlūkprogrammu (klienta pusē), lai dinamiski ģenerētu tīmekļa saturu. CGI un servlet var diferencēt, jo tie darbojas dažādos veidos un tiem ir atšķirīgas funkcionalitātes un funkcijas. CGI (Common Gateway Interface) programmas var veidot vietējā operētājsistēmā un saglabāt konkrētā direktorijā. No otras puses, servets ir tīmekļa komponents, kas parasti ir rakstīts Java un darbojas Java virtuālajā mašīnā.

Salīdzinājuma diagramma

Salīdzināšanas pamatsCGIServets
PamataProgrammas ir rakstītas vietējā operētājsistēmā.Programmas, ko izmanto, izmantojot Java.
Platformas atkarībaNo platformas atkarīgaNeuzticas platformai
Procesa radīšanaKatrs klienta pieprasījums rada savu procesu.Procesi tiek veidoti atkarībā no klienta pieprasījuma veida.
Skripta konvertēšanaPiedāvājums ir izpildāmo failu (dzimtā servera OS) veidā.Apkopots ar Java Bytecode.
DarbojasAtsevišķs processJVM
DrošībaVairāk neaizsargāti pret uzbrukumiem.Var pretoties uzbrukumiem.
ĀtrumsLēnāksĀtrāk
Skripta apstrādeTiešaPirms skriptu palaišanas tas tiek tulkots un apkopots.
PārnesamībaNevar pārnestPortatīvie

CGI definīcija

CGI (Common Gateway Interface) ir interfeiss, kas tīmekļa serverī apstrādā ārējās programmas (CGI skriptus), lai varētu veikt interaktīvās tīmekļa lapas. CGI izstrādāja NCSA (Nacionālais superdatoru lietojumprogrammu centrs) 1993. gadā. Tā atrodas servera pusē un ļauj tīmekļa pārlūkprogrammām mijiedarboties ar tīmekļa servera programmām. Piemēram, ja tīmekļa lapa vaicā datubāzei vai lietotājs iesniedz formu informāciju serverim tajā laikā, tiek izmantoti CGI skripti. Serveris šo informāciju nodod lietojumprogrammai divos veidos: GET vai POST, tad lietojumprogramma atbild uz serveri atpakaļ pārlūkprogrammā. Šādā veidā pārlūkprogrammas lietotājiem iegūst dažus rezultātus.

CGI ir noteikums, lai aprakstītu CGI skriptu palaišanas metodi un sniegtu rezultātus konkrētajām programmām serverī. CGI funkcija ir skenēt no pārlūkprogrammas saņemto informāciju un radīt pareizu atbildi, pēc uzdevuma pabeigšanas tiek izbeigts CGI skripts. Kopējā vārtejas interfeisā kopējais nozīmē, ka tā var darboties labi jebkurā operētājsistēmā vai programmēšanas valodā.

Agrāk UNIX apvalka skripti un PERL tika izmantoti, lai rakstītu CGI programmas, tas ir iemesls, kāpēc tas tika nosaukts par CGI “skriptiem” . Bet tagad var izmantot kādu no valodām, piemēram, C, C ++, Perl, Visual Basic vai Python. Kaut arī CGI var radīt iespējamās drošības problēmas, jo tīmekļa serveris var arī apstrādāt izpildāmos failus kā CGI programmas dažos īpašos katalogos. CGI apstrādā katru klienta pieprasījumu ar atsevišķu procesu, kas palielina servera slodzi, padarot to lēnāku.

Servletas definīcija

Servers ir Java bāzēta tīmekļa sastāvdaļa, kas darbojas kā starpprogramma, kas atvieglo mijiedarbību starp tīmekļa pārlūkprogrammu vai HTTP klientu un HTTP serveri. Līdzīgi kā CGI, servlets var tikt izmantots arī, lai apkopotu informāciju, izmantojot tīmekļa lapas veidlapas, parādītu ierakstus no datu bāzes un radītu dinamiskas tīmekļa lapas ar konteinera palīdzību. Servers ir Java klase, kas nav balstīta uz platformu un tālāk apkopota pie baitu koda, kas ir neatkarīgs no platformas. Java Web serveris var dinamiski saglabāt un izpildīt platformas neitrālu bytecode. Servets izmanto ligzdu un RMI mehānismu, lai izveidotu savienojumu starp sīklietotnēm, datu bāzēm vai citām datubāzu programmām.

Servera konteiners ir daļa no tīmekļa servera, kas atbalsta HTTP un HTTPS protokolus . Tā izmanto pieprasījuma / atbildes metodi, izmantojot HTTP un HTTPS protokolu, lai nodrošinātu mijiedarbību ar tīmekļa klientiem. Atšķirībā no CGI servlet darbojas tīmekļa servera adrešu telpā, kur katrs klients ne vienmēr tiek apstrādāts atsevišķi. Servetē serverī tiek ieviesti ierobežojumi, lai aizsargātu resursus serverī.

Galvenās atšķirības starp CGI un Servlet

  1. CGI skripti ir rakstīti dzimtā operētājsistēmā un saglabāti noteiktā direktorijā. No otras puses, servletprogrammas parasti tiek rakstītas Java, kas tiek apkopotas Java bytecode un izpildītas JVM.
  2. CGI ir platformas specifika, kas apgrūtina pārslēgšanos starp operētājsistēmām. Pretēji, Servlets var tikt izpildīts jebkurā operētājsistēmā, kas ir instalējusi JVM, tāpēc tā ir neatkarīga no platformas.
  3. CGI katrā ierašanās klienta pieprasījumā var izveidot atsevišķu procesu, kamēr servets, procesi netiek nevajadzīgi radīti un dalās JVM atmiņas telpā.
  4. CGI skripti ir izpildāmās programmas, kas rakstītas servera vietējā operētājsistēmā. Turpretī servlets tiek apkopoti uz Java bytecode, kas darbojas ar JVM.
  5. Servete ir drošāka nekā CGI, jo tā izmanto Java.
  6. Serveta ātrums, veiktspēja un efektivitāte ir labāka nekā CGI.
  7. CGI skriptus var apstrādāt tieši. Gluži pretēji, servets vispirms pārvērš un apkopo programmu, pēc tam to apstrādā.
  8. Kad runa ir par pārnesamību, servlet ir pārnēsājams, bet CGI nav.

Secinājums

CGI un Servlet darbojas tādā pašā veidā, bet servlet izmantošana ir izdevīga salīdzinājumā ar CGI, jo servets ir ātrs, drošs, platformas neatkarīgs, viegli attīstāms, pieejams ar vairākām API, un to atbalsta dažādi tīmekļa serveri.

Top