Kamis, 23 Mei 2013

DHCP

Lanjutan dari DNS

DHCP

Untuk menyetting dhcp kita harus menginstall dhcp server dengan cara mengetik apt-get install isc-dhcp-server pada  terminal

SOAL
Settinglah konfigurasi IP secara DHCP di mana server DHCP ada di dalam Elmo dengan ketentuan:
- host tom, jerry, spike, dan doraemon mendapatkan IP secara DHCP sesuai dengan IP yang sudah ditentukan di topologi
- untuk host snoppy dan woodstock:
- untuk soal DNS (IP di set secara statis)
- untuk soal DHCP, snoopy dan woodstock harus mendapatkan IP random
Untuk menyelesaikannya cukup merubah file di dhcpd.conf
vi /etc/dhcp3/dhcpd.conf
yang isinya dirubah menjadi seperti ini
- host tom, jerry, spike, dan doraemon mendapatkan IP secara DHCP sesuai dengan IP yang sudah ditentukan di topologi
itu diberi mac address dari masing-masing host seperti gambar diatas
Snoopy dan Woodstock tidak ditulis karena akan dibuat ip dinamis

setelah selesai jalankan
/etc/init.d/dhcp3-server restart




DNS


DNS

Sebelum nya kita harus menginstall bind9

apt-get install bind9 dnsutils

Contoh soal
    a.    Satu domain besar bernama klpxx.jarkom.com, yang ditangain oleh stitch (yang tergabung dalam domain ini adalah selain woodstock & Snoopy)
Clue:
Setelah menginstall pada tempat diatas, sekarang masuk kedalam server Stitch yang menangani domain besar bernama klpxx.jarkom.com.

untuk melakukan hal itu kita harus membuka file /etc/bind/name.conf.local
ànano /etc/bind/name.conf.local

dan mengisinya seperti screenshot di bawah ini

Lalu kita mengisi anggota dalam klpxx.jarkom.com di file db.klpc8.jarkom.com yang berada di stitch yang isinya
     b         Subdomain kartun.klpxx.jarkom.com, beranggotakan woodstock, yang ditangani oleh Stitch. Komputer woodstock akan bernama woodstock.kartun.klpxx.jarkom.com

nah disini kita isi file db.kartun.klpc8.jarkom.com yang berada di stitch



    c         Subdomain anime.klpxx.jarkom.com, beranggotakan snoopy, yang ditangani oleh elmo. Komputer snoopy akan bernama snoopy.anime.klpxx.jarkom.com


seperti soal sebelumya kita masukkan anggota ke db.anime.klpc8.jarkom.com di elmo
   d         woodstock.kartun.klpxx.jarkom.com akan menjadi slave untuk Anime.klpxx.jarkom.com
mengubah conf.local  di woodstock menjadi seperti ini
e.         Kalau melakukan ping ke admin.klpxx.jarkom.com maka akan mengarah ke Doraemon


Dengan cara menambah anggota admin pada db.klpc8.jarkom sudah ditunjukkan di gambar pada soal 1
hasilnya:

           f .Kalau melakukan ping ke dns.klpxx.jarkom.com maka akan mengarah ke Stitch
Dengan cara menambah anggota admin pada db.klpc8.jarkom sudah ditunjukkan di gambar pada soal hasilnya:

             g.         Elmo menjadi dns slave dari Stitch

mengubah conf.local pada elmomenjadi seperti ini:

1.     h. Buatlah ‘load balancing’. Sehingga jika kita ping ke server.klpxx.jarkom.com, maka akan muncul 2 IP server, yaitu IP Stitch dan IP Elmo

Tambahkan anggota server dengan ip Stitch dan juga elmo(lihat gambar pada soal a)
hasil:







Sabtu, 13 April 2013

bebrapa cara setting di apache


mod_dir memodifikasi direktori di apache


