Transparent Proxy digunakan apabila kita ingin memaksa clients dalam network untuk menggunakan proxy tanpa sepengetahuan mereka. Maksudnya semua http request dari client secara otomatis akan diarahkan ke proxy terlebih dahulu (forwarded). Keuntungan lainnya, kita tidak perlu repot untuk melakukan setting/konfigurasi browser pada masing-masing client yang mungkin berjumlah banyak.Dalam FreeBSD kita dapat menggunakan IPFW dan SQUID untuk membuat Transparent Proxy. Contoh disini adalah transparent proxy yang berjalan pada Dial up gateway dengan menggunakan NATD dan SQUID sebagai HTTP proxy nya.

1. Menambahkan rule IPFW untuk forwarding.

Untuk mengaktifkan fungsi IPFW forward, pastikan bahwa sudah terdapat options IPFIREWALL_FORWARD pada file konfigurasi kernel. Seandainya belum ada, maka kita harus menambahkan options tersebut dan kemudian melakukan compile dan install kernel.

add 350 fwd 192.168.0.1,8080 tcp from 192.168.0.0/24 to any www

Rule diatas maksudnya, semua request http (port www) dari clients di forward/diarahkan ke port 8080 (port SQUID di 192.168.0.1). Berikut contoh IPFW rules sederhana untuk menjalankan NATD dan Transparent Proxy :

## ipfw rules
add 350 fwd 192.168.0.1,8080 tcp from 192.168.0.0/24 to any www
add 400 divert natd all from any to any via tun0
add 450 pass all from any to any via rl0
add 500 pass all from any to any via tun0

2. Edit squid.conf pada bagian HTTPD-ACCELERATOR

## HTTPD-ACCELERATOR OPTIONS
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on



3. Restart Squid dan coba matikan konfigurasi browser di client.

reference:
http://www.tldp.org/HOWTO/mini/TransparentProxy-2.html
http://infofreebsd.org/article.php?sid=234&mode=thread&order=0

Sebelum menginstall Apache dan PHP, yang harus diinstall terlebih dahulu adalah MySQL dan OpenSSL. Untuk menginstalasi kedua aplikasi ini di FreeBSD cukup mudah melalui ports.

 

Install MySQL

Installasi melalui port :

# cd /usr/ports/databases/mysql51-server

# make install all clean

# mkdir /var/db/mysql

# cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf

# /usr/local/bin/mysql_install_db

# chown -R mysql /var/db/mysql/

# chgrp -R mysql /var/db/mysql/

# /usr/local/bin/mysqld_safe –user=mysql &

 

Untuk mengaktifkan MySQL saat booting, buka file /etc/rc.conf dan tambahkan baris:

mysql_enable = “YES”

Lakukan Tes apakah mysql server kita sudah jalan atau belum :
# ps ax | grep mysql

 

Bila berhasil maka akan muncul tampilan seperti berikut :

630 con- I 0:00.02 /bin/sh /usr/local/bin/mysqld_safe -user=mysql

675 con- S 18:15.64 /usr/local/libexec/mysqld –basedir=/usr/local –data

15385 p0 R+ 0:00.00 grep mysql

Selanjutnya buat password untuk MySQL root user:

# sudo mysqladmin -u root password ‘password-root-mysql’

Coba masuk ke MySQL console dengan password root tersebut.

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 603704 to server version: 5.0.22

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> \q
Bye

 

 

 

 

 

 

 

 

 

 

Install OpenSSL

Langkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini menggunakan ports juga.

# cd /usr/ports/security/openssl
# make install clean

Buat direktori untuk menempatkan certificate SSL:

# mkdir -p /usr/local/openssl/{certs,private}

Kemudian generate private key 1024-bit:

# cd /usr/local/openssl
# /usr/local/bin/openssl genrsa -out private/namadomain.com.key 1024

Ubah permission untuk direktori private menjadi:

# chown -R root:wheel private
# chmod -R 600 private
# chmod u+X private

Generate Certificate Signing Request (CSR) File:

# /usr/local/bin/openssl req -new -key private/namadomain.com.key -out certs/namadomain.com.csr

