Tampilkan postingan dengan label Programming. Tampilkan semua postingan
Tampilkan postingan dengan label Programming. Tampilkan semua postingan

Senin, 15 Februari 2016

Membuat Aplikasi Enkripsi Vigenere Berbasis Java


Beberapa waktu yang lalu, saya mendapatkan tugas dari kuliah Keamanan Jaringan. Yah, bisa dibilang kalau mata kuliah ini adalah mata kuliah wajib. Jadi, mau nggak mau harus diambil. Dalam mata kuliah ini dijelaskan bahwa setiap data yang lalu lalang di dalam jaringan tidak selalu aman. Oleh karena itu, dibutuhkan tindakkan pengamanan. Langkah pengamanan ini meliputi pengunaan ptotokol jaringan aman atau pengenkripsian data.


Apa itu enkripsi?
Ada banyak sekali algoritma pengenkripsian data. Namun, secara garis besar dapat digolongkan menjadi 2 bagian, yaitu enkripsi simetris dan asimetris. Letak perbedaan dari keduannya adalah pada kuncinya (key).


Pada enkripsi simetris, kunci yang digunakan untuk mendekrip sama dengan kunci untuk mengenkrip. Sehingga, apabila pihak luar mengetahui algoritma sekaligus kuncinya maka pesan dapat diketahui. Enkripsi ini sering disebut enkripsi klasik. Berbeda pada enkripsi asimetris. Enkripsi asimetris melibatkan dua kunci untuk saling mengenkripsi dan mendekripsi. Kunci yang pertama digunakan untuk mengenkripsi, disebut public key. Public key ini akan digunakan oleh pengirim pesan untuk mengenkripsi pesan. Walaupun orang lain mendapatkan public key ini, orang tersebut tidak bisa menerjemahkan chippertext-nya. Dipihak penerima, terdapat sebuah kunci yang disebut private key. Private key ini berfungsi untuk mendekrip pesan yang dikirimkan oleh pihak lainnya. Private key ini bersifat rentan, sehingga pihak penerima tidak boleh membiarkan pihak lain mengetahuinya.


Terdapat banyak algoritma dari enkripsi simetris. Salah satunya adalah algoritma Vigenere. Algoritma ini merupakan algoritma yang telah lama dipakai. Vigenere ditemukan oleh Giovan Battista Bellaso pada abad 19.


Vigenere Chiper
Itu tadi adalah sepintas mengenai enkripsi dan Vigenere Chiper. Selanjutnya adalah paparan mengenai bagaimana cara membuat enkripsi dan dekripsi Vigenere Chiper menggunakan bahasa pemrograman Java.


Berikut langkah-langkah yang harus dikerjakan:
1. Menentukan jenis karakter (Apakah ASCII ataukah beberapa karakter yang telah ditentukan)
2. Mernentukkan jumlah dari karakter total
3. Menuliskan daftar fungsi-fungsi yang kemungkinan dipergunakan.
4. Menuliskan Kode pokok
5. Menuliskan Kode tambahan (Interface dan I/O)


Pembahasan
Langkah 1 (Membuat Class Vigenere)
Jika menggunakan karakter yang terbatas, karakter tersebut harus didefinisikan dahulu dalam sebuah kamus yang berbentuk String. Selanjutnya, dapat di loop sepanjang length. Pembatasan karakter ini, akan mengakibatkan kegagalan dekripsi jika user memasukkan karakter tidak ada dalam kamus. Walaupun begitu, tidak ada salahnya jika jenis Vigenere ini dibuat.


Langkah 2 (Menentukan Jumlah Karakter)
Untuk aplikasi yang menggunakan kamus, dapat digunakan sytax length dalam menentukkan jumlah huruf. Sedangkan untuk ASCII, jumlah karakter total adalah 256.


Langkah 3 (Menuliskan Daftar Fungsi)
Fungsi-fungsi yang kemungkinan digunakan adalah:
1. Looping untuk mengulang huruf dalam kalimat yang akan dienkripsi (looping kalimat)
2. Fungsi untuk mengecek karakter spasi didalam looping
3. Looping untuk mengulang kunci yang ada didalam looping kalimat
4. Fungsi untuk mengkonversi dari alfabet menjadi integer agar dapat dihitung
5. Fungsi menghitung
6. Fungsi untuk mengkonversi dari integer menjadi alfabet
7. Fungsi main


Langkah 4 (Menuliskan Kode)
Nah, berdasarkan daftar fungsi diatas kita bisa maka sytax dari kode diatas adalah sebagai berikut:


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


/**
*
* @author blackhiden.blogspot.com
*/

public class Vigenere {
  private String Input; //Input teks
  private String Output; //Output teks
  private String Key; //Key dari enkripsi Vigenere
  private final int PanjangKamus = 51; //jumlah dari kamus
  //kamus yang dipergunakan A-Za-z
  private final String Kamus = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
     
  public Vigenere(){
  }

   public String getInput() {
       return Input;
   }

   public String getOutput() {
       return Output;
   }

   public String getKey() {
       return Key;
   }

   public void setInput(String Input) {
       this.Input = Input;
   }

   public void setOutput(String Output) {
       this.Output = Output;
   }

   public void setKey(String Key) {
       this.Key = Key;
   }
   
   
  
  
  
  //merubah char
  private int chartoInt(char inKey){
      int k = 0;
      for (int i = 0; i < Kamus.length(); i++) {
          if (inKey == Kamus.charAt(i)) {
              k = i;
              break;
          }
      }
      return k;
  }
  //Enkripsi
  public String VigenereEn(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') { //cek spasi agar struktur huruf tidak berubah
              Output += " ";  
          } else {
              if (k < Key.length()) {
              h = hitungVi(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungVi(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  public String VigenereDe(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') {
              Output += " ";
          } else {
              if (k < Key.length()) {
              h = hitungViDe(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungViDe(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  private int hitungVi(int p, int k){
      int o = (p + k) ;
      if (o > PanjangKamus) {
         o %= PanjangKamus;
          System.out.println(o);
      }
      return o;
  }
  
  private int hitungViDe(int p, int k){
      int o = (p - k);
      if (o < 0) {
          o += PanjangKamus;
      }
      return o;
  }
  
   
}


Langkah 5 (Tampilan dan I/O)
Untuk terakhir, anda bisa membuat interface untuk I/.O.


Semoga anda paham dan mengerti.

Selamat ber-coding ria.

Kamis, 19 November 2015

Menginstal Java Development Kit (JDK) .tar.gz pada Linux Debian

Menginstal Java Development Kit (JDK) .tar.gz pada Linux Debian


Java Development Kit (JDK) merupakan sekumpulan aplikasi yang digunakan dalam pembuatan aplikasi berbasis Java. Pada dasarnya instalasi JDK pada Linux Debian (Kali Linux 1.1.0 Moto) sangat mudah, karena instalasinya dapat dilakukan dengan paket dari debian. Namun untuk JDK saat ini (versi 1.8_6x) hanya dapat dilakukan instalasi secara binari.

Paket binari yang disediakan oleh oracle berbentuk archive dengan format .tar.gz. Oleh karena itu, ada cara khusus dalam melakukan instalasi JDK pada Linux.

Langkah 1
Download dahulu paket binarinya pada website resminya. Untuk mengetahui paket terbaru JDK, silahkan kunjungi link DISINI (Jangan lupa Accept License Agreement)



Langkah 2
Buat direktori pada /opt/jdk
mkdir /opt/jdk 
Direktori ini nantinya akan digunakan untuk menyimpan file-file binari JDK


Langkah 3
Ekstrak file .tar.gz nya pada direktori /opt/jdk 
tar -zxf -C /opt/jdk
Pastikan tidak terjadi error (ditandai dengan standard output error pada shell) saat ekstraksi. Lihat hasilnya dengan:
ls /opt/jdk



Langkah 4
Install Java pada update-alternatives agar compiler dan intepreter mengarah pada folder yang tepat. Masukkan perintah:
update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_65/bin/java 100
update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_65/bin/javac 100
Langkah 5
Aktifkan Java yang baru saja diinstall dengan perintah
update-alternatives --config java
update-alternatives --config javac
Pada masing-masing perintah di atas, anda akan disuruh untuk memasukkan nomor. Masukkan saja nomor yang merujuk pada JDK yang baru aja baru saja anda install.


Setelah tahap ini, anda sudah bisa menggunakan Java dengan versi yang baru saja anda install. Untuk memasitkan versinya, masukkan saja perintah:
java -version
javac -version
Itu saja yang bisa saya sampaikan, semoga bermanfaat.








Selasa, 26 Mei 2015

Macam-Macam Web Server




Dari sekian banyak distro Linux, kebanyakan dari mereka menggunakan Apache sebagai web server. Bahkan untuk Kali Linux saja, Apache adalah web server default. Apache memang web server yang bagus. Selain gratis, dia juga powerful, handal dan keamanannya terjamin. Fitur-fitur tersebut haruslah didukung dengan resource yang memadai, sehingga dia sulit untuk berjalan pada resource yang terbatas (misalkan perangkat embeded system).

Berikut ini merupakan daftar-daftar web server yang mempunyai fitur hampir sama dengan Apache, namun membutuhkan sumber daya yang minimal.

1. Nginx



Nginx (baca: Engine-x) menjadi salah satu web server yang paling penting dan juga populer di beberapa tahun terakhir ini. Dia tidak lagi menggunakan arsitektur standard thread ataupun process oriented melainkan scalable, artinya penggunaanya dapat disesuaikan serta berarsitektur event-driven (asynchronous). Sehingga penggunaannya sangat cocok untuk perangkat yang mempunyai keterbatasan sumber daya.

Nginx juga menyediakan fitur simple load balancing, fault tolerance, auto-indexing, virutual server (baik hosname ataupun IP-based). Dia juga bisa berfungsi sebagai reverse proxy ataupun server IMAP/POP3.

Nah, Nginx ternyata juga digunakan pada web-web yang mempunyai reputasi tinggi, seperti: Netflix, Hulu, Pinterest, Wordpress.com, dan Airbnb

Hal terpenting dari web server ini adalah walaupun dia berjalan dengan ringan bukan berarti dia mempunyai performa seperti web server yang ringan pada umumnya. Dia tidak hanya berjalan pada server yang mempunyai resource terbatas, tapi juga menyediakan modul-modul serta add-on pilihan. Anda dapat mendownload versi pre-build package nya untuk Linux dan BSD untuk kemudahan instalasi ataupun kostumisasinya.

Nginx cocok untuk siapa?

Apabila anda ingin membangun mini web server untuk server pribadi anda, mungkin ini adalah salah satu pilihan anda.

Jika dibandingkan, file instalasi Nginx mempunyai ukuran 10MB sedangkan Apache 30MB dan dia berjalan 35 persen lebih efektif dari pada Apache.

2. Lighttpd



Fly light - Itulah moto yang dipegang oleh Lighttpd. Karena ringannya, dia menjuluki dirinya terbang bagaikan cahaya. Nah, Lighttpd merupakan solusi terbaik bagi mereka yang terjebak dalam masalah loading.

Lighttpd merupakan salah satu web server yang cocok untuk perangkat embedded system. Pada kenyataannya, kebanyakan embedded system juga sudah mengaplikasikan Lighttpd sebagai web server default, seperti Rasberry Pi dan Openwrt.

Lighttpd menawarkan memory manajemen dari pemakain CPU, FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting, dan banyak lagi. Walaupun dia mempunyai fitur yang banyak, dia tetap masih bisa melayani sepuluh ribu client secara simultan (berkelanjutan). Fitur FastCGI nya dapat dikonfigurasikan agar mensupport PHP, sehingga dia tidak hanya berjalan pada skrip CGI saja. Web server ini juga support WebDNA (bahasa pemrograman server dengan databases system) sehingga anda dapat menggunakan web dinamis berbasis database.

Lighttpd cocok untuk siapa?

Jika anda sedang membangun sebuah perangkat embedded system (dimana sumber dayanya begitu terbatas) dan pada saat itu juga anda membutuhkan web server, Lighttpd yang seharusnya anda pakai. Lighttpd sangatlah simpel dan mudah untuk dikonfigurasi. Dia hanya mempunyai satu file konfigurasi (.conf)

3. Monkey



Seperti halnya Lighttpd, Monkey HTTP Daemon merupakan sebuah web server yang ditujukan untuk embedded system. Monkey mempunyai beberapa fitur unik, yaitu: Virtual Host, Plugins Support, C API Interface dan HTTP/1.1. Plugin Monkey memang tidak tersedia secara bebas, seperti halnya web server lain. Namun, untuk plugin yang simple mungki memang disediakan, seperti: CGI, SSL, plugin keamanan, log writer, directory listing, serta akses shell.

Monkey sebenarnya, disedikan untuk server yang menjalankan konten statis. Jadi, ucapkan selamat tinggal untuk PHP, Perl, Python atau Lua. Walaupun begitu, Monkey masih tetap menyediakan akses dinamis dengan fitur FastCGI Interface. Monkey juga menyediakan framework C yang bernama DUDA I/O agar lebih terlihat profesional dan terjangkau (misalnya untuk menangani big data, home automatitation atau usaha pegadaian secara online).

Ukuran file binary-nya cukup kecil, sekitar 100KB, dan 250KB setelah instalasi. Kecil bukan? Monkey juga mensupport prosesor arsitektur ARM, x86 dan x68 sehingga dia dapat digunakan secara luas untuk banyak platform embedded system.

Monkey cocok untuk siapa?

Untuk penggunaan yang simple, instalasi yang mudah dan kebutuhan performa dari konten statis, Monkey sudah sulit untuk dikalahkan.

4. Cherokee



Adalah sebuah web server yang mudah, ringan dan dapat berjalan antar platform (Linux, Mac, Solaris BSD) yang mendukung banyak fitur-fitur terkini.  Selain itu, Cherokee juga mendukung: FastCGI, SCGI, PHP, uWSGI, SSI, CGI, LDAP, TLS/SSl, HTTP proxy, video streaming, content caching, traffic shaping dan lain-lain. Cherokee juga menyediakan setting berbasis web.

Cherokee menyediakan sebagian kecil framework webapps, meliputi: PHP, Ruby on Rails, ColdFusion, GlassFish dan Django.

Sebenarnya, ada sedikit masalah dengan Cheroke dan bisa jadi ini masalah yang agak rumit. Rilis update terakhir adalah Oktober 2011 dengan begitu Cherokee benar-benar tidak terupdate. Servernya memang masih hidup, hanya saja dia menawarkan update keamanan dan patch saja.

Cherokee cocok untuk siapa?

Jika anda mencari sebuah web server yang mudah untuk dikonfigurasikan, dapat berjalan antar platform dan anda tidak pernah mempermasalahkan tentang update, maka Cherokee cocok untuk anda.

5. Hiawatha



Merupakan sebuah web server yang ringan, bersifat open source dan menitik beratkan pada keamanan dan kemudahan dalam menggunakannya. Web server ini memang tidak di desain untuk embedded system, namun jangan menyangka jika Hiawatha mempunyai fitur yang lengkap untuk digunakan dalam membangun web server dinamis. Beberap fiturnya meliputi: load balancing, FastCGI, large file support, reverse proxy, chroot support, rewrite support, SSL/TLS, basie/digest HTTP authentication, IPv6 support, virtual hosting dan lain-lain.

Oke, untuk fitur keamanannya gimana?
Hiawatha sudah mampu menangi SQL Injection, XSS, serangan CSRF, Image hotlink, serta memblok akses-akses yang mempunyai potensi dalam upaya pembobolan web server. Disertakan juga sebuah tool monitoring yang memungkinkan anda untuk memantau segala aktifitas  web server tersebut.

Hiawatha memang tidak cocok untuk embedded system, karena fitur "ringan" nya memang tidak sesuai dengan sumber daya perangkat embedded system. Namun, jika perangkat tersebut memang mengedepankan keamanan, jangan pernah meremehkan Hiawatha.

Hiawatha cocok untuk siapa?
Jika anda membutuhkan web server yang tangguh, baik itu untuk perangkat standar server ataupun embedded system dan membutuhkan tingkat keamanan yang tinggi, Hiawatha merupakan web server yang sempurna untuk anda.

Saat kita memilih sebuah web server, pilihan yang pertama kali ada dibenak adalah Apache.  Tapi, adakalanya Apache tidak dapat memenuhi kebutuhan dan keinginan kita, sehingga kita juga harus mengetahui , alternatif apa saja yang mungkin tersedia. Sesuaikan dengan kriteria kondisi server anda, misalkan server anda adalah embedded system, standart server. Atau mungkin anda sedang mencari web server yang cocok untuk test environment bersifat open source. Anda bisa memilih salah satu web server diatas, kemudian silahkan diuji, apakah web server tersebut sudah memenuhi kriteria anda.



Sumber:
Linux.com

Sabtu, 31 Agustus 2013

PHP (Hypertext Preprocessor)


Assalamua'alaikum Warohmatullahi Wabarokatuh.
Bagi anda yang seorang Progammer baik handal atau masih pemula, anda tentu tahu apa itu PHP (kalo yang ini bukan singkatan dari "Pemberi Harapan Palsu" :lol:). PHP yang ini mengacu pada sebuah bahasa pemrograman berbasis web based yang berjalan pada server-side dan sering dibuka dengan webbrowser pada client. Skrip PHP biasanya disisipkan dalam kode html. PHP akan dieksekusi pada server dan di rubah kedalam html kemudian dikembalikan ke client. Itulah mengapa, web yang dibangun dengan bahasa PHP akan nampak dinamis serta dapat dikatakan bahwa web dapat berinteraksi dengan client-side. Berbeda sekali dengan bahasa html yang bersifat statik.

Sejarah Bahasa PHP

Bahasa PHP sendiri diciptakan oleh Bapak Rasmus Ledorf ( 22 November 1968 di QeqertarsuaqGreenland). Beliau bekerja di perusahaan besar search enginee, Yahoo! sebagai insinyur arsitek infrastruktur. Beliau adalah mahasiswa lulusan Universitas Waterloo. Awalnya, dia menciptakan bahasa ini untuk mengetahui jumlah pengunjung pada web pribadinya. Itulah mengapa bahasa pemrograman ini di namakan PHP (Personal Homepage), namun seiring dengan penyebaran dan populernya bahasa ini, maka PHP disebut sebagai Hypertext Preprocessor dan berlisensikan open source.



Awal pembuatan PHP, bahasa ini dinamakan Form Intepreter yang berupa sejumlah skrip yang membentuk kesatuan form pada web. Selanjutnya Pak Rasmus melanjutkan pengerjaan bahasa ini dan merilis PHP/FI. Inilah yang menjadikan awal PHP berlisensi open source. Hal ini sangat menarik bagi para programmer muda untuk berkontribusi mengembangkan PHP.

November 1997, PHP/FI telah mencapai versi 2.0. Pada versi ini, penerjemahan PHP dapat diimplementasikan pada pemrograman C, juga disertakan modul-modul ekstensi guna meningkatkan kemampuan PHP/FI secara optimal.

Di akhir tahun 1997, Sebuah perusahaan bernama Zend ikut mengembangkan bahasa ini dan hasilnya bahasa ini sangat bersih, mudah dipahami dan lebih cepat. Dengan itu, pada tahun 1998 perusahaan Zend meresmikan PHP 3.0 dengan intepreter baru yang telah diperbaiki. Tidak hanya itu, nama PHP/FI menjadi PHP dan akronimnya menjadi Hypertext Proprocessor.

Di pertengahan 1999, Zend meresmikan PHP 4.0 sebagai intepreter PHP baru. Versi ini merupakan versi yang paling banyak digunakan di abad ke-21 ini. Selain mudah, dalam pembangun web yang kompleks sekalipun, dia masih mempunyai stabilitas dan kecepatan yang tinggi.

Perombakan besar terjadi di tahun 2004, seiring rilisnya PHP 5.0 inti dari intepreter ini adalah menggunakan model pemrograman berorientasi projek yang akhir-akhir ini juga semakin populer.

Yang Dibutuhkan Agar PHP Berjalan Semestinya

Karena PHP berjalan pada server-side, jelas sekali bahwa yang dibutuhkan disini adalah web server. Jadi apa itu web server?

Web server adalah sebuah software yang diinstal pada sebuah komputer yang terhubung dengan jaringan dan bertugas melayani berbagai request dari client. Fungsi web server atas PHP adalah menyimpan file-file PHP itu, sehingga file dapat dijalankan kemudian dikirimkan kepada client  yang sedang meminta data tersebut. Untuk saat ini, yang paling terkenal adalah Apache. Untuk web server lainnya misalkan : Aolserver; Boa ataupun HSF

Tidak hanya itu, PHP juga membutuhkan PHP binary yang bisa dikonfigurasikan sebagai modul web server ataupun sebagai CGI. PHP binary berfungsi untuk memparsing kode PHP menjadi html. Perintah dari client akan dieksekusi pada web server kemudian PHP binary ini akan mengubah kode-kode PHP beserta parameter dan value nya kedalam bentuk html yang selanjutnya dikembalikan kepada client.

Selain itu, untuk merekam/menyimpan data, dibutuhkan database server. Database ini biasanya menyimpan seluruh inputan user ataupun data-data milik web tersebut. Dalam hal ini dibutuhkan bahasa pemrograman SQL (Structured Query Languange). Secara umum bahasa ini sudah menjadi bahasa standar yang digunakan untuk manajemen basis data dan relasional.

Ketiga software tersebut sangat terkait dalam pembangunan web. Namun dalam kenyataannya, menghubung ketiga module (PHP, Apache, SQL) tersebut sangatlah sulit. Oleh karena itu dibutuhkan sofware pihak ketiga untuk mengaitkan ketiganya. Macam-macam software tersebut adalah : Lamp; Xampp; Wamp dan lain-lain.

Skema Aplikasi Web


Keterangan :

  1. Web client mengirimkan permintaan. Permintaan bisa berupa perintah dengan parameter dan value nya ataupun permintaan halaman.
  2. Berbagai aktifitas pada web server pun terjadi. Dalam hal ini, Request di terjemahkan dan di proses.
  3. Permintaan diteruskan ke dalam Java jika permintaan memang berbasiskan java.
  4. Jika permintaan mengharuskan sebuah input untuk disimpan dalam database, maka input akan disimpan dalam database.
  5. Respon di kembalikan kepada web client.
  6. Respon diterjemahkan dan sampai pada web client.
Instalasi PHP

Setelah mengerti tentang PHP, kita akan melakukan instalasi php pada personal komputer. Perlu diketahui, PHP telah mendukung diberbagai macam jenis OS, baik itu Linux, Unix, Windows ataupun MacOS. Tidak hanya banyak OS yang didukungnya, melainkan juga banyak juga web server yang digunakan untuk menjalankan PHP. Namun kebanyakan memang menggunakan web server Apache.


Disini kita akan menginstall PHP didalam Windows XP menggunakan server Apache. Cara termudah menginstall PHP adalah dengan menggunakan appserv. Appserv merupakan sebuah paket untuk Windows dimana didalamnya terdapat : Apache Web Server, PHP Script Language, MySQL Database, Zend Optimizer. Dengan menggunakan appserv, instalasi terasa mudah, karena sekali instal aplikasi, semua aplikasi pembangunan web PHP akan selesai.

Modul Pembelajaran PHP

  1. XAMPP : Download
  2. Pengenalan PHP : Download; Download
  3. Modul : Download; Download
Sekilas saja tentang masalah yang dialami teman saya. Pada saat itu dia bertanya :
Apakah file PHP bisa didownload secara utuh pada brower tanpa melalui hak akses administrator?
Jawabannya adalah : TIDAK.
Seperti yang dijelaskan diatas, bahwasanya file php berjalan pada server side. Artinya file tersebut dijalankan pada server pada saat anda memanggilnya. Hasil dari eksekusi tersebut akan dikirimkan dalam bentuk html, atau hasil dari aksi itu sendiri. Download hanya bisa dilakukan melalui protokol ftp ataupun telnet.