Apache Web Server

Kata orang, Apache itu adalah web server nomor satu di dunia ini. Yup, itu benar bro. Apache adalah web server yang paling banyak dipake saat ini. Saat artikel ini ditulis, setidaknya 49.49% web server yang ada di dunia ini menggunakan Apache. Sumpe deh, aya kaga bo'ong. Kaga percaya? Kalo masih kaga percaya, kamu bisa melihat sendiri datanya di Netcraft.com.

So what gitu lho? Emang kalo Apache ntu web server nomor satu, lalu apa urusannye dengan kite-kite pade? Emang Apache bisa ditukar ame beras? Emang kalo kite pake Apache, kite kaga perlu lagi susah payah cari duit di internet? Emang kalo pake Apache kite kaga perlu....

Yo ndak gitu maksud ku toh le... Apache ntu emang bukan panganan alternatif pengganti beras. Apache juga bukan mesin pencetak uang di internet. Apache hanyalah sebuah web server, tidak lebih dan tidak kurang. Aku juga bukan sedang membicarakan masalah beras disini, bukan juga tentang cara membuat mesin pencetak uang. Lagi pula, kalo emang aku bisa membuat mesin pencetak uang, ngapain aku masih ngeblog disini.

Jadi, yang ingin aku bicarakan disini hanyalah tentang Apache. Tapi, mbok ya kenapo toh, tiba-tiba aku ingin ngomongin soal Apache? Terus terang, aku sendiri juga tidak tahu mengapa kata Apache tiba-tiba muncul di kepala ku. Ini mungkin disebabkan karena semalam aku tidur terlalu larut, hingga bangunnya kesiangan, dan akibatnya tidak sempat sarapan. Lalu hubungannya dengan Apache? Tidak ada, hehe.. sorry... aku emang suka ngawur.

Ok, sekarang waktunya serius... Kamu mungkin sedikit penasaran, bagaimana mungkin Apache yang open source dan gratisan itu bisa mengalahkan dua pesaing besarnya (Microsoft dan Netscape). Itu tentu saja karena banyak orang yang suka dengan Apache. Masing-masing orang tentu mempunyai alasan sendiri, kenapa di suka dengan Apache.

Mungkin ada yang akan menjawab karena Apache itu gratis. Mungkin ada juga yang akan menjawab karena dia kurang suka dengan Microsoft atau Netscape. Serta beberapa alasan dan kemungkinan lainnya. Tapi sipenulis buku (Lagi-lagi dari buku. Abis mau dari mana lagi dong? Dari nenek moyang?) yang sedang aye baca ini punya alasan sendiri.

Berikut ini beberapa alasan mengapa dia menyukai Apache, dan menulis buku tentang Apache.

  • Apache itu adalah web server yang mudah di konfigurasi. Kate si penulis, sangat mudah bagi orang yang ingin mengembangkan kemampuan dan kapabilitas dari web servernya, itu kalo dia menggunakan Apache. Hanya dengan sedikit pengetahuan mengenai bahasa C atau Perl, dia bisa membuat berbagai modul yang bisa menjalankan berbagai fungsi yang bersifat khusus. Itu artinya, berton-ton module yang bisa dia gunakan di Apache.
  • Apache itu gratis, dan bersifat open source. Menjadi yang gratisan itu penting, tapi menjadi teknologi yang bersifat open source itu jauh lebih penting. Itu kate si penulis lho.
  • Apache bisa bekerjasama dengan hampir semua bahasa script. Misalnya PHP, Perl, dan beberapa bahasa script lainnya. Kebanyakan aplikasi yang berbasis web, menggunakan script. Perl adalah bahasa script yang paling populer saat ini. Dan Apache, mampu membuat hidup dari para pengguna Perl menjadi lebih mudah dan indah.
  • Apache berjalan dalam lingkungan Linux, dan sistem-sistem berbasis Unix lainnya. Linux makin hari makin digemari orang. Apache dan Linux, sudah seperti tangan kanan dan kiri, mereka bekerjasama. Intinya? Kaga tahu tuh.
  • Apache juga bisa dijalankan di Windows. Although (yang artinya walaupun), Apache tadinya memang dibuat dalam lingkungan Linux, tapi Apache juga bisa berfungsi dengan baik di lingkungan Windows. Rupanya Apache ini juga mudah beradaptasi dengan berbagai lingkungan.