Country Name (2 letter code) [GB]: ID
State or Province Name (full name) [Some-State]: Propinsi
Locality Name (eg, city) []: Kota
Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Nama Usaha
Organizational Unit Name (eg, section) []: Bidang Usaha Perusahaan
Common Name (eg, your name or your server’s hostname) []: namadomain.com
Email Address []: <!– var prefix = ‘&amp;amp;#109;a’ + ‘i&amp;amp;#108;’ + ‘&amp;amp;#116;o’; var path = ‘hr’ + ‘ef’ + ‘=’; var addy44102 = ‘p&amp;amp;#111;stm&amp;amp;#97;st&amp;amp;#101;r’ + ‘&amp;amp;#64;’; addy44102 = addy44102 + ‘n&amp;amp;#97;m&amp;amp;#97;d&amp;amp;#111;m&amp;amp;#97;&amp;amp;#105;n’ + ‘&amp;amp;#46;’ + ‘c&amp;amp;#111;m’; document.write( ‘‘ ); document.write( addy44102 ); document.write( ‘‘ ); //–>\n postmaster@namadomain.com <!– document.write( ‘‘ ); //–> This e-mail address is being protected from spam bots, you need JavaScript enabled to view it <!– document.write( ‘‘ ); //–>

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: masukkanpassword
An optional company name []:

 

Kemudian buat Certificate Signed (CRT) file:

# /usr/local/bin/openssl x509 -req -days 365 -in certs/namadomain.com.csr -out certs/namadomain.com.crt -signkey private/namadomain.com.key

Certificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.

 

 

 

Install Apache

Untuk Apache dan PHP download manual dan taruh pada directory /usr/local/src

# mkdir /usr/local/src (jika sudah ada lanjutkan ke tahap selanjutnya)

# cd /usr/local/src

# wget http://vinum.web.id/src/httpd-2.2.4.tar.gz

# tar –zxf httpd-2.2.4.tar.gz

# cd httpd-2.2.4

# ./configure –prefix=/usr/local/server/apache2 –enable-rewrite –enable-dav –enable-ssl –with-ssl=/usr/local/ –enable-vhost-alias –with-included-apr

# make

# make install

Keterangan dari masing-masing opsi di atas adalah:

–prefix=[DIR]: Menginstall aplikasi ke target direktori yang ditentukan.
–enable-rewrite: Mengaktifkan rule based URL manipulation melalui module mod_rewrite.
–enable-dav: Mengaktifkan protocol WebDAV melalui module mod_dav. Dengan protocol WebDAV ini memungkinkan membuat, memindah, menyalin, dan menghapus resource pada sebuah web server.
–enable-ssl: Mengaktifkan module SSL/TLS.
–with-ssl=[DIR]: Di mana library SSL/TLS diinstall.
–enable-vhost-alias: Support dengan banyak virtual host.
–with-included-apr: Install apr. APR atau Apache Portable Runtime pada Apache 2.2.x versi merupakan source yang sudah menyatu dengan Apache Source.

Install PHP

Sebelum menginstalasi PHP, di sarankan untuk menginstall aplikasi-aplikasi via ports yang diperlukan (recommended) PHP saat instalasinya. Aplikasi-aplikasi tersebut adalah:

- mcrypt (/usr/ports/security/mcrypt) dan libmcrypt (/usr/ports/security/libmcrypt)
- db4 (/usr/ports/databases/db4) dan gdbm (/usr/ports/databases/gdbm)
- gd (/usr/ports/graphics/gd)
- libxml2 (/usr/ports/textproc/libxml2)

Download sourcenya :
# wget http://vinum.web.id/src/php-5.2.0.tar.bz2

# tar -jxvf php-5.2.0.tar.bz2 (ekstrak filenya)

# cd php-5.2.0 (masuk ke directorynya)

# ./configure -with-apxs2=/usr/local/server/apache2/bin/apxs -with-mysql=/usr/local -with-openssl=/usr/local -with-config-file-path=/usr/local/server/apache2/conf -with-jpeg-dir=/usr/local/lib -with-png-dir=/usr/local/lib -with-gettext=/usr/local/lib -with-gd -with-zlib -with-xml -with-mcrypt=/usr/local/lib -enable-mbstring=all -disable-short-tags

# make

# make install

Keterangan dari masing-masing opsi di atas adalah:

–with-apxs2[=FILE]: Menyertakan shared Apache 2.0 Handler module.
–with-mysql[=DIR]: Menyertakan dukungan MySQL. DIR adalah di mana binary MySQL diinstall.
–with-openssl[=DIR]: Menyertakan dukungan OpenSSL.
–with-config-file-path=PATH: Di mana file php.ini akan diletakkan.
–with-png-dir[=DIR]: Menyertakan dukungan format file PNG.
–with-gettext[=DIR]: Menyertakan dukungan GNU gettext.
–with-gd[=DIR]: Menyertakan dukungan GD.
–with-zlib[=DIR]: Menyertakan dukungan zlib.
–with-libxml-dir[=DIR]: Menyertakan dukungan XML.
–with-mcrypt[=DIR]: Menyertakan dukungan mcrypt atau Multi-cipher cryptographic library.
–enable-mbstring: Mengaktifkan dukungan multibyte string.
–disable-short-tags: Nonaktifkan penggunaan tag pendek

 

Edit file /usr/local/server/apache2/conf/php.ini dan sesuaikan dengan kebutuhan. Pada dasarnya default file konfigurasi ini sudah cukup baik.

Karena PHP diinstall sebagai module pada Apache, kita perlu mengubah kepemilikan direktori PHP yang hanya akan mengijinkan akses kepada user root dan www saja.

# chown -R root:www /usr/local/lib/php
# chmod -R g-w,o-rwx /usr/local/lib/php

Edit file /usr/local/server/apache2/conf/httpd.conf dan ubah baris-baris berikut menjadi:


User www
Group www

ServerAdmin <!– var prefix = ‘&amp;amp;#109;a’ + ‘i&amp;amp;#108;’ + ‘&amp;amp;#116;o’; var path = ‘hr’ + ‘ef’ + ‘=’; var addy83260 = ‘h&amp;amp;#111;stm&amp;amp;#97;st&amp;amp;#101;r’ + ‘&amp;amp;#64;’; addy83260 = addy83260 + ‘n&amp;amp;#97;m&amp;amp;#97;d&amp;amp;#111;m&amp;amp;#97;&amp;amp;#105;n’ + ‘&amp;amp;#46;’ + ‘c&amp;amp;#111;m’; document.write( ‘‘ ); document.write( addy83260 ); document.write( ‘‘ ); //–>\n hostmaster@namadomain.com <!– document.write( ‘‘ ); //–> This e-mail address is being protected from spam bots, you need JavaScript enabled to view it <!– document.write( ‘‘ ); //–>
ServerName www.namadomain.com:80

DirectoryIndex index.html index.php


TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddHandler cgi-script .cgi

 

Aktifkan juga baris-baris berikut dengan menghilangkan tanda # di awal barisnya ( sesuaikan dengan kebutuhan):

Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf

Selanjutnya ubah permission direktori Apache:

# cd /usr/local/server

Ubah kepemilikan direktori apache2 ke user root:wheel

# chown -R root:wheel apache2

Ubah permission pada direktori apache2. Karena direktori ini kepemilikannya oleh root:wheel dan supaya bisa diakses oleh group www, kita ijinkan group www ini membaca dan mengeksekusi file-file di bawahnya.

# chmod 755 apache2

Selanjutnya pada direktori apache2 ini hanya akan mengijinkan user root saja untuk dapat membaca dan menulisinya dengan mengubah permission menjadi:

# chmod -R 600 apache2/*

Hanya user root saja yang dapat mengakses seluruh direktori yang berada di bawah direktori apache2:

# chmod -R u+X apache2
# cd apache2

Ubah kepemilikan direktori binary Apache ke user root:

# chmod -R u+x bin

Direktori cgi-bin juga berisi file-file binari. Hanya mengijinkan user root dan group www saja yang bisa mengaksesnya.

# chgrp -R www cgi-bin
# chmod -R u+x,g+x cgi-bin

Web server akan membaca direktori icons, maka ubah pula kepemilikannya agar bisa dibaca oleh group www.

# chgrp -R www icons
# chmod -R g+rX icons

Ubah juga permission direktori logs:

# chgrp -R www logs
# chmod g+wX logs

Terakhir ubah kepemilikan direktori htdocs agar bisa dibaca oleh publik. Direktori ini nanti merupakan tempat menyimpan file-file web yang akan ditampilkan pada browser. Akses penulisan ke direktori ini hanya dibatasi kepada user root saja.

# chgrp -R www htdocs
# chmod -R g+rX htdocs

