Pengantar CGI_Perl

advertisement
Pengantar CGI/Perl
Salah satu protokol gateway yang pertama diciptakan, dan tersukses, untuk
menghubungkan web server dan aplikasi adalah Common Gateway Interface, atau CGI.
Cara Kerja CGI




Aplikasi CGI, yang berupa file skrip, ditaruh di lokasi direktori yang dapat diakses
oleh web server.
Jika ada permintaan terhadap aplikasi dari klien, web server akan membaca skrip dan
menjalankan program.
Web server memberi program ini masukan (termasuk masukan yang diberikan klien)
dari masukan standar (stdin) serta beberapa environment variable.
Web server menunggu program berjalan hingga selesai lalu menangkap keluaran
standar program (stdout).
Keluaran inilah yang diberikan ke klien.
Kelebihan CGI



Skrip CGI dapat ditulis dalam bahasa apa saja, namun barangkali sekitar 90%
program CGI yang ada ditulis dalam Perl.
Protokol CGI yang sederhana, serta
Kefasihan Perl dalam mengolah teks, menjadikan menulis sebuah program CGI
cukup mudah dan cepat.
Meski tertua, hingga saat ini menurut survei dari Netcraft sekitar 70% aplikasi di web
masih menggunakan CGI. Ini berarti, lebih dari separuh situs web dinamik yang ada
dibangun dengan CGI.
Kelemahan CGI


Kecepatan (skalabilitas).
Untuk menghasilkan keluaran program CGI, overhead yang harus ditempuh cukup
besar.
Dalam kasus CGI Perl, prosesnya sbb:
– Web server terlebih dahulu akan menciptakan sebuah proses baru dan menjalankan
interpreter Perl.
– Perl kemudian mengkompilasi script CGI tersebut, baru kemudian menjalankan skrip.
Keseluruhan siklus ini terjadi untuk setiap request. Dengan kata lain, terlalu banyak
waktu dibuang untuk menciptakan proses dan tidak ada cache skrip yang telah
dikompilasi.
Jika sebuah situs web menerima kurang dari sepuluh hingga dua puluh ribu hit CGI per
hari, rata-rata mesin web server Unix yang ada sekarang ini mampu menanganinya
dengan baik.
Angka ini relatif, bergantung pada:
-
-
Tingkat pembebanan mesin web server untuk melakukan pekerjaan lain (misalnya,
mengirim mail dan menjalankan server database)
Aplikasi CGI itu sendiri (sebab beberapa aplikasi CGI berupa skrip tunggal berukuran
besar hingga waktu loading-nya cukup lama; umumnya aplikasi CGI yang rumit
memecah diri menjadi skrip-skrip terpisah untuk mengurangi waktu loading).
Cepat atau lambatnya penampilan halaman web yang diterima klien akan lebih
bergantung pada koneksi jaringan.
MOD_PERL
Mod_perl adalah sebuah modul Apache. Mod_perl menempelkan interpreter Perl ke
dalam Apache, sehingga Apache mampu menjalankan kode/skrip Perl secara langsung.
Kelebihan Mod_Perl
Mod_perl dapat memecahkan masalah skalabilitas CGI, karena dapat men-cache skrip
dalam memori. Dengan mod_perl pun kita dapat membuat aplikasi web dalam gaya
embedded (kode ada di file yang sama dengan HTML, seperti Javascript).
Ada beberapa modul yang bisa dipakai untuk ini, antara lain HTML::Embperl dan
HTML::Mason.
Dengan mod_perl sebuah mesin server tunggal mampu menangani beban hingga jutaan
hit per hari.
Contoh site yang memakai mod_perl:


Slashdot.org
Valueclick.com
Di Indonesia ada


Berpolitik.com
Satunet.com
Kelemahan Mod_Perl
Masalah utama memakai mod_perl ada dua.
1. Segi Teknis
Penggunaan memori yang besar. Ukuran Perl cukup besar, sehingga jika Perl
ditempelkan kepada Apache akan dihasilkan proses Apache yang berukuran besar.
Dengan model Apache yang multiproses saat ini, jumlah memori total yang
dibutuhkan cukup banyak.
Umumnya mesin instalasi mod_perl sekarang rata-rata dilengkapi memori minimal
256MB. Jika mesin ini dipasangi juga server database, jumlah memori perlu
ditambah. Dalam kondisi hit tinggi, dapat terbentuk proses Apache yang banyak
sekaligus sehingga kebutuhan memori membludak.
Masalah ini dipecahkan dengan menaruh sebuah web server lain yang kecil, apakah
itu Apache biasa berproksi atau Squid. Hubungan dengan klien ditangani oleh web
server yang kecil, sementara Apache besar dengan mod_perl hanya bertugas
memproduksi halaman dinamik.
2. Segi Non teknis
Dari segi nonteknis, relatif lama dan sulit menguasai mod_perl (bukan lagi steep, tapi
“vertical learning curve,” demikian pernah disebutkan oleh Stas Bekman, penulis
tutorial mod_perl mod_perl Developer’s Guide).
Meski program CGI tetap dapat dijalankan lewat mod_perl (melalui modul Perl
Apache::Registry) sehingga kita tetap dapat membuat program bergaya CGI, ada
beberapa perbedaan yang perlu diperhatikan, terutama jika sekarang CGI Anda di-cache
oleh web server.
Administrasi server mod_perl pun perlu dipahami dan dikuasai dengan baik.
Pecinta Perl dianjurkan tetap mencoba dan memakai mod_perl, karena : Tingkat
Kontrol yang ditawarkan amat tinggi. Karena menyediakan antarmuka lengkap ke API
Apache, dengan mod_perl kita dapat menyetel Apache secara rinci.
Berikrar sehidup-semati bersama Apache. Dengan memilih mod_perl, bisa dibilang
“bertukar cincin”, berikrar sehidup-semati bersama Apache. Sebab mod_perl modul
Apache, spesifik untuk Apache.
Menurut survei, web server yang paling banyak dipakai di internet adalah Apache.
Beberapa produk komersial pun, seperti Stronghold (C2Net) dan WebSphere (IBM),
menggunakan kode sumber Apache.
Download