Ok bro, dari tadi kita sudah terlalu sering menyebut-nyebut Apache. Tapi apa sebenarnya Apache itu, belum sempat di senggal-senggol. Ndon't (campuran antara logat jawa dan bahasa inggris, red) worry my friend. Pada bagian berikut ini, kita akan sedikit nyerita'in soal sejarah suku Apache... eh... salah ma'af... bukan suku... melainkan web server Apache. Ceritanye begini bro...

Sejarah Apache

Pada masa-masa awal dunia web baru mulai diperkenalkan... National Center for Super Computing Applications, atau disingkat NCSA, membuat sebuah progrram web server. Singkat cerita, akhirnya program itu menjadi program web server yang paling top. Itu terjadi di era awal tahun 1995-an.

However... akan tetapi... ntah kenapa, pada tahun itu juga pihak pengembang (pembuat) dari program web server ini, hengkang dari NCSA alias pecah kongsi. Dan tentu saja itu menimbulkan akibat yang fatal. Yaitu project yang sedang dikerjakan (program web server) menjadi terbengkalai. Padahal produk itu sudah pernah diluncurkan, dan dibeli banyak orang. Dan tentu saja hal itu berakibat buruk bagi para konsumen.

In the meantime... sementara itu, para pengguna yang sudah terlanjur menggunakan web server dari NCSA ini akhirnya menemukan cara untuk saling berbagi patches (perbaikan-perbaikan program) antar sesamanya. Hingga suatu hari mereka berpikir, alangkah baiknya jika dibentuk suatu forum. Dengan begitu, memudahkan mereka untuk saling berbagi dan bertukar informasi. Dan akhirnya... lahirlah Apache Group.

Dengan menggunakan kode-kode dari web server NCSA tadi, Apache Group akhirnya berniat untuk membuat sebuah web server baru. Lalu lahirlah Apache. Jadi singkatnya, Apache ini lahir dari hasil hubungan antara kode-kode murni dari web server NCSA, dengan patches-patches yang dibuat oleh para penggunanya. Tapi hanya dalam waktu tiga tahun, bayi Apache ini ternyata sudah mampu menjadi pemimpin untuk kategori web server.

Logo Apache di Belajar-yok.blogspot.comVersi yang paling awal dari Apache ini (0.6.2), pertama kali dipublikasikan pada April 1995. Sedangkan untuk versi 1.0-nya, dipublikasikan pertama kali pada 1 Desember 1995. Hingga saat ini, Apache Group itu masih terus berkembang, dan bergerak sebagai organisasi non-profit. Group ini sepenuhnya beroperasi melalui internet.

Walau memang tadinya Apache ini dibuat dan dikembangkan oleh Apache Group, namun sebenarnya hal itu tidak menghalangi bagi siapapun yang ingin ikut andil, dan mengembangkan Apache. Siapapun diperbolehkan melakukan berbagai inovasi dan perbaikan. Tapi tentu saja, keputusan terakhir yang akan menentukan standarisasi dari distribusi Apache, tetap berada di tangan Apache Group.

Sampai saat ini, sudah banyak developer software yang tertarik dan ikut mengirimkan berbagai bug fixes, atau perbaikan-perbaikan, serta pengembangan-pengembangan untuk Apache. Kode-kode tersebut mereka kirimkan ke Apache Group. Lalu Apache Group akan mengadakan penyelidikan, pengetesan, dan standarisasi mutu.

Jika memang ternyata kode tersebut lulus dalam uji standard, maka kode itu akan diintegrasikan pada distribusi Apache berikutnya. Nah, bagaimana dengan mu? Apakah dikau juga ingin ikut andil dalam pengembangan Apache? Atau mungkin kamu ingin bergabung dan menjadi bagian dari suku Apache?

Fasilitas-fasilitas Apache

Selain mengetahui alasan dan sejarah Apache, tentunya kita juga ingin tahu apa saja sih kelebihan-kelebihan, fitur-fitur, dan fasilitas yang bisa diberikan web server yang menggunakan Apache, betul? Berikut ini daftar fitur-fitur Apache yang terdapat didalam buku yang aye bace, enjoy aje ye.

  • Mensupport Protokol HTTP 1.1. terbaru. Apache adalah web server pertama yang terintegrasi dengan protokol HTTP 1.1. Apache sepenuhnya kompatible dengan standard baru dari HTTP 1.1 ini. Sementara itu, Apache juga tetap mempertahankan kompabilitasnya terhadap HTTP 1.0. Itu artinya, Apache ini sudah siap dengan semua fitur yang terdapat pada protokol terbaru (HTTP 1.1).

