Posted by: rascoolz | December 17, 2012

CGI

1) penjelasan CGI
CGI (Common Gateway Interface) merupakan suatu bentuk hubungan interaktif di mana client (browser) dapat mengirimkan suatu masukan kepada server, dan server mengolah masukan tersebut serta mengembalikannya kepada client (browser). Contoh sederhana adalah saat Anda menggunakan suatu search engine. Saat Anda menuliskan keyword dan menekan tombol Search maka browser akan mengirimkan keyword tersebut ke server. Keyword tersebut lalu diolah oleh server dan server mengirimkan data hasil pengolahan (yang sesuai dengan keyword yang kita masukkan) ke browser kita. Jadi yang kita lihat pada browser hanya data yang sesuai dengan keyword yang kita masukkan.
Untuk dapat menggunakan CGI syarat pertama adalah server dengan sistem operasi UNIX (beserta variantnya). Namun perlu Anda perhatikan bahwa tidak semua server UNIX (yg gratisan) mampu menangani dan melayani CGI. Server-server yang melayani penempatan web gratisan seperti Geocities dan Homepage, tidak mengijinkan penempatan script CGI dalam web kita. Untuk itu Anda bisa mencoba Virtual Avenue, Tripod, atau Hypermart (daftar lengkapnya bisa Anda lihat di sini).
Program CGI ditulis dalam bahasa yang dapat dimengerti oleh sistem misalnya C/C++, Fortran, Perl, Tcl, Visual Basic, dan lain-lain. Pemilihan bahasa yang digunakan tergantung dari sistem yang digunakan. Jika kita menggunakan bahasa pemrograman seperti C atau Fortran maka program-program yang kita buat harus dikompile terlebih dahulu sebelum dijalankan sehingga pada server akan terdapat source code dan program hasil kompilasi. Berbeda bila kita menggunakan bahasa script seperti PERL, TCL, atau Unix Shell maka hanya akan terdapat script itu sendiri (tanpa ada source code). Banyak orang yang lebih suka memilih menggunakan script CGI dibandingkan dengan bahasa pemrograman karena lebih mudah untuk di-debug dan dimodifikasi. Dalam pembahasan kali ini kita akan menggunakan Perl sebagai bahasa script-nya.

Pendahuluan
Pada awalnya CGI adalah salah satu yang mendekati aplikasi server-side programming. Program CGI yang sering digunakan adalah C++ dan Perl. CGI merupakan bagian dari web server yang dapat berkomunikasi dengan program lain yang ada di server. Dengan CGI web server dapat memanggil program yang dibuat dari berbagai bahasa pemrograman (Common). Interaksi antara pengguna dengan berbagai aplikasi, misalnya database, dapat dijembatani oleh CGI (Gateway) Kemampuan CGI ini dapat digunakan untuk Web Server IIS.

Sejarah CGI
CGI (Common Gateway Interface) merupakan skrip tertua dalam bidang pemrograman web. Skrip bisa didefinisikan sebagai rangkaian dari beberapa instruksi program. Untuk membuat skrip yang dapat dijalankan pada web diperlukan pengetahuan pemrograman.
CGI sendiri telah muncul sejak teknologi web diperkenalkan di dunia pada awal tahun 1990, bersama dengan kemunculan CERN, web server pertama di dunia. CGI disediakan sebagai tool, atau perlengkapan untuk membuat program web. CGI digunakan untuk membuat program-program tampilan web yang lebih interaktif, koneksi ke basis data, bahkan membuat permainan (game).
CGI pada masa-masa awalnya dibuat dengan bahasa C, bahasa yang juga digunakan untuk membuat web server pertama yaitu, CERN. CGI kemudian diadopsi oleh NCSA (National Central for Supercomputing Application) web server, dan hingga kini masih digunakan pada Apache Web Server, web server yang paling banyak digunakan oleh komunitas Internet saat ini.
Walaupun demikian CGI bisa juga direalisasikan dengan banyak bahasa pemrograman lain. Mulai dari C, Perl, Python, PHP, Tcl/Tk, hingga skrip shell pada UNIX / LINUX.

Keamanan Program CGI
CGI seringkali digunakan sebagai mekanisme untuk mendapatkan informasi dari user melalui fill out form, mengakses basis data (database), atau menghasilkan halaman yang dinamis. meskipun secara prinsip mekanisme CGI tidak memiliki lubang keamanan, program atau skrip yang dibuat sebagai CGI dapat memiliki lubang keamanan ataupun tidak sengaja). Potensi lubang keamanan yang digunakan dapat terjadi dengan CGI antara lain :
• Seorang pemakai yang nakal dapat memasang skrip CGI sehingga dapat mengirimkan berkas kata kunci (password) kepada pengunjung yang mengeksekusi CGI tersebut.
• Program CGI dipanggil berkali-kali sehingga server menjadi terbebani karena harus menjalankan beberapa program CGI yang menghabiskan memori dan CPU cycle dari web server

2. Alur CGI
a. Aplikasi CGI, yang berupa file skrip (script file), ditaruh di lokasi direktori yang dapat
diakses oleh web server,
b. Jika ada permintaan terhadap aplikasi dari klien, web server akan membaca skrip dan menjalankan program,
c. Web server memberi program ini masukan (termasuk masukan yang diberikan klien) dari masukan standar (stdin) serta beberapa environment variable,
d. Web server menunggu program berjalan hingga selesai lalu menangkap keluaran standar program (stdout), keluaran inilah yang diberikan kepada klien.

3. Kelebihan dan Kekurangan CGI
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.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: