Thursday, June 9, 2016

Session 12 : Internet and SSL

Web Browser dan Server

Browser adalah suatu program atau software yang digunakan untuk menjelajahi internet. Web Browser dapat mengirim dan menerima email, mengelola HTML, sebagai input dan menjadikan halam web sebagai hasil output yang informatif. Dengan menggunakan web browser, para pengguna internet dapat mengakses berbagai informasi yang terdapat di internet dengan mudah. Beberapa contoh web browser yaitu Safari, Opera, Chrome, Firefox, dll.
Web Server adalah sebuah software server yang berfungsi menerima permintaan HTTP atau HTTPS dari client yang dikenal dengan web browser dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Server disebut juga host. Contoh dari web server yaitu apache.

Client connect ke server dengan menggunakan IP address dan port number
Biasanya kita mengetik www.google.com pada web browser. www.google.com ini akan ditranslate oleh DNS menjadi IP address. Contohnya bisa dilihat pada gambar diatas.

Apa itu DNS ?
DNS adalah sebuah sistem yang menyimpan informasi tentang nama host ataupun nama domain dalam bentuk distributed database di dalam jaringan komputer, misalkan : internet. DNS menyediakan IP address untuk setiap nama host dan mendata setiap mail exchange server yang menerima email untuk setiap domain. DNS adalah layanan jaringan yang menerjemahkan nama situs web menjadi alamat internet.

SSL (Secure Socket Layer)

SSL adalah protokol keamanan yang digunakan pada hampir semua transaksi aman pada internet. SSL mengubah suatu protokol transport seperti TCP menjadi sebuah saluran komunikasi aman yang cocok untuk transaksi yang sensitif seperti Internet Banking, dll.
Contoh web yang menggunakan SSL :


Web server harus memiliki sertifikat SSL sebelum dapat membuat koneksi SSL. Ketika seseorang mengaktifkan protokol SSL di server web mereka, mereka diminta untuk menjawab pertanyaan yang akan membangun identitas mereka. Setelah sertifikat SSL sudah ada, server web menciptakan dua kunci kriptografi. Pertama adalah kunci pribadi dan yang kedua adalah kunci publik. Kunci ini digunakan bersama dengan ruma enkripsi untuk menciptakan keamanan hubungan antara web server dan sesi browser.

Penggunaan SSL ini tidak gratis, biaya yang harus dikeluarkan bergantung pada banyak faktor seperti contohnya adalah tingkat keamanan web. SSL strength adalah level enkripsi yang digunakan saat mengirim data. Ketika kita sudah membeli sertifikat SSL, maka tinggal menginstallnya ke website kita. Ketika sudah terinstall maka kita dapat menggunakan SSL untuk mengirimkan data melalui jaringan yang aman.



Mengapa perlu menggunakan SSL ?
Alasan utama adalah untuk menjaga informasi sensitif selama dalam proses pengiriman melalui internet dengan cara enkripsi. Hal ini sangat penting, karena informasi yang kita kirimkan di internet membutuhkan proses perjalanan dari komputer ke komputer sampai mencapai server tujuan. Komputer lain yang ada diantara kita dan server dapat melihat nomor kartu kredit kita, password, dan informasi sensitif yang lainnya bila data yang kita kirim tidak dienkripsi dengan sertifikat SSL. Ketika sertifikat SSL digunakan, informasi menjadi tidak dapat terbaca oleh siapapun kecuali ke server yang memang dituju saat mengirim informasi tersebut. Hal ini melindungi informasi tersebut dari hackers dan pencuri identitas.

Cara membuat SSL :
1. Membuat keystore file.

2. Mengaktifkan SSL di tomcat dengan cara mengedit file server.xml
Pada gambar diatas, connector portnya adalah 8443 dan merupakan spesifikasi dari protokol TSL. Secara default, file server.xml akan mendefinisikan protokol sebagai TSL, bukan SSL.

