1. Mengapa harus
dengan Web?
Selamat datang pada pelajaran tentang web
programming. Untuk memulainya, dimulai dengan sebuah pengertian yang baik
tentang bagaimana web dapat berguna untuk perusahaan dan programmer seperti
pada pemrograman Web.
a.
Lingkungan Teknologi Netral.
Pertama-tama,sebuah
pemikiran yang baik tentang aplikasi pada internet yaitu ‘Net adalah technology
aman lingkungan. Komunikasi dengan bermacam aplikasi pada web yang dijalankan
melalui popular protocol(HTML/HTTP) hal itu tidak dibutuhkan user untuk
mempunyai operation system yang khusus maupun klien yang diprogramkan pada
bahasa pemograman tertentu atau framework. Semua user ingin menggunakan web
browser, aplikasi standart ini terdapat pada operation system apapun.
Dikarenakan
program yang dibutuhkan pada pembelajaran
ini hanyalah sebuah web browser, tidak perlu membagi program-program melalui
CD. User tidak perlu juga melalui sebuah proses instalasi yang panjang; yang
akan mereka perlukan adalah lokasi aplikasi di Internet, dan mereka telah siap.
Manfaat
yang lain yang dimiliki biner dari suatu program yang terdapat pada server yang
diakses terdapat pada user computer yaitu permasalahan yang umum yang terkait
dengan update program, seperti kebutuhan pada waktu tertentu melihat
kemungkinan versi terbaru dari suatu program, permasalahannya adalah bagaimana
cara mendapatkan program updating; disisihkan secara bersaman, user tidak perlu
diberitahu atas program yang sudah terupdate; semua yang dibutuhkan untuk
mengupdate program pada web server dan secara otomatis semua user akan
menggunakannya setelah itu akan menikmati manfaat dari update.
b. Arsitektur
Client Server
ñ Thick dan thin clients
Aplikasi web adalah jenis aplikasi yang
menggunakan arsitektur client-server.
Pada jenis arsitektur ini, sebuah program client
terhubung pada sebuah server untuk
informasi yang dibutuhkan untuk melengkapi tugas-tugas yang telah diset oleh
user. Ada yang disebut thin client (client
tipis), dan ada juga thick client (client
tebal).
Thin client adalah clients yang hanya
berisikan sedikit dari apa yang diperlukan untuk pengalaman user, kebanyakan
hanya interface. Semua logika bisnis, semua data, terkecuali yang disediakan
oleh user, berada di dalam server. Thick clients adalah clients yang sama,
kecuali pada interface, juga berisi beberapa, jika tidak banyak, logika
pengolahan diperlukan untuk tugas-tugas user yang spesifik.
ñ Arsitektur Client-Server dari
perspektif Web
Dari definisi di atas, kita dapat
menyimpulkan bahwa client digunakan untuk aplikasi web thin clients.
Program client, pada hal ini adalah browser,
hanya sebuah interface yang oleh user digunakan untuk melaksanakan tugas-tugas. Yang
lainnya, dari data yang user perlukan untuk dioperasikan, logika yang menentukan
\aliran program dan eksekusi, berada pada server.
Dari suatu perspektif web base disini
adalah tugas-tugas dari server client:
Web server
Gambar
1.1 : Tanggung Jawab Server
Pada dasarnya, server
menerima permintaan-permintaan dari para client
web browser dan kemudian
meresponnya. Beberapa permintaan yang datang dari client disertai nama dan alamat item yang client cari, sebagaimana beberapa
data user yang disediakan.
Server menerima permintaan tersebut, memprosesnya, dan kemudian merespon
data yang dicari oleh client atau sebuak kode error yang mengindikasikan
bahwa item tidak terdapat pada server atau jika terjadi beberapa error lain.
Web client
Tugas browser adalah menyediakan user
sebuah interface dimana akan meminta server dan menampilkan respon dari server.
Ketika user meminta server (sebagai contoh, mendapatkan dokumen, atau mungkin mengirim (submit)
sebuah form), browserlah yang memformat permintaan tersebut ke dalam sesuatu
yang server dapat mengerti. Begitu server telah selesai memproses permintaan dan kemudian mengirim
respon, browser mengambil data yang diperlukan dari respon yang diberikan
server dan kemudian merendernya untuk ditampilkan ke user.
HTML
Bagaimana cara browser mengetahui apa yang harus ditampilkan ke user? Sebagian besar situs web tidak hanya berisi
teks sederhana, tetapi
disertai grafis atau memiliki
form yang dapat memanggil suatu data. Bagaimana masing-masing browser
mengetahui apa yang harus ditampilkan?
Jawabannya adalah HTML, sebuah singkatan dari Hypertext Markup Language. HTML dapat dimengerti sebagai sebuah kumpulan perintah-perintah
untuk web browser tentang bagaimana menampilkan isi ke user. Itu merupakan
standar terbuka yang telah di update oleh W3C atau World Wide Web Consortium.
Karena merupakan sebuah standar terbuka,
setiap orang mengaksesnya, berarti bahwa browsers dikembangkan dengan standar
itu di pikiran. Lebih lanjut berarti bahwa semua browsers mengetahui apa yang
dilakukan ketika itu memecahkan HTML, meskipun beberapa browsers yang lebih
lama mungkin memiliki permasalahan pada perenderan beberapa halaman yang
ditulis menggunakan versi HTML yang lebih baru yang telah diupdate setelah
pengembangannya.
HTTP Definisi
HTTP singkatan dari “HyperText Transfer Protocol“. Merupakan sebuah protokol jaringan
dengan fitur-fitur Web-specific yang berjalan pada bagian teratas dari dua
lapisan protokol lain, TCP dan IP. TCP adalah sebuah protokol yang bertanggung
jawab memastikan file telah dikirim dari akhir network telah lengkap dikirmkan,
berhasil pada tujuannya. IP merupakan sebuah protokol yang mengarahkan (routing) file dari satu host ke host
lain pada jalannya untuk tujuan. HTTP mengguanakan dua protokol ini untuk
memastikan bahwa permintaan dan respon telah lengkap dikirimkan diantara
masing- masing akhir komunikasi.
HTTP menggunakan urutan Request/Response:
Sebuah HTTP client membuka koneksi
dan mengirim sebuah pesan permintaan pada
HTTP server; server kemudian
mengirimkan pesan respon, biasanya
berisikan resource yang diminta. Setelah mengirimkan respon, server menutup
koneksi (membuat HTTP menjadi protokol tanpa status, contoh, tidak memelihara
beberapa informasi koneksi diantara transaksi).
Format dari pesan permintaan dan respon
adalah sama, dan berorientasikan bahasa inggris. Kedua jenis pesan mengandung :
•
Sebuah
garis inisial
•
Nol
atau lebih garis header
• Sebuah garis kosong(i.e sebuah CRLF oleh
dirinya sendiri), dan pesan body optional (e.g. sebuah file, atau data query, atau keluaran
query).
HTTP Requests
Permintaan-permintaan dari client ke
server berisikan informasi tentang macam-macam data yang user inginkan. Salah
satu item informasi yang dienkapsulasi pada permintaan HTTP adalah sebuah nama method. Ini memberitahu server
macam-macam permintaan yang dibuat, sebagaimana sisa pesan dari client
diformat. Ada dua protokol yang mungkin akan Anda gunakan : GET dan POST.
GET
GET adalah
method HTTP paling sederhana dan digunakan sebagian besar untuk meminta
resource tertentu dari server, apakah berupa halaman
web, file gambar grafis, atau sebuah dokumen, dan lain-lain.
GET dapat
juga digunakan untuk mengirim data di atas server, meskipun demikian hal itu
mempunyai batasan-batasan. Jumlah total karakter yang dapat dienkapsulasi ke
dalam permintaan GET adalah terbatas,
sehingga untuk situasi dimana banyak data perlu dikirimkan ke server, tidak
semua pesan dapat disampaikan.
Batasan lain method permintaan GET ketika mengirim data adalah data yang Anda kirim
menggunakan method ini ditambahkan pada
URL yang Anda kirim ke server. (Untuk sekarang, asumsikan URL sebagai alamat
unik yang akan Anda kirim ke server sebagai penandaan lokasi yang Anda minta).
Salah satu permasalahannya adalah URL dari beberapa permintaan yang Anda
inginkan ditampilkan pada bar browser
pada beberapa browser. Hal ini berarti, bahwa beberapa data sensitif seperti
password atau informasi kontak (contact
information) dapat diterlihat oleh siapapun.
Keuntungan dari penggunaan GET dalam pengiriman data di atas server
adalah permintaan URL dari permintaan GET dapat
dibookmark oleh browser.
Hal ini berarti bahwa user dapat dengan mudah membookmark permintaannya
dan mengakses setiap saat dari pada melalui proses tiap waktu. Hal ini juga
dapat membahayakan; jika bookmark secara fungsional bukan merupakan sesuatu
yang Anda inginkan pada user Anda, sebagai gantinya menggunakan method lain.
Di bawah ini
merupakan URL yang dihasilkan oleh permintaan GET :
http://jedi-master.dev.java.net/servlets/NewsItemView?newsItemID=2359&filter=true
Semua item sebelum tanda tanya (?) merupakan URL asli permintaan (dalam hal ini http://jedi-master.dev.java.net/servlets/NewsItemView).
Setelah itu, berikutnya
adalah parameters atau data yang Anda
kirim ke server.
Mari kita lihat secara seksama bagian
tersebut. Berikut ini parameter yang ditambahkan pada permintaan :
newsItemID=2359&filter=true
Pada permintaan GET, parameters disandikan sebagai nama dan nilai. Anda tidak
mengirim nilai data ke server tanpa mengetahui secara spesifik untuk apakah
nilai tersebut. Nama dan nilai disandikan sebagai berikut :
name=value
Dan juga, jika terdapat lebih dari satu
kumpulan parameter, akan dipisahkan menggunakan tanda ampersand (&).
Sehingga , dalam hal ini, nama-nama parameter yang kita spesifikkan ke server
adalah newsItemID dan filter, dengan nilai 2359 dan true, berturut-turut.
POST
Jenis lain dari method permintaan yang
pasti akan digunakan adalah permintaan POST.
Jenis permintaan ini didesain seperti browser dapat membuat permintaan kompleks
dari server. Mereka didesain sehingga user, melalui browser, dapat mengirim
banyak data ke server. Form kompleks secara umum dicapai dengan menggunakan
permintaan POST, sebagaimana form
sederhana yang memelukan proses upload file ke server.
Satu perbedaan yang nyata antara method GET dan POST terletak pada cara mengirimkan data ke server. Seperti yang
dinyatakan sebelumnya, GET hanya
menambahkan data ke URL yang akan mengirim. POST,
di sisi lain, mengenkapsulasi atau menyembunyikan data di dalam body pesan
(message body) yang dikirim. Ketika server menerima permintaan dan menentukan
bahwa itu merupakan sebuah permintaan POST,
dapat dilihat dari body pesan data tersebut.
HTTP Response
HTTP merespon dari server yang berisi
headers dan body pesan, seperti yang permintaan HTTP lakukan. Mereka
menggunakan kumpulan header yang berbeda, meskipun demikian disini kita tidak
perlu terlalu dalam membahasnya secara detail. Cukup dengan mengatakan bahwa
headers berisi informasi tentang protokol HTTP yang digunakan pada server,
sebagaimana tipe dari isi yang dienkapsulasi ke dalam body pesan. Nilai dari
tipe isi adalah MIME-type. Ini akan memberitahu browser jika pesan berisi HTML, gambar,
atau tipe lainnya.
Dynamic over Static pages
Macam-macam content/isi yang dapat
dilayani oleh web server dapat berupa statis
atau dinamis. Content statis
adalah isi yang statis atau tidak dapat dirubah. Content jenis ini biasanya hanya
berada pada storage/penyimpanan dimana server dapat mengaksesnya dan akan
diambil berdasarkan permintaan. Ketika mereka dikirim sebagai respon dari
server, cara mereka dikirim sama persis seperti
ketika mereka berada pada server.
Contoh dari content statis meliputi
kumpulan artikel surat kabar, gambar keluarga dari galeri foto online, atau
bahkan mungkin salinan online dokumen ini!
Dinamic content, pada sisi lain, berubah
menurut input dari user. aplikasi apa pada server yang dapat mengakses pada tipe
content ini yaitu semacam template yang mereka dapat ketahui yang mengacu pada
bagaimana dokumen dapat dikirim dan akan terlihat secara umum, template ini
kemudian membuat persetujuan pada parameter yang dikirim oleh user dan
dikembalikan pada klien.
Hal itu dapat dikatakan sebagai berikut,
halaman dinamis mempunyai lebih banyak flexibilitas dan kegunaan dari pada
halaman statis. Disini terdapat beberapa pasangan skenario dimana hanya content
dinamik yang akan cocok:
ñ Halaman web hanya didasarkan pada data yang diberikan oleh user.
Sebagai contoh,
halaman dari hasil
mesin pencari dihasilkan oleh cara ini, dan
program yang memproses pesanan untuk lokasi e-commerce melakukannya dengan
baik.
ñ
Data sering
berubah, sebuah laporan-cuaca atau halaman berita
utama akan membangun halaman yang dinamik, mungkin
menampilkan kembali halaman yang dibangun sebelumnya jika masih tergolong
sebagai berita terbaru.
ñ Halaman web menggunakan informasi dari database
perusahaan atau sumber yang lain.
Penting
untuk disadari, web server dengan
sendirinya tidak mempunyai kemampuan untuk melayani content dinamic, web server membutuhkan
aplikasi yang dapat mereka akses untuk membangun content yang dinamic. Termasuk
memerlukan aplikasi tersendiri untuk membuat content dinamic, web server selalu
membutuhkan aplikasi tersendiri yang akan menyimpan informasi user yang
bersangkutan (seperti mengumpulkan berdasarkan format) kedalam media
penyimpanan, Anda tidak dapat mengharapkan untuk membuat sebuah form,
memerintahkan user untuk memasukkan data kedalamnya, mengirimnya ke server, dan
server secara otomatis mengetahui apa yang akan dilakukan pada data tersebut.
Kita kini berada
dalam bagian diskusi
kita dimana kita dapat dengan
jelas menunjuk bahwa
pembuatan dari aplikasi web ini yang merupakan pokok pembahasan pada bab ini,
jadi, bagaimana cara yang kita lakukan untuk membuat aplikasi ini?
Pada postingan selanjutnya, kita akan
mempelajari dasar pada teknologi berbasis Java untuk membuat aplikasi web kita.
Lebih spesifik lagi, kita akan membuat penggunaan APIs secara extensif yang
disediakan pada web tier dalam spesifikasi J2EE (Java 2 Enterprise Edition).
0 comments:
Post a Comment