mod_dir digunakan untuk memodifikasi direktori yang ada seperti saat ketika kita mengakses ip_anda:80/example maka akan diarahkan ke ip_anda:80/example/example.html

contoh :

# Example A: Set index.html as an index page, then add index.php to that list as well.
<Directory /foo>
    DirectoryIndex index.html
    DirectoryIndex index.php
</Directory>

# Example B: This is identical to example A, except it's done with a single directive.
<Directory /foo>
    DirectoryIndex index.html index.php
</Directory>

# Example C: To replace the list, you must explicitly reset it first:
# In this example, only index.php will remain as an index resource.
<Directory /foo>
    DirectoryIndex index.html
    DirectoryIndex disabled
    DirectoryIndex index.php
</Directory>

mod_userdir  di apache

lakukan perintah : a2enmod userdir
kemudian edit script : nano /etc/apache2/mods-enabled/userdir.conf
hingga menjadi seperti dibawah ini

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
 
        <Directory /home/*/public_html>
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
       Order allow,deny
       Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
       Order deny,allow
       Deny from all
</LimitExcept>
        </Directory>

lakukan edit script : nano /etc/apache2/mods-available/php5.conf
hingga menjadi seperti ini dengan memberikan comment dengan "#"

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    #<IfModule mod_userdir.c>
    #    <Directory /home/*/public_html>
    #        php_admin_value engine Off
    #    </Directory>
    #</IfModule>
</IfModule>

lakukan restart pache dengan perintah : service apache2 restart
buat folder public_html di $user(root) dengan perintah : mkdir /home/$USER/public_html

akses melalui host/client dengan perintah : lynx 170.0.0.101/c8

configurasi webserver agar dapat menggunakan SSL pada Apache HTTP Server anda dengan studi kasus :  self-signed-certificate..

lakukan perintah : a2enmod ssl

buat folder dengan perintah : mkdir /etc/apache2/ssl

dapatkan certificate dengan perintah dibawah ini :
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key

isi setingan seperti dibawah ini :
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New Jersey
Locality Name (eg, city) []:Absecon
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SoftwareDev, LLC
Organizational Unit Name (eg, section) []:Web Services
Common Name (eg, YOUR name) []:archimedes.mydomain.com
Email Address []:support@mydomain.com


lakukan restart pada apache : service apache2 restart

untuk meng-enable ssl lakukan perintah : a2ensites default-ssl

edit script : nano /etc/apache2/sites-enabled/default-ssl
dengan menganti certificate file pakai :
/etc/apache2/ssl/apache.pem  
/etc/apache2/ssl/apache.key

untuk lebih lengkapnya liat di sumber sel-signed certificate ssl


cara install apache phpmyadmin mysql


Buka terminal dan jalankan perintah berikut :

sudo apt-get install apache2

Silahkan tunggu proses instalasi sampai selesai. Setelah itu buka browser anda dan ketikan http://localhost di address bar. Jika muncul gambar seperti dibawah, maka instalasi apache berhasil.

 

Buka terminal dan jalankan perintah berikut :
 
sudo apt-get install mysql-server

setelah beberapa saat instalasi MySQL berjalan, akan tampil permintaan password untuk user root. Silahkan masukan password yang anda inginkan. Lebih jelasnya lihat gambar berikut :


setelah itu akan tampil jendela untuk konfirmasi password. Silahkan masukkan password yang anda masukkan pertama kali. Lihat gambar!!



Setelah itu silahkan tunggu proses instalasi sampai selesai



Install PHPMyAdmin


Buka terminal dan jalankan perintah berikut :
 
sudo apt-get install phpmyadmin

Setelah beberapa saat proses instalasi berjalan, nanti akan tampil jendela Configuring Phpmyadmin. Silahkan pilih OK. Lebih jelasnya lihat gambar berikut :



Setelah itu akan tampil jendela Configuring Phpmyadmin lagi. Silahkan pilih NO. Lebih jelasnya lihat gambar berikut :