3. Test koneksi lokal SSL dengan cara restart tomcat dan memasukkan url https://localhost:8443 pada web browser. Jika berhasil, maka akan muncul satu atau lebih warning dialog.

Berikut merupakan solusi dari masalah umum yang biasanya dihadapi saat membuat koneksi lokal SSL :


Thursday, June 2, 2016

Session 10 : JSP Standard Tag Library

JSTL merupakan singkatan dari Java Standard Tag Library. JSTL adalah kumpulan tag di luar tag standar HTML yang bisa digunakan dalam file JSP.

Agar JSTL bisa digunakan maka sebelumnya harus mendeklarasikannya terlebih dahulu di bagian atas file JSP seperti dibawah ini :
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSTL memiliki beberapa tag, yaitu :

  • Core. url : http://java.sun.com/jsp/jstl/core
  • Formatting. url : http://java.sun.com/jsp/jstl/fmt
  • SQL. url : http://java.sun.com/jsp/jstl/sql
  • XML. url : http://java.sun.com/jsp/jstl/xml
  • Functions. url : http://java.sun.com/jsp/jstl/fn

Beberapa contoh core tags :

JSTL core library :

JSP vs JSP with JSTL

JSTL Core memiliki beberapa kategori yaitu :
1. General Purpose Tags
<c:out>
Tag ini menerima sebuah EL(Expression Language) expression, mengevaluasi hasilnya dan kemudian menampilkan hasil secara langsung kepada objek writer yang sesuai dengan halaman output. Dengan kata lain, tag ini akan menuliskan kata yang tertulis dalam atribut value dan dalam bentuk non-XML tags.
Contoh code <c:out> sebagai berikut :


<c:set>
Tag ini dapat mengatur variable di dalam scope tertentu sehingga dapat digunakan setelahnya oleh JSP atau disuatu tempat di dalam aplikasi. Action ini memiliki atribut:
- Value : nilai yang akan diatur ke dalam target bean.
- Var : nama dari sebuah variable yang akan diatur didalam scope tertentu.
- Scope : menjelaskan variable scope yang dijelaskan oleh atribut var.

<c:remove>
Tag ini adalah kebalikan dari tag set. Tag ini akan menghapus variable yang telah dibuat oleh tag set. Tag ini memiliki dua atribut :
- Scope : scope variable yang akan dihapus.
- Var : nama variable yang akan dihapus dari scope tertentu.


2. Iteration
<c:forEach>
Tag iterasi pada primitive arrays mempunyai atribut :
- Var : mendefinisikan nama variable  yang digunakan untuk menampilkan nilai tertentu pada iterasi ke tag body
- items : kumpulan koleksi untuk diulang lagi
- varStatus : mendefinisikan nama variable  yang dapat diakses oleh body loop untuk mendapatkan informasi pada status loop tertentu (optional).
- begin : integer value yang mendefinisikan index, dipakai untuk memulai iterasi (optional)
- end : integer value yang mendefinisikan index, dipakai untuk mengakhiri iterasi (optional)
- step : integer value yang mendefinisikan ukuran yang dipakai selama iterasi (optional)
Berikut adalah contoh code <c:forEach>


<c:forTokens>
Tag iterasi lainnya yang disediakan oleh JSTL. Atribut forTokens sama dengan atribut forEach, namun forTokens memiliki tambahan 1 atribut yaitu delimiter : atribut untuk memecah string. Contoh code <c:forTokens> adalah sebagai berikut :



3. Conditional
<c:if>
Tag ini akan dieksekusi jika nilai yang dievaluasi pada atribut "test"-nya bernilai "true". Berikut adalah contoh penggunaan code <c:if>


<c:choose><c:when><c:otherwise>
Tag choose pada JSP bertindak seperti keyword switch pada java dengan tag when sebagai case dan otherwise sebagai default. Berikut adalah contoh codenya :