Bahasa C
Common Gateway Interface, atau CGI, adalah seperangkat standar yang menentukan bagaimana informasi dipertukarkan antara server web dan skrip khusus.
Spesifikasi CGI saat ini dikelola oleh NCSA dan NCSA mendefinisikan CGI sebagai berikut −
Common Gateway Interface, atau CGI, adalah standar untuk program gateway eksternal untuk berinteraksi dengan server informasi seperti server HTTP.
Versi saat ini adalah CGI/1.1 dan CGI/1.2 sedang dalam proses.
Untuk memahami konsep CGI, mari kita lihat apa yang terjadi ketika kita mengklik hyperlink untuk menjelajahi halaman web atau URL tertentu.
Browser Anda menghubungi server web HTTP dan meminta URL, mis. nama file.
Server Web akan mengurai URL dan akan mencari nama file. Jika menemukan file yang diminta maka server web mengirimkan file itu kembali ke browser jika tidak, akan mengirimkan pesan kesalahan yang menunjukkan bahwa Anda telah meminta file yang salah.
Browser web mengambil respons dari server web dan menampilkan file yang diterima atau pesan kesalahan berdasarkan respons yang diterima.
Namun, dimungkinkan untuk mengatur server HTTP sedemikian rupa sehingga setiap kali file di direktori tertentu diminta, file itu tidak dikirim kembali; alih-alih dijalankan sebagai sebuah program, dan keluaran yang dihasilkan dari program tersebut dikirim kembali ke browser Anda untuk ditampilkan.
Common Gateway Interface (CGI) adalah protokol standar untuk mengaktifkan aplikasi (disebut program CGI atau skrip CGI) untuk berinteraksi dengan server Web dan dengan klien. Program CGI ini dapat ditulis dengan Python, PERL, Shell, C atau C++ dll.
Program sederhana berikut menunjukkan arsitektur sederhana CGI
Sebelum Anda melanjutkan dengan Pemrograman CGI, pastikan Server Web Anda mendukung CGI dan dikonfigurasi untuk menangani Program CGI. Semua Program CGI yang akan dijalankan oleh server HTTP disimpan dalam direktori yang telah dikonfigurasi sebelumnya. Direktori ini disebut direktori CGI dan menurut konvensi dinamai /var/www/cgi-bin. Berdasarkan konvensi, file CGI akan memiliki ekstensi sebagai .cgi , meskipun C++ dapat dieksekusi.
Secara default, Apache Web Server dikonfigurasi untuk menjalankan program CGI di /var/www/cgi-bin. Jika Anda ingin menentukan direktori lain untuk menjalankan skrip CGI Anda, Anda dapat memodifikasi bagian berikut di file httpd.conf −
<Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> <Directory "/var/www/cgi-bin"> Options All </Directory>
Di sini, saya berasumsi bahwa Anda memiliki Server Web dan berjalan dengan sukses dan Anda dapat menjalankan program CGI lainnya seperti Perl atau Shell dll.
Perhatikan konten Program C++ berikut
#include <iostream> using namespace std; int main () { cout << "Content-type:text/html\r\n\r\n"; cout << "<html>\n"; cout << "<head>\n"; cout << "<title>Hello World - First CGI Program</title>\n"; cout << "</head>\n"; cout << "<body>\n"; cout << "<h2>Hello World! This is my first CGI program</h2>\n"; cout << "</body>\n"; cout << "</html>\n"; return 0; }
Kompilasi kode di atas dan beri nama executable sebagai cplusplus.cgi. File ini disimpan di direktori /var/www/cgi-bin dan memiliki konten berikut. Sebelum menjalankan program CGI pastikan Anda telah mengubah mode file menggunakan chmod 755 cplusplus.cgi Perintah UNIX untuk membuat file dapat dieksekusi.
Program C++ di atas adalah program sederhana yang menulis outputnya pada file STDOUT yaitu layar. Ada satu fitur penting dan tambahan yang tersedia yaitu pencetakan baris pertama Content-type:text/html\r\n\r\n . Baris ini dikirim kembali ke browser dan menentukan tipe konten yang akan ditampilkan di layar browser. Sekarang Anda pasti sudah memahami konsep dasar CGI dan Anda bisa menulis banyak program CGI yang rumit dengan menggunakan Python. Program C++ CGI dapat berinteraksi dengan sistem eksternal lainnya, seperti RDBMS, untuk bertukar informasi.
Baris Content-type:text/html\r\n\r\n adalah bagian dari header HTTP, yang dikirim ke browser untuk memahami konten. Semua header HTTP akan dalam bentuk berikut
HTTP Field Name: Field Content For Example Content-type: text/html\r\n\r\n
Ada beberapa header HTTP penting lainnya, yang akan sering Anda gunakan dalam Pemrograman CGI Anda.
No.No | Header &Deskripsi |
---|---|
1 | Jenis konten: String MIME yang menentukan format file yang dikembalikan. Contohnya adalah Content-type:text/html. |
2 | Kedaluwarsa:Tanggal Tanggal informasi menjadi tidak valid. Ini harus digunakan oleh browser untuk memutuskan kapan halaman perlu di-refresh. String tanggal yang valid harus dalam format 01 Jan 1998 12:00:00 GMT. |
3 | Lokasi:URL URL yang harus dikembalikan, bukan URL yang diminta. Anda dapat menggunakan file ini untuk mengarahkan permintaan ke file apa pun. |
4 | Terakhir diubah:Tanggal Tanggal modifikasi terakhir sumber daya. |
5 | Panjang konten:N Panjang, dalam byte, dari data yang dikembalikan. Browser menggunakan nilai ini untuk melaporkan perkiraan waktu pengunduhan untuk sebuah file. |
6 | Set-Cookie:String Atur cookie yang melewati string . |
Semua program CGI akan memiliki akses ke variabel lingkungan berikut. Variabel-variabel ini memainkan peran penting saat menulis program CGI apa pun.
No.No | Nama &Deskripsi Variabel |
---|---|
1 | CONTENT_TYPE Tipe data konten, yang digunakan saat klien mengirim konten yang dilampirkan ke server. Misalnya upload file dll. |
2 | CONTENT_LENGTH Panjang informasi kueri yang tersedia hanya untuk permintaan POST. |
3 | HTTP_COOKIE Mengembalikan cookie yang disetel dalam bentuk pasangan kunci &nilai. |
4 | HTTP_USER_AGENT Bidang header permintaan Agen Pengguna berisi informasi tentang agen pengguna yang membuat permintaan. Ini adalah nama browser web. |
5 | PATH_INFO Jalur untuk skrip CGI. |
6 | QUERY_STRING Informasi yang disandikan URL yang dikirim dengan permintaan metode GET. |
7 | REMOTE_ADDR Alamat IP dari host jarak jauh yang membuat permintaan. Ini dapat berguna untuk logging atau untuk tujuan otentikasi. |
8 | REMOTE_HOST Nama host yang sepenuhnya memenuhi syarat yang membuat permintaan. Jika informasi ini tidak tersedia maka REMOTE_ADDR dapat digunakan untuk mendapatkan alamat IR. |
9 | REQUEST_METHOD Metode yang digunakan untuk membuat permintaan. Metode yang paling umum adalah GET dan POST. |
10 | SCRIPT_FILENAME Jalur lengkap ke skrip CGI. |
11 | SCRIPT_NAME Nama skrip CGI. |
12 | SERVER_NAME Nama host atau Alamat IP server. |
13 | SERVER_SOFTWARE Nama dan versi perangkat lunak yang dijalankan server. |
Berikut adalah program CGI kecil untuk membuat daftar semua variabel CGI.
#include <iostream> #include <stdlib.h> using namespace std; const string ENV[ 24 ] = { "COMSPEC", "DOCUMENT_ROOT", "GATEWAY_INTERFACE", "HTTP_ACCEPT", "HTTP_ACCEPT_ENCODING", "HTTP_ACCEPT_LANGUAGE", "HTTP_CONNECTION", "HTTP_HOST", "HTTP_USER_AGENT", "PATH", "QUERY_STRING", "REMOTE_ADDR", "REMOTE_PORT", "REQUEST_METHOD", "REQUEST_URI", "SCRIPT_FILENAME", "SCRIPT_NAME", "SERVER_ADDR", "SERVER_ADMIN", "SERVER_NAME","SERVER_PORT","SERVER_PROTOCOL", "SERVER_SIGNATURE","SERVER_SOFTWARE" }; int main () { cout << "Content-type:text/html\r\n\r\n"; cout << "<html>\n"; cout << "<head>\n"; cout << "<title>CGI Environment Variables</title>\n"; cout << "</head>\n"; cout << "<body>\n"; cout << "<table border = \"0\" cellspacing = \"2\">"; for ( int i = 0; i < 24; i++ ) { cout << "<tr><td>" << ENV[ i ] << "</td><td>"; // attempt to retrieve value of environment variable char *value = getenv( ENV[ i ].c_str() ); if ( value != 0 ) { cout << value; } else { cout << "Environment variable does not exist."; } cout << "</td></tr>\n"; } cout << "</table><\n"; cout << "</body>\n"; cout << "</html>\n"; return 0; }
Untuk contoh nyata, Anda perlu melakukan banyak operasi dengan program CGI Anda. Ada pustaka CGI yang ditulis untuk program C++ yang dapat Anda unduh dari ftp://ftp.gnu.org/gnu/cgicc/ dan ikuti langkah-langkah untuk menginstal pustaka −
$tar xzf cgicc-X.X.X.tar.gz $cd cgicc-X.X.X/ $./configure --prefix=/usr $make $make install
Anda dapat memeriksa dokumentasi terkait yang tersedia di ‘C++ CGI Lib Documentation.
Anda pasti telah menemukan banyak situasi ketika Anda harus meneruskan beberapa informasi dari browser Anda ke server web dan akhirnya ke Program CGI Anda. Paling sering browser menggunakan dua metode untuk menyampaikan informasi ini ke server web. Metode ini adalah Metode GET dan Metode POST.
Metode GET mengirimkan informasi pengguna yang disandikan yang ditambahkan ke permintaan halaman. Halaman dan informasi yang disandikan dipisahkan oleh ? karakter sebagai berikut
http://www.test.com/cgi-bin/cpp.cgi?key1=value1&key2=value2
Metode GET adalah metode default untuk meneruskan informasi dari browser ke server web dan menghasilkan string panjang yang muncul di kotak Location:browser Anda. Jangan pernah menggunakan metode GET jika Anda memiliki kata sandi atau informasi sensitif lainnya untuk diteruskan ke server. Metode GET memiliki batasan ukuran dan Anda dapat meneruskan hingga 1024 karakter dalam string permintaan.
Saat menggunakan metode GET, informasi diteruskan menggunakan header http QUERY_STRING dan akan dapat diakses di Program CGI Anda melalui variabel lingkungan QUERY_STRING.
Anda dapat meneruskan informasi hanya dengan menggabungkan pasangan kunci dan nilai bersama dengan URL apa pun atau Anda dapat menggunakan tag HTML
Bahasa C
Warisan C++ Dalam tutorial ini, kita akan belajar tentang pewarisan dalam C++ dengan bantuan contoh. Pewarisan adalah salah satu fitur utama pemrograman berorientasi objek di C++. Ini memungkinkan kita untuk membuat kelas baru (kelas turunan) dari kelas yang ada (kelas dasar). Kelas turunan mewari
Apa itu C++? C++ adalah bahasa pemrograman berorientasi objek untuk tujuan umum. Itu dibuat oleh Bjarne Stroustrup di Bell Labs sekitar tahun 1980. C++ sangat mirip dengan C (ditemukan oleh Dennis Ritchie pada awal 1970-an). C++ sangat kompatibel dengan C sehingga mungkin akan mengkompilasi lebih d
C++ adalah bahasa pemrograman berorientasi objek untuk tujuan umum. Itu dibuat oleh Bjarne Stroustrup di Bell Labs sekitar tahun 1980. Ini sangat kompatibel dengan C sehingga mungkin akan mengkompilasi lebih dari 99% program C tanpa mengubah baris kode sumber. C++ memperkenalkan konsep Kelas dan Obj
Apa itu CGI? Common Gateway Interface, atau CGI, adalah seperangkat standar yang menentukan bagaimana informasi dipertukarkan antara server web dan skrip khusus. Spesifikasi CGI saat ini dikelola oleh NCSA dan NCSA mendefinisikan CGI sebagai berikut − Common Gateway Interface, atau CGI, ada