Misalnye? Sebelum dikeluarkannya HTTP 1.1., sebuah web browser harus menunggu response balasan dari web server terlebih dulu, kalo ingin mengirimkan request atau permintaan berikutnya. Itu artinya, web browser tadi hanya boleh mengirimkan satu request saja, dalam satu waktu.

Hal ini tidak perlu terjadi lagi pada HTTP 1.1, dan web browser bisa mengirimkan requestnya secara paralel. Itu artinya, banyak bandwidth yang bisa dihemat. Koq bisa? Yep, dengan mengirimkan request secara pararel, berarti web browser tidak harus menyertakan bagian header setiap kali merequest. Dan tentu saja, hal ini berpengaruh pada performa atau kecepatan.

  • Konfigurasi yang sederhana, namun penuh tenaga (powerfull). Apache memang tidak menyediakan graphical interface untuk mengkonfigurasi. Semua konfigurasinya diatur dalam sebuah file yang diberi nama: httpd.conf. Kita bisa mengubah konfigurasi dari Apache, yaitu dengan cara mengedit file ini. Hanya dengan text editor sederhana, kita sudah mengubah konfigurasi dari Apache.
  • Mensupport CGI (Common Gateway Interface). Apache mensupport CGI melalui modul-modul yang terdapat dalam file mod_cgi dan mod_cgid. Untuk lebih detilnya, akan dibahas secara terpisah.
  • Mensupport FastCGI. FastCGI ini ditujukan untuk mereka yang tidak menggunakan bahasa Perl. Dengan menggunakan modul yang terdapat dalam mod_fcgi, Apache membuat aplikasi yang berbasis FastCGI menjadi lebih cepat.
  • Mensupport Virtual Hosts. Apache juga menjadi salah web server pertama yang mendukung virtual hosts yang bersifat IP based, maupun virtual hosts yang bersifat named based. Untuk lebih detailnya... ntar aje ye.
  • Mensupport HTTP authentication. Autentifikasi berbasis web tingkat dasar juga disupport oleh Apache. Apache bisa mengimplementasikan autentifikasi ini menggunakan file-file password standard, DBMs, SQL, ataupun menggunakan program external.
  • Terintegrasi dengan Perl. Perl telah menjadi bahasa standard untuk pemrograman script CGI. Dan Apache merupakan salah satu faktor yang membuat Perl menjadi begitu populer. Dan sekarang, Apache lebih PerlFriendly lagi. Dengan modul-modul yang terpadat di dalam mod_perl, kita bisa mengupload script-script Perl kedalam memory, dan menggunakannya sesering yang kita mau.
  • Mensupport script PHP. PHP adalah bahasa script yang juga paling banyak di gunakan di internet. Dan Apache mensupport PHP dengan module-module yang terdapat dalam file mod_php. Untuk detailnya, tunggu artikel lanjutannya.
  • Mensupport Java Servlet. Java servlets dan Java Server Pages (JSP) adalah bahasa yang populer digunakan untuk membuat web page yang bersifat dinamik. Kita bisa menjalankan servlet ini di Apache dengan bantuan dari award-wining Tomcat environment. Detailnya? Tungguin aje!
  • Terintegrasi dengan Proxy Server. Apache juga bisa kita jadikan sebagai caching (forward) proxy server.
  • Status server dan log yang bisa di modifikasi. Apache memberikan kebebasan untuk memodifikasi sistem logging dan monitoring dari web server. Status ini bisa kita monitor dengan menggunakan web broser.
  • Mensupport Server-Side Includes (SSI). Detailnye nanti aje ye.
  • Mensupport Secured Socket Layer (SSL). Dengan Apache, kita bisa membuat website yang mendukung SSL, ini dimungkinkan berkat bantuan dari OpenSSL, dan module yang terdapat dalam mod_ssl. Sama... detailnye ntar aje.

So, sampai disini berarti perkenalan kita dengan Apache sudah selesai. Terus terang dan sumpah mati, aku masih belum mengerti maksud, arti, dan fungsi dari semua fitur yang ada diatas. Tapi berkat keberanian dan kenekatan ku untuk tetap menuliskannya, aku jadi makin tertarik dengan Apache ini.

Siapa tahu aja dengan mempelajari Apache ini akan ada gunanya. Untuk membuat website mungkin. Atau??? Gimana dengan mu bro? Apa koe juga tertarik untuk mempelajari teknologi Apache ini? Kalo emang iya, berarti kita bisa sama-sama dong. Sering-sering aje maen kesini. Jangan lupa oleh-olehnye ye.... sampai ketemu.