WEB

Pengenalan Pemrograman WEB


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.

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:
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 :
  1. Sebuah garis inisial
  2. Nol atau lebih garis header
  3. Sebuah garis kosong(i.e sebuah CRLF oleh dirinya sendiri), dan pesan body optional (e.g. sebuah file, atau data query, atau keluaran query).
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:
  1. 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.
  2. 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.
  3. 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 bab ini, 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).
  • Pengenalan J2EE Web Tier
Platform Java 2 Enterprise Edition (J2EE) adalah suatu platform yang diperkenalkan untuk development perusahaan aplikasi dalam suatu component-base. Model aplikasi yang digunakan pada platform ini adalah model aplikasi distibuted multi-tier. Aspek yang diberikan dari model ini hanya berarti kebanyakan rancangan aplikasi dan pengembangan dalam platform ini diharapkan dapat mempunyai component yang berbeda yang di dapat dijalankan pada mesin yang berbeda pula. Multi-tier memisahkan bagian aplikasi yang dirancang dengan berbagai bagian separasi dengan berbagai komponen utama aplikasi tersebut. Suatu contoh aplikasi multi-tier adalah suatu aplikasi web : layer presentasi (client browser), layer bussines logic (program yang berada pada web server), dan layer penyimpanan (database yang akan menangani data aplikasi tersebut) terpisah dengan jelas, tetapi secara keseluruhan bertujuan untuk menciptakan sebuah aplikasi bagi user.
Salah satu strata dalam platform J2EE ketika sebelumnya berupa web-tier. Strata ini di uraikan sebagai layer yang saling berhubungan dengan browser dalam rangka menciptakan content yang dinamis. Ada dua teknologi pada layer ini : servlet dan JavaServerPage.