Karena menginstall Apache dari source file. Kita harus membuat sendiri startup script-nya agar dapat dieksekusi oleh server pada saat booting. Start up script diletakkan di direktori /usr/local/etc/rc.d. Startup script dapat didownload di sini: Apache-2 FreeBSD Startup Script (http://rp25rb.files.wordpress.com/2006/11/apachesh.txt)

Kemudian tambahkan dua baris berikut pada file /etc/rc.conf:

apache2_enable=”YES”
apache2_flags=”-DSSL”

Ubah permission file start up script menjadi:

# chmod 555 /usr/local/etc/rc.d/apache.sh

Jalankan file tersebut untuk mengaktifkan daemon httpd:

# /usr/local/etc/rc.d/apache.sh start

Periksa apakah daemon httpd sudah aktif dengan command ps ax:

# ps ax | grep httpd

77429 ?? Ss 0:21.90 /usr/local/server/apache2/bin/httpd -k start

88206 ?? I 0:00.87 /usr/local/server/apache2/bin/httpd -k start

88207 ?? I 0:00.50 /usr/local/server/apache2/bin/httpd -k start

88208 ?? I 0:00.83 /usr/local/server/apache2/bin/httpd -k start

88209 ?? I 0:00.24 /usr/local/server/apache2/bin/httpd -k start

88210 ?? I 0:00.78 /usr/local/server/apache2/bin/httpd -k start

88211 ?? I 0:00.59 /usr/local/server/apache2/bin/httpd -k start

88212 ?? I 0:01.05 /usr/local/server/apache2/bin/httpd -k start

88213 ?? I 0:01.49 /usr/local/server/apache2/bin/httpd -k start

88497 ?? I 0:00.40 /usr/local/server/apache2/bin/httpd -k start

88785 ?? I 0:00.56 /usr/local/server/apache2/bin/httpd -k start

15546 p0 L+ 0:00.00 grep httpd

Bila output di console sudah seperti di atas, selamat! Anda sudah berhasil menginstall web server.

greetz thx to indofreebsd.or.id

Ketika kita melakukan query (bisa berupa ping, ssh, dig, host, nslookup, email, dan lain sebagainya) ke sebuah host misalnya ns1.vinum.web.id maka name server akan memeriksa terlebih dahulu apakah ada record host tersebut di cache name server lokal. Jika tidak ada, name serverlokal akan melakukan query kepada root server dan mereferensikan name server untuk TLD .id , name server lokal kembali melakukan query kepada name server .id dengan jenis query yang sama dan mereferensikan vinum.id . Name server lokal kembali melakukan query ke name server vinum.id dan mereferensikan query selanjutnya ke name server lokal yaitu ns1.vinum.web.id . Kemudian name server lokal melakukan query kepada name server lokal yaitu ns1.vinum.web.id dan akhirnya mendapatkan jawaban address yang diminta.Download Source Bindnya
————————
# cd /usr/local/src# wget http://vinum.web.id/src/bind-9.4.1-P1.tar.gz

# tar -zxf bind-9.4.1-P1.tar.gz

# cd bind-9.4.1-P1

# ./configure

# make && make install

# pw groupadd named

# pw useradd named -d /var/named -s /bin/false

# cd /var/named

# wget ftp://internic.net/domain/named.root

# vi db.127.0.0

==============isi file db.127.0.0==============
$TTL 86400
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS localhost.
1 IN PTR localhost.
=================EOF===========================

Kemudian salin file db.127.0.0 ke alamat network IP anda (bisa IP intranet atau IP yang anda dapatkan dari ISP anda), disini dimisalkan network yang akan kita reverse adalah 202.111.111.0/24 dan IP 202.111.111.1 adalah IP dimana software BIND akan kita install :

# cp db.127.0.0 db.202.111.111

Kemudian buat file yang berisi tentang zone dari localhost :

# vi db.localhost

Isi dari file db.localhost adalah :

====================db.localhost=========================
$TTL 86400
$ORIGIN localhost.
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS localhost.
IN A 127.0.0.1
===================EOF====================================

Buat file config untuk bind (named.conf)

# vi /usr/local/named/etc/named.conf

Isi dari file /usr/local/named/etc/named.conf adalah :

==================named.conf==============================
options {
directory “/var/named”;
allow-transfer { 202.111.111.2/32; }; #option ini dipakai untu secondary name server
pid-file “/var/named/named.pid”;
};

logging {
category lame-servers { null; };
};

zone “.” IN {
type hint;
file “named.root”;
};

zone “localhost” IN {
type master;
file “db.localhost”;
allow-update { none; };
};

zone “0.0.127.in-addr.arpa” IN {
type master;
file “db.127.0.0″;
allow-update { none; };
};

zone “111.111.202.in-addr.arpa” IN {
type master;
file “db.202.111.111″;
};
======================EOF====================================

Kemudian meng-generate file konfigurasi yang akan digunakan oleh program rndc, ingat hasil dari perintah rndc-confgen bisa jadi berbeda dengan apa yang ditampilkan disini :

# /usr/local/named/sbin/rndc-confgen

Kemudian copy-paste dari hasil perintah tersebut diatas mulai dari baris “# Start of rndc.conf” sampai dengan baris “# End of rndc.conf”, simpan dengan nama file /usr/local/named/etc/rndc.conf . Kemudian copy-paste lagi dengan menghilangkan tanda “#”, mulai dari baris “# key “rndc-key”…” sampai dengan baris yang hampir paling bawah diatas baris “# End of named.conf ” yaitu sampai dengan baris “};” kemudian tambahkan pada file /usr/local/named/etc/named.conf . Sebagai contohnya adalah sebagai berikut ini, isi dari file /usr/local/named/etc/rndc.confmisalnya :

# Start of rndc.conf
key “rndc-key” {
algorithm hmac-md5;
secret “2LCJImnMimOwc1odWR6jfg==”;
};

options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf

Sedangkan pada file /usr/local/named/etc/named.conf ditambahkan sebagai berikut :

key “rndc-key” {
algorithm hmac-md5;
secret “2LCJImnMimOwc1odWR6jfg==”;
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};

Lanjutkan dengan memberikan hak folder /var/named ke user named

# chown -LR named:named /var/named

Selanjutnya Jalankan Bind dengan perintah berikut ini :

# /usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf

OK pertama-tama yang harus disiapkan adalah all that’s make you comfort dude Pthen…

let’s go to work…

perlu di ingat untuk menjalankan denyhost diperlukan python, jika python belum terinstall maka install lah dulu pythonnya bro..

Step 1#
# cd /usr/ports/lang/python
# make install all

Silahkan tunggu sampai python terinstall (not using long time kok bro)

Next Destination adalah lanjutkan untuk denyhost…

Step 2#
perlu di ketahui bila kita belum melakukan port upgrades ada baiknya menginstall denyhost that’s the latest from denyhosts site..
versi terakhir yang saya gunakan dalam membuat tutor ini adalah DenyHosts-2.6.tar.gz
atau…

bisa juga anda gunakan versi ini, silahkan download dari site ini : http://www.vinum.web.id/src/DenyHosts-2.6.tar.gz

# cd /usr/local/src
# wget http://www.vinum.web.id/src/DenyHosts-2.6.tar.gz
# tar -zxf DenyHosts-2.6.tar.gz
# cd /usr/local/src/DenyHosts-2.6

Perlu di ingat untuk installasi ini di perlukan akses root..

# python setup.py install

tunggu sampai proses install selesai….

Selanjutnya adalah setting file configurasinya yang terdapat pada /usr/share/denyhosts

# cd /usr/share/denyhosts
# cp denyhosts.cfg-dist denyhosts.cfg

Sesuaikan dengan system anda dan kebutuhan anda bro..jika telah selesai jangan lupa meng-save nya…

Selanjutnya copy juga file jika kita ingin denyhosts running on daemon mode (recommended).
# cp daemon-control-dist daemon-control

Edit file daemon-control (cukup meng-edit file pada bagian atas) yaitu pada bagian :
###############################################
#### Edit these to suit your configuration ####
###############################################

DENYHOSTS_BIN = “/usr/bin/denyhosts.py”
DENYHOSTS_LOCK = “/var/lock/subsys/denyhosts”
DENYHOSTS_CFG = “/usr/share/denyhosts/denyhosts.cfg”

###############################################

Note : ON FreeBSD use this setting (valid for me bro)

###############################################
#### Edit these to suit your configuration ####
###############################################

DENYHOSTS_BIN = “/usr/local/bin/denyhosts.py”
DENYHOSTS_LOCK = “/var/run/denyhosts.pid”
DENYHOSTS_CFG = “/usr/share/denyhosts/denyhosts.cfg”
Selanjutnya make sure daemon-control script executable (by root)
# chown root daemon-control

# chmod 700 daemon-control

# cp /usr/local/src/DenyHosts-2.6/denyhosts.py /usr/bin/

Assuming you have configured DenyHosts to run as a daemon, you
can use the daemon-control script to control it:

# daemon-control start

Burnnnn dude…….

agar file daemon-control script autorun on system boot doing something like this :

# ln -s /usr/share/denyhosts/daemon-control /usr/local/etc/rc.d/

That’s it bro…Good Luck!

Sedikit mengenai Asynchronous JavaScript and XMLHTTP, atau disingkat AJaX, adalah suatu teknik pemrograman berbasis web untuk menciptakan aplikasi web interaktif. Tujuannya adalah untuk memindahkan sebagian besar interaksi pada komputer web surfer, melakukan pertukaran data dengan server di belakang layar, sehingga halaman web tidak harus dibaca ulang secara keseluruhan setiap kali seorang pengguna melakukan perubahan. Hal ini akan meningkatkan interaktivitas, kecepatan, dan usability, untuk lebih jelas (http://id.wikipedia.org/wiki/AJAX).

Disamping Kelebihan Ajax, tentu pasti ada kekurangannya, AJAX (Asynchronous JavaScript and XML) atau disebut juga Web 2.0, ternyata punya masalah utama yaitu tidak bersahabat dengan Search Engine, karena AJAX mengandalkan JavaScript dan CSS/XML. Ini artinya semua fitur AJAX tidak dapat di akses oleh search engine atau pengunjung yang men-disable javascript-nya.

AJAX (disisi user) merupakan alternatif untuk kenyamanan bagi user (Contohnya GMail), dimana browser tidak akan mengambil seluruh halaman, tapi hanya loading bagian yang perlu di ganti saja dari halaman tersebut. Sayangnya kenyamanan ini harus dibayar cukup mahal, karena search engine tidak akan mengenali seluruh isi dari website tersebut.

Dari sisi pandangan bisnis/marketing ini menjadi masalah besar karena tidak dapat ter-index secara baik oleh search engine. Bayangkan saja jika anda memiliki situs dengan banyak halaman, tapi yang terindex oleh search engine hanya halaman depan saja. Ini tentu saja akan mengurangi peluang dari calon pengunjung anda untuk dapat mencari situs anda melalui search engine.

Ya biar bagaimanapun bagi anda yang selalu ingin mencobanya ini contoh simple pembuatannya:

buat file ahah.htm…

<ul id="tabs">
 <li><a href="load('javascript.htm');">JavaScript</a></li>
 <li><a href="load('ahah.htm');">AHAH</a></li>
 <li><a href="load('ajax.htm');">AJAX</a></li>
</ul>

<div id="content"></div>

tambahkan pada tag <head> ahah.htm…

<script language="javascript" type="text/javascript" src="ahah.js"></scirpt>
<script language="javascript" type="text/javascript">
//Calls the library function 'ahah' - defined in 'ahah.js' file.
function load(filename) {
 ahah(filename,"content");
}
</script>

isi file ahah.js

function ahah(url, target) {
  document.getElementById(target).innerHTML = ' Fetching data...';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {ahahDone(url, target);};
    req.open("GET", url, true);
    req.send("");
  }
}  

function ahahDone(url, target) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200) { // only if "OK"
      document.getElementById(target).innerHTML = req.responseText;
    } else {
      document.getElementById(target).innerHTML=" AHAH Error:\n"+ req.status + "\n" +req.statusText;
    }
  }
}

file yang akan dipanggil javascript.htm…

<h1>JavaScript</h1>

<p><b><u>JavaScript</u></b> is Netscape's cross-platform, object-based scripting
language for client and server applications. It has dominated the world of internet scripting languages
for a long time now. With the arrival of new programming methods like <a class="tooltip"
title="AJAX : Asynchronous JavaScript and XML" href="http://en.wikipedia.com/wiki/AJAX">AJAX</a>,
it is much more popular now than ever before.</p>

<p>See the wikipedia article on <a  href="http://en.wikipedia.com/wiki/JavaScript">JavaScript</a>
 for more info on this language.</p>

Selesai “Selamat Mencoba…”
GBU