Setelah itu silahkan tunggu proses instalasi sampai selesai. Setelah proses instalasi selesai, selanjutnya jalan perintah berikut di terminal :
\

sudo cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
 kemudian restart apachenya

sudo /etc/init.d/apache2 restart

setelah selesai, ketikan http://localhost/phpmyadmin di browser anda untuk mengakses PHPMyAdmin. Berikut gambar jendela login dari phpmyadmin :



Silahkan masukan Username (root) dan password anda. Jika sukses akan tampil seperti gambar berikut :


Sekian tutorial Cara Install Apache, PHP, MySQL dan PHPMyAdmin Di Ubuntu. Jika terdapat kesalahan, saya mohon maaf dan kritik dan sarannya. Terima Kasih ..!! :)

 sumber http://rhosy18.blogspot.com/2012/10/cara-install-apache-mysql-php-dan.html

Java web server

Dalam paket java.io terdapat banyak sekali class – class yang berhubungan dengan input dan output. Oleh karena itu kita tidak mungkin akan membahas semua class tersebut satu persatu. Tetapi anda tidak perlu kawatir karena documentasi Java cukup mudah dipelajari dan hampir semua class pada paket java.io cara penggunaannya sederhana.
program ini membuka file yang berada di localhost ,menerima input dengan menggunakan browser
  try {
      s = new ServerSocket(1111); //kamu ganti port 80 atau lainnya gak masalah
    } catch (Exception e) {
      System.out.println("Error: " + e);
      return;
    }

    System.out.println("Waiting for connection");
    for (;;) {
      try {
          
        //menerima koneksi
        Socket remote = s.accept();
        
        //mengirim pesan
        System.out.println("Connection, sending data.");
        BufferedReader in = new BufferedReader(new InputStreamReader(
            remote.getInputStream()));
        PrintWriter out = new PrintWriter(remote.getOutputStream());

        //membaca permintaan pengguna di kolom url
        String str = ".";
        while (!str.equals(""))
          str = in.readLine();
         
        //membaca file dari input file
        File file = new File("D:\\smt 4\\Pweb\\Pemrograman Web C & D\\contoh\\1.html");
FileInputStream fis;

        fis = new FileInputStream(file);

   //isi dari permintaan pengguna
        
        out.println("HTTP/1.0 200 OK");
        out.println("Content-Type: text/html");
        out.println("Server: Bot");
        out.println("");
      //  out.println("<H1>Halo ITS!!!</H2>");
        
       


int content;
while ((content = fis.read()) != -1) {
// convert to char and display it
out.print((char) content);
}
         out.flush();
        remote.close();


untuk penjelasan mengenai fileinputstream baca di sini tutorial memakai fileinputstream

squid proxy


Squid Proxy adalah aplikasi komputer yang berfungsi untuk mempercepat koneksi internet serta menghemat penggunaan Bandwidth. Aplikasi ini sangat cocok untuk digunakan oleh para pengguna yang menggunakan koneksi dari kartu prabayar (modem) yang menggunakan paket kuota (bandwidth limited).

Fungsi Squid Proxy!!

Sebagian besar pengguna internet mungkin tidak menyadari bahwa setiap kali mengakses situs sebenarnya yang mereka lakukan adalah mendownload semua data berupa tulisan, link, teks, gambar dan file lain dalam halaman tersebut. Nah, data-data tersebut akan disimpan ke dalam komputer dalam bentuk cache sehingga pada saat berkunjung kembali ke situs tersebut, semua data yang terdapat dalam halaman tersebut tidak akan di download seluruhnya melainkan hanya beberapa update-an terbarunya saja dan sebagiannya lagi diambil dari cache yang tersimpan dalam komputer.

Cara (Tips Trik) Mempercepat Koneksi Internet Dengan Squid Proxy

 Cara install Squid Proxy

  1. Pertama-tama install terlebih dahulu squid melalui terminal atau melalui command prompt dengan cara :
    apt-get install squid
  2. Setelah selesai maka Squid langsung dapat di konfigurasikan dengan cara :
    nano /etc/squid/squid.conf
  3. Tetapi sebelum di edit terlebih dahulu backup dulu file aslinya agar kalau rusak bisa dikembalikan ke default :
    nano /etc/squid/squid.conf /etc/squid/squid.conf.bak
  4. Baru kemudian kita mulai bermain-main dengan konfigurasi script Squid :
    nano /etc/squid/squid.conf

 Cara Setting Configurasi Squid Proxy

Biasanya untuk mengatur kecepatan internet kita lakukan Filtering:

  1. Filtering : Ini merupakan bagian terpenting dari Squid, dengan ini kita bisa mngatur rule-rule, dari mulai siapa saja yang bisa mengakses internet sampai website apa yang diizinkan untuk di akses.Access List : Siapa saja yang dapat mengakses Internet
  • contoh perintah : acl c1 src 170.0.0.101
  • acl : merupakan perintah access list
  • user : nama user yang memiliki IP atau group
  • src : merupakan source ip yang digunakan, bisa menggunakan range jika ingin membuat group

         2. Filtering Waktu : Memberikan izin akses berdasarkan waktu dan hari
  • perintah : acl waktu-akses time MTWHFA 08:00-16:00
  • acl : perintah access list
  • waktu-akses : caption untuk perintah acl
  • time : perintah squid utk mendefinisikan waktu
  • MTWHFA : merupakan perintah squid untuk mendefinisikan waktu
  • M : Monday, T : Tuesday, etc…..
  • 08:00-16:00 : Merupakan waktu yang diperbolehkan untuk memberikan akses internet ke penggunaFiltering Website : Memfilter website apa saja yang tidak boleh diakses oleh pengguna.
  • misal kita melarang untuk mendownload file .pdf .mp3 dan .doc
  • acl file url_regex -i \.pdf$ \.doc$ \.mp3$
     3.Untuk membatasi kecepatan kita menggunakan delay pool
contoh:
delay_pool 1
delay_class 1 2 
                  delay_access 1 allow c1
                  delay_parameters 2500/2500 2500/2500

script di atas membatasi kecepatan user c1 menjadi max 2,5 KBps

4.Untuk membuat user lain dapat menggunakan proxy maka proxy harus di export terlebih dahulu dengan cara:
export http_proxy=ip_proxy:port_proxy

contoh screenshot


Sekian penjelasan squid proxy dari saya...


Rabu, 13 Maret 2013

tutorial crimping

alat alat:

1. Kabel UTP

2. Konektor RJ-45
[kabel2.jpg] 
3. Tang Crimping
[SC+LN224.jpg] 
4. LAN Tester (optional)
[kabel6.jpg]

Berikut urutan pengkabelannya : 1. Tipe pengkabelan straight
Kita akan coba membuat kabel straight, pertama kupas-lah pelindung luar kabel UTP lalu atur agar lurus kabel-kabel didalamnya. Urutkan posisinya berdasarkan diagram di bawah. Potong ujung kabel dengan gunting agar rata. Masukkan kedalam konektor RJ-45 lalu di crimping dengan tang crimping. Ikuti caranya untuk ujung kedua sama dengan langkah pertama. Masukkan ujung kedua kabel kedalam LAN-tester lalu periksa, jika semua lampu 1-8 terhubung maka kabel ini sudah siap kita pakai.

Urutan Ujung A 
1. Putih Orange 
2. Orange 
3. Putih Hijau 
4. Biru 
5. Putih Biru 
6. Hijau 
7. Putih Coklat 
8. Coklat 
Urutan Ujung B
1. Putih Orange
2. Orange
3. Putih Hijau
4. Biru
5. Putih Biru
6. Hijau
7. Putih Coklat
8. Coklat
2. Tipe Pengkabelan Cross
Untuk kabel cross juga sama seperti langkah diatas, hanya bedanya harap perhatikan salah satu ujung yang berbeda. Adapun standard per-kabelan ini yang dijaminkan adalah kurang lebh 100 meter, diatas 100 meter kemungkinan akan mengalami loss.
Jika ada yang bertanya bagaimana membedakan kabel straight dan kabel cross? Sebenarnya mudah saja, perhatikan ujung dari kedua kabel tersebut lihat diagram-nya bila yang pertama adalah putih orange lalu kedua putih orange juga sudah pasti itu kabel straight, sedangkan kabel cross salah satu ujungnya dimulai dengan putih hijau.
Urutan Ujung A 
1. Putih Orange 
2. Orange 
3. Putih Hijau 
4. Biru 
5. Putih Biru 
6. Hijau 
7. Putih Coklat 
8. Coklat 
Urutan Ujung B
1. Putih Hijau
2. Hijau
3. Putih Orange
4. Biru
5. Putih biru
6. Orange
7. Putih coklat
8. Coklat
B. Teknik Crimping
1. Siapkan bahan-bahan di atas.
2. Buka lapisan kebel UTP dengan gunting atau alat pemotong lain sesuai dengan ukuran pas agar dapat masuk ke RJ-45. 
3. Setelah itu buat susunan warna (tentukan cara pengkabelan cross atau straight) 
4. Potong susunan kabel tersebut (ratakan) dengan gunting atau tang crimping. 
5. Masukkan kabel UTP yang telah diratakan ke dalam RJ-45 dengan benar. 
6. Masukkan dan jepitkan kabel UTP dan RJ45yang telah disatukan pada lubang yang terdapat pada tang crimping.
7. Untuk pengecekan sambungan, masukkan kedua ujung kabel utp yang telah terpasang RJ-45 ke dalam LAN tester lalu periksa, jika semua lampu 1-8 menyala semua  maka kabel ini sudah siap kita pakai.
lan tester

tutorial filezilla


Setelah Install FileZilla selesai, anda bisa mulai menggunakan FileZilla untuk upload. Sebelummenggunakan FileZilla, carilah informasi berikut:



Username FTP

Password FTP

Alamat FTP (nama domain)

Port FTP (standar menggukana port 21)

Informasi diatas bisa didapat dari email dengan subjek “WELCOME MAIL”.



Login FTP



Jalankan aplikasi FTP FileZilla yang telah diinstall di komputer anda. Nanti akan muncul window seperti ini:

FileZilla

Isilah field-filed yang dibutuhkan dengan informasi FTP yang ada di “WELCOME MAIL”



Host dengan Alamat FTP

Username dengan Username FTP

Password dengan Password FTP

Port dengan Port FTP

Kemudian Klik Quick Connect.

tutorial wireshark(sniffing program)

cara menjalankan wireshark:

* Install dan Jalankan program wireshark
* Klik capture lalu option
* Pada Interfacenya pastikan yang dipilih adalah Ethernet Card anda yang menuju ke jaringan, bila bukan ganti dan cara untuk mengetahuinya adalah pilih salah satu kemudian lihat bawahnya pada tulisan ip addres: apabila status ip addresnya unknow, maka pilih intarface lainya dan pastikan ip addres anda tampil pada interface, maka pilih itu lalu klik start. 
* Klik tombol stop setelah anda merasa yakin bahwa ada packet yang masuk dan keluar selama anda menekan tombol start
* Anda bisa melihat semua jenis packet yang masuk dan keluar di jaringan
* Untuk menganalisis datanya klik kanan pada data yang ingin di analisis lalu klik “Follow TCP Stream” dan selamat menganalisis paketnya (melihat aktivitas vitctim)
* Yang jelas dari data itu pasti di dalamnya terdapat informasi2 yang dimasukkan victim ke website dan sebaliknya

Cara di atas hanya berlaku apabila jaringan anda adalah Hub bukan switch
Dari cara di atas anda dapat mengetahui bahwa jaringan anda adalah hub/switch dengan melihat pada kolom IP Source dan IP Destination. Bila pada setiap baris salah satu dari keduanya merupakan ip anda maka dapat dipastikan jaringan anda adalah jaringan switch, bila tidak ya berarti sebaliknya.

socket programming

code:
server
========================================================================

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * this program didn't stop automatically
 */

package socket;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author SONY
 */
public class Server {

    /**
     * @param args the command line arguments
     */
 
 
    public static void main(String[] args) throws IOException, IOException {
     
     
        int port=1234;
        ServerSocket server = new ServerSocket(port);
     
     
        while(true){
            try {
                System.out.println("Tunggu pesan .....");
                Socket socket = server.accept();
             
                ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
                String message=(String) ois.readObject();
             
         
                System.out.println("Pesan: "+message);
                if(message.equals("1")) {


                ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
                oos.writeObject("Menu:\n"
                        + "1.Lanjut\n"
                        + "2.Mutung\n");
                oos.flush();
                }
                else
                {ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
                oos.writeObject("Memutuskan segala hubungan kita");
                oos.flush();
               // break;
                 
                }
             
//                ois.close();
//                oos.close();
//                socket.close();
             
                System.out.println("Tunggu pesan dari client... ");
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
    }
}
========================================================================
client
========================================================================
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/*
 * this program will stop when your input == "2"
 */
package socket;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author SONY
 */
public class Client {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        while(true){
                try {
            // TODO code application logic here
        InetAddress host = InetAddress.getLocalHost();
        Socket socket = new Socket(host.getHostName(), 1234);
        
        ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
        
        Scanner sc = new Scanner(System.in);
        String input = sc.next();

        if(!input.equals("2"))
        {
            oos.writeObject(input);
        
        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
        String message = (String)ois.readObject();
        
        System.out.println("pesan: "+message);
        
        
        }
        else{
             oos.writeObject(input);
        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
        String message = (String)ois.readObject();
        
        System.out.println("pesan: "+message);
        break;
        }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnknownHostException ex) {
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
        }
    }
}
========================================================================Note :
  • program menggunkan bahasa pemrograman java 
  • contoh compiler yang dapat di gunakan :Netbeans
  • jalankan code server lalu jalankan code client

lapres modul 2 jarkom


SOAL PENDAHULUAN MODUL 2

WEB SERVER & WEB CACHE/PROXY SERVER
  1.    Apa yang dimaksud dengan web server? Jelaskan fitur-fitur standrad yang dimiliki web server dan beri contoh web server!
  2.       Apa yang kamu ketahui tentang proxy server? Jelaskan tentang squid proxy!
  3.      Buat diagram cara kerja web server dan proxy!
  4.      Tuliskan syntax dasar membuat host, router, server, dan switch pada UML!
  5.        Install apache pada linux Anda dan lakukan konfigurasi sehingga bisa berjalan dan bisa membuka PHP info pada browser!
  6.   Install dan konfigurasi squid proxy pada linux Anda sehingga tidak dapat digunakan untuk mengunduh file mp3, wmv dan avi dan bandwidth dibatasi hanya 10Kbps!
  7.    Apa yang dimaksud dengan forward proxy, reverse proxy, dan open proxy?
  8.   Apa yang dimaksud dengan normal proxy, intercept proxy, dan transparent proxy?


Jawab
1.    Suatu Program Komputer yang mempunyai tanggung jawab/tugas menerima permintaan HTTP dari komputer klien, yang dikenal dengan nama web browser, dan melayani mereka dengan menyediakan respon HTTP berupa konten data, biasanya berupa halaman web yang terdiri dari dokumen HTML, dan objek yang terkait seperti gambar, dll.

webserver memiliki fitur-fitur dasar yang sama seperti :

1. HTTP : Setiap program web server bekerja dengan menerima permintaan HTTP dari klien, dan memberikan respon HTTP ke klien tersebut. Respon HTTP biasanya mengandung dokumen HTML tetapi dapat juga berupa berkas raw, gambar, dan berbagai jenis dokumen lainnya. Jika terjadi kesalahan permintaan dari klien atau terjadi masalah saat melayani klien maka web server akan mengirim respon kesalahan yang dapat berupa dokumen HTML atau teks yang memberi penjelasan penyebab terjadinya kesalahan.
2. Logging : Umumnya setiap web server mempunyai kemampuan untuk melakukan pencatatan/logging terhadap informasi detil mengenai permintaan klien dan respon dari web server dan disimpan dalam berkas log, dengan adanya berkas log ini maka akan memudahkan web master untuk mendapat statistik dengan menggunakan tool log analizer. Pada penggunaan sehari-hari banyak web server mengimplementasikan fitur-fitur berikut :
1. Otentifikasi : fitur untuk mengotorisasi suatu permintaan dari klien sebelum menggunakan sumber daya yang dimiliki oleh web server (biasanya User dan Password)
2. Penanganan konten statis (berkas tersimpan pada file sistem server) dan konten dinamisdengan mendukung satu atau lebih antara muka yang sesuai (SSI, CGI, SCGI, FastCGI, JSP, PHP, ASP, ASP.NET, Server API seperti NSAPI, ISAPI dsb).
3. Dukungan HTTPS (dengan SSL, atau TSL) yang memungkinkan koneksi yang aman (dengan enkripsi) ke server pada port 433 berbeda dengan koneksi HTTP biasa di port 80
4. Kompresi Konten (misal menggunakan enkoding gzip) untuk mengurangi waktu respon server sehingga penggunaan pita data /Bandwith menjadi lebih hemat.
5. Virtual Hosting yang berguna untuk melayani banyak website hanya dengan menggunakan satu alamat IP.
Dukungan berkas berukuran besar, berfungsi untuk mendukung berkas yang memiliki ukuran lebih dari 2 gigabyte
7. Pengatur Bandwith (Bandwith throttlingyang berfungsi untuk membatasi kecepatan respon dengan tujuan tidak membanjiri jaringan dan menghemat pita data (bandwith) agar dapat melayani klien lebih banyak. Konten jawaban dari server web dibedakan menjadi :
1. Konten statis : biasanya berasal dari berkas yang telah ada pada server web
2. Konten Dinamis : dikatakan konten dinamis jika terjadi perubahan secara dimanis atas isi dari web baik dilakukan oleh program lain, script atau Application Program Interface (API) yang dijalankan oleh server web. Server dengan konten statis biasanya lebih cepat dari yang berisi konten dinamis (2 s.d. 100 kali Lebih cepat), terutama dalam menangani pengambilan data dari database.

Macam – macam Web Server diantanya:
1.Apache Tomcat
2.Microsoft windows Server 2003 Internet Information Services (IIS)
3.Lighttpd
4.Sun Java System Web Server
5.Xitami Web Server
6.Zeus Web Server
Namun web yang terkenal dan yang sering digunakan adalah Apache dan Microsoft Internet Information Service (IIS).

2..    Pengertian dari proxy
 yaitu sebuah komputer server yang bertindak sebagai komputer lainnya untuk menerima / melakukan request terhadap kontent dari sebuah jaringan internet atau intranet.  Proxy server bertindak sebagai gateway untuk setiap komputer klien. Web Server yang menerima permintaan dari web proxy akan menerjemahkannya, dan seolah-olah permintaan tersebut langsung dari komputer klien.
 Proxy, Server, IP
Proxy server juga bisa berfungsi untuk mengamankan jaringan pribadi yang terhubung langsung ke  jaringan publik. Proxy server bekerja dengan mendengarkan permintaan-permintaan dari klien internal dan mengirimkannya ke jaringan external, seolah-olah proxy server tersebut menjadi klien. Ketika proxy server menerima respon dari server publik ia akan memberikan repon tersebut ke klien asli, seolah-olah ia publik server.
 Squid adalah sebuah aplikasi server yang stabil dengan performance yang tinggi, selain juga free alias gratis karena open source software, dan juga merupakan aplikasi web proxy yang fleksibel untuk digunakan sebagai web cache.
Secara umum fungsi atau kegunaan Squid dapat dibagi ke dalam dua fungsi penting, yaitu:
Pertama, Squid server menerima permintaan-permintaan halaman (object) web dari client dan mengambilkan halaman (object) web untuk diberikan kepada client. Oleh karena itulah Squid berlaku sebagai Proxy.
Kedua, Squid server menyimpan dan memberikan halaman-halaman (objects) web yang diminta client dari media penyimpanan lokal (local disc) setelah suatu permintaan yang pertama kali terhadap halaman (object) web terpenuhi, sehingga permintaan yang sama terhadap halaman web tersebut berikutnya tidak perlu diambil secara langsung ke website server melainkan dapat diambil dari halaman (object) web yang telah tersimpan di local disk. Hal inilah yang sering disebut dengan fungsi “caching” dan disebut web cache.
Jadi…Proxy adalah sebuah fungsi, sedangkan squid adalah software yang menjalankan fungsi proxy.

3.     Cara Kerja Web Server
Webserver 300x155
Penjelasan gambar:
1.    Client disini dapat berupa komputer desktop dengan minimal memiliki browser dan terhubung ke web server melalui jaringan (intranet atau internet).
2.    Komputer yang berfungsi sebagai server, dimana didalamnya terdapat perangkat lunak web server. Agar komputer ini dapat diakses oleh client maka komputer harus terhubung ke jaringan (intranet atau internet). Dalam jaringan internet, komputer ini bisa saja bernama www.google.comwww.bl.ac.id, atau memiliki kode komputer (disebut IP Address) seperti 202.10.20.10 dan 200.100.50.25.
3.    Pertama-tama, client (user) akan meminta suatu halaman ke (web) server untuk ditampilkan di komputer client. Misalnya client mengetikkan suatu alamat (biasa disebut URL) di browser http://www.google.com. Client menekan tombol Enter atau klik tombol Go pada browser. Lalu apa yang terjadi? Melalui media jaringan (bisa internet, bisa intranet) dan melalui protokol http, akan dicarilah komputer bernamawww.google.com. Jika ditemukan, maka seolah-olah terjadi permintaan, “hai google, ada client yang minta halaman utama nich, ada dimana halamannya?”. Inilah yang disebut request.
4.    Sekarang dari sisi server (web server). Mendapat permintaan halaman utama google dari client, si server akan mencari-cari di komputernya halaman sesuai permintaan. Namanya juga mencari, kadang ketemu, kadang juga tidak ketemu. Jika ditemukan, maka halaman yang diminta akan dikirimkan ke client (si peminta), namun jika tidak ditemukan, maka server akan memberi pesan “404. Page Not Found”, yang artinya halaman tidak ditemukan.
Cara Kerja proxy server
Penjelasan Diagram jaringan dan cara kerja proxy server

Lihat diagram diatas, posisi proxy ada di jaringan terpisah yang biasa disebut DMZ (de Military zone). Cara kerja dari jaringan ini adalah, ketika ada permintaan website (misal detik.com) ke gateway(router mikrotik), mikrotik akan meredirect permintaan tersebut ke ip proxy (172.16.133.109) port 3128 (port dimana service  squid bekerja). jika di cache proxy sudah terdapat file cache dari detik.com maka proxy langsung memberikannya ke client. Nah disini kelihatan manfaatnya bukan? user akan merasa akses internetnya lebih cepat dari biasanya.