Tugas
5
1.
Jelaskan
prinsip kerja protokol HTTP 1.1
Jawab:
Server mendukung koneksi TLS 1.0 dan segera mengembalikan respon.
Protokol 1.1 mendefinisikan koneksi persisten dan karena server mendukung versi
1.1 link tidak menandatangani sekarang, tapi sambil menunggu perintah lebih
lanjut. Klien dapat terus query elemen lain halaman HTML (gambar, ...) dan menutup
sambungan itu sendiri.
Tanggapan berisi versi protokol, kode respon (1 × x - informatif ,
2 × x - Sukses , 3 × x - call forwarding, 4 × x - kesalahan pada sisi klien,
atau 5 × x - kesalahan pada sisi server) dan respon pesan teks ("OK").
Jawabannya juga berisi header , baris kosong sebagai pemisah dan biasanya tubuh
dari respon (tetapi tidak selalu, lihat OPTIONS atau HEAD). Contoh di atas
adalah benar-benar buruk. Karena kenyataan bahwa koneksi di HTTP 1.1 gigih,
harus menjadi tubuh panjang respon header yang tepat (atau setidaknya jenis
encoding) bahwa klien tahu di mana ujung jawaban dan mungkin bisa meminta lagi
(berdasarkan data). Klien juga dapat mengirim pertanyaan tanpa menunggu jawaban
server dalam kasus ini diperlukan untuk menangani permintaan dalam urutan yang
sama mereka diterima.
Metode
GET
adalah metode yang paling banyak digunakan. Digunakan untuk
mengambil objek (file html , gambar , apa pun ...) dari server. Oleh karena
itu, permintaan GET disertai dengan banyak head yang menentukan bagaimana
dokumen sudah tua, apakah itu dimodifikasi sehingga GET permintaan biasanya
tidak memiliki tubuh.
POST
Dengan menggunakan metode ini dapat diangkut dalam tubuh informasi
server dari pengguna (mereka sering digunakan untuk mengirim data luas POST
dari bentuk web, meng-upload file, dll) .
HEAD
berperilaku persis seperti GET, tapi jawabannya tidak ditularkan
oleh tubuh. Query ini berguna misalnya untuk menentukan apakah objek tersebut
ada (saat memeriksa link pada halaman).
PUT / DELETE
menciptakan/menghapus objek dari server. Metode ini digunakan
secara luas dalam praktek.
OPTIONS
digunakan untuk memperoleh informasi tentang konteks (atau " *
" untuk seluruh server). Klien dapat menentukan pertanyaan dapat dikirim
ke konteks tertentu .
TRACE
digunakan untuk melacak jalur seluruh query. Dalam tubuh menjawab
klien akan baik berbaris semua pertanyaan sistem individual, yang menuntut
melalui. Metode ini digunakan oleh administrator dan programer web yang ingin
mencari tahu mengapa server mereka kembali seperti kadaluarsa (Expired)
dokumen, dll
CONNECT
digunakan untuk protokol HTTP tunneling (seperti SSL) .
header
Protokol HTTP versi 1.1 mendefinisikan sejumlah besar header untuk
pertanyaan dan jawaban. Berikut adalah beberapa di antaranya:
Header Query
Accept *
Header tipe ini mengindikasikan apa yang klien mampu memproses.
Server kemudian memilih alternatif yang paling tepat. Ini termasuk Menerima
header (MIME jenis dokumen), Accept-Charset (charset, dalam lingkungan Republik
sangat penting), Accept-Encoding (pengkodean data, biasanya digunakan untuk
memilih kompresi) dan Accept-Language (bahasa dokumen).
Connection
Dalam HTTP 1.1 didefinisikan oleh parameter "dekat", yang
menyerukan untuk segera menutup koneksi setelah transmisi pertama dari dokumen
yang diminta.
Referer
Klien berkomunikasi header ini URI dari halaman dari link yang
dihasilkan.
Host
HTTP 1.1 memperkenalkan dukungan untuk apa yang disebut server
virtual berbasis nama. Metode ini memungkinkan Anda untuk menjalankan beberapa
virtual server pada satu alamat IP, tapi klien harus menggunakan header ini
untuk menentukan nama server yang Anda ingin berkomunikasi.
User- Agent
Header ini harus mengidentifikasi program klien, baik untuk
keperluan statistik atau untuk menyediakan konten yang berbeda untuk browser
yang berbeda dan sejenisnya.
Response header
content *
Tajuk menggambarkan isi (body) tanggapan. Mereka berisi panjang
konten (Content-Length), yang MD5 digest (Content-MD5, bahasa (Content-Language)
tipe dokumen (Content-Type) dan atribut lainnya. Perlu dicatat bahwa header ini
tidak digunakan hanya sebagai jawaban-kecuali permintaan juga berisi tubuh
(misalnya metode POST), biasanya perlu juga digunakan.
Server
Header ini digunakan untuk mengidentifikasi server itu sendiri (biasanya
kita dapat menemukan namanya, versi, dan kadang-kadang bahkan lebih).
Expire
Server melalui data ini dapat mengetahui bahwa dokumen berakhir .
Setelah waktu ini, klien harus men-download versi baru .
Ada juga sejumlah header lain, yang bisa misalnya mengelola klien
men-download dokumen ("download hanya jika dokumen itu diubah oleh ...
") atau bahkan sebelum server nama pengguna dan password untuk akses ke
bagian non - publik situs Anda. Demikian pula, server dapat lebih halus
menggambarkan jawaban Anda dan memberitahu klien, misalnya, ketika dokumen
terakhir diubah, atau apakah caching diaktifkan pada publik atau swasta.
2.
Jelaskan
yang saudara ketahui tentang web server, server-side script, dan user-agent
Jawab:
-
Web
server
Web server merupakan software yang memberikan layanan data yang berfungsi
menerima permintaan HTTP atau HTTPSdari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk
halaman - halaman web yang umumnya berbentuk dokumen HTML
Macam - macam Web Server diantanya:
Apache Web
Server - The HTTP Web Server
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).
Prosesnya dimulai dari permintaan web client (browser),
diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server
ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah
mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web
server hanya memproses semua masukan yang diperolehnya dari web clientnya.
-
Server-side
script
Server-side scripting
adalah suatu skrip yang tertanam pada server yang secara otomatis mengeksekusi
permintaan dari browser (sisi client) kepada server dan biasanya menghasilkan
kustom tanggapan untuk klien. Server-side script dapat mengakses struktur
direktori pada file server, ia juga memiliki akses ke server-side perangkat
lunak yang membentang secara fungsionalitas pada server. Bisa juga disebut
dengan komponen ActiveX untuk Microsoft Web server dan modul untuk Apache Web
server. Script sisi server secara visual tidak terlihat oleh klien; hanya XHTML
(ditambah setiap sisi klien) skrip yang akan terlihat oleh klien. Server-side
scripting adalah teknologi web server di mana permintaan dari setiap pengguna
dapat dipenuhi dengan menjalankan skrip langsung pada web server untuk membuat
halaman HTML secara dinamis .
Beberapa
contoh Server Side Scripting (Programming) :
1. ASP (Active Server Page) dan ASP.NET
2. ColdFusion
(http://www.macromedia.com/software/coldfusion)
3. Java Server Pages
(http://java.sun.com/products/jsp/)
4. Perl (http://www.perl.org)
5. Phyton (http://www.python.org)
6. PHP (http://www.php.net)
-
User-agent
User Agent adalah
aplikasi yang mengandung berbagai macam string pada pihak client untuk berkomunikasi
dengn pihak web server.
Didalam suatu user agent, terdapat berbagai macam string yang berisi informasi
pada client dan informasi tersebut berupa nama browser, versi browser, sistem
operasi dan masih banyak lainnya.
Pada saat browser
mengakses suatu halaman web, maka web server akan menggunakan informasi yang
terdapat dalam useragent string untuk menampilkan konten yang disesuaikan
dengan user agent browser yang sedang digunakan.
Kesimpulan dari
User Agent adalah identitas browser yang kita gunakan. Kalau kita menggunakan
browser, maka akan terdeteksi identitas masing - masing browser tersebut.
Beberapa manfaat dari merubah user agent adalah sebagai berikut :
·
Memalsukan
identias browser yang sedang digunakan
·
Mengakses
web page yang tidak dapat diakses oleh browser tertentu
·
Mengakses
Mobile Website yang hanya dapat diakses dengan handphone bagi pengguna pc
·
Dan
masih banyak manfaat lainnya
3.
Jelaskan
perbedaan interaksi stateless dengan stateful. Sebutkan pula kelebihan dari
masing-masing interaksi tersebut.
Jawab:
-
Stateful
·
server menyimpan informasi tentang file yang terbuka, dan posisi
file sekarang (current position).
·
Open (dibuka) sebelum access dan kemudian ditutup
·
Menyediakan file locks
-
Stateless
·
server tidak menyimpan state informasi
·
operasi file harus mengandung semua yang diperlukan (memuat pesan
yang lengkap).
·
Dapat dengan mudah di-recovery apabila terjadi client ataupun
server crach
·
Membutuhkan extra lock server untuk mempertahankan state
4.
Jelaskan
perbedaan metode pengiriman formulir secara GET dan POST, berikan masing-masing
sebuah contoh penggunaan metode tersebut.
Jawab:
Ketika menggunakan method POST,
pada URL browser tidak ditampilkan data apa yang tadi dikirimkan. karena
pengiriman data dikirim melalui request body dan hasil dari method POST ini
tidak bersifat cacheable (dapat disimpan dalam cache). Biasanya data yang
dikirimkan adalah data yang bersifat credential, misalnya password (yang
berhubungan dengan keamanan).
Sedangkan jika menggunakan method
GET, pada URL browser menampilkan data yang telah dikirimkan. Ini dikarenakan
pada method GET menampilkan apapun informasi yang didentifikasi oleh URL pada
request. Data yang dikirimkan berupa data aksi/id saja dan tidak bersifat
credential.
Contoh:
-
Method POST
POST
digunakan untuk mengirim data yang lebih rahasia seperti password, misalnya
saat kita login pada halaman facebook
-
Method
GET
Digunakan lebih
untuk keperluan mengambil data
5.
Jelaskan
prinsip kerja cookie
Jawab:
Pada saat sebuah
cookies dikirimkan dari server ke sebuah baris ditambahkan pada HTTP header.
Berikut adalah contohnya:
Content-type:text/html
Set-Cookies:xyz=abc;path=/;expires Mon,
31-Des-2010 13:00:00 GMT
Header tersebut bernama xyz, nilai (value) untuk
xyz adalah abc. Selain memiliki Path / yang berarti isi situs yang valid serta
memiliki batas waktu (expires) hingga 31 Desember 2010 pada pukul 13:00:00 GMT
Pada sebuah cookies dikirimkan dari browser
menuju server, header-nya berbentuk:
Content-type:text/html
Cookies:xyz=abc
Disini diketahui, adanya sebuah cookies yang
bernama xyz dengan value abc.
Detil Parameter Cookies
Seperti yang telah dibahas sebelumnya, secara
sederhana, sebuah cookies terdiri atas sebuah nama dan value. Pada dasarnya
cookies memiliki 6 Parameter yaitu:
• Nama cookies, (name)
• Value (nilai) cookies,
• Batas waktu (expires) cookies,
• Path yang menunjukkan cookies tersebut valid untuk,
• Domain cookies valid untuk,
• Kebutuhan akan koneksi yang aman (secure) dalam menggunakan cookies
Secara global, setelah sebuah cookies dikirimkan
melalui HTTP header, lalu disimpan dalam memori browser. Jadi, apabila
seseorang tidak dalam keadaan browsing atau computer dimatikan browser
memindahkan memorinya ke dalam hardisk. Jadi, apabila Anda mengakses browser
hari kemudian, Anda masih tetap memiliki cookies yang lama. Jadi, setiap kali
mengaktifkan browser cookies dibaca dari hardisk, dan setiap kali menutup
browser menyimpanya kembali kedalam hardisk. Setelah cookies mencampai tanggal
massa berlaku (epires) cookies dihapus dari dalam memori dan tidak lagi
disimpan didalam hardisk.
6.
Jelaskan
prinsip kerja session.
Jawab:
Ada tiga slternatif yang dapat digunakan untuk
menyimpan data session:
·
Cookie
·
Hidden Form
·
URL
EMbedding
Secara umum, cara kerja session dapat dideskripsikan
seperti Saat pengunjung mengakses suatu halaman, pengunjung tersebut memulai
session (digunakan fungsi session_start()). Bila dalam konfigurasi php,
session.auto_start diset ke 1 maka php akan melakukan start session secara
otomatis.
Pengunjung tadi kemudian diberi pengenal berupa
session id, Session id ini adalah rangkaian karakter yang unik, misalnya
12345678xx.. Bersamaan dengan itu, pada sisi server juga dibuat file
ses_12345678xx yang berisi variabel-variabel session milik si pengunjung.
Variabel yang diregister dengan fungsi session_register() akan disimpan dalam
file ini.
Metode di atas adalah default. Tetapi bisa jug
menentukan lokasi penampungan variabel session sendiri, misalnya di database. Saat
pengunjung memulai atau melanjutkan session (melalui session_start()) maka
pengunjung mengirim session id miliknya untuk memperoleh kembali
variabel-variabel session miliknya yang telah disimpan di server.
Pengiriman session id ke server bisa melalui 2 cara.
Yang pertama, yaitu cara default, dikirim melalui cookies. Session id berupa
cookie PHPSESSID (default). Ada kalanya dengan alasan tertentu, pengunjung
menonaktifkan cookies (bisa dilakukan melalui setting browsernya). Bila hal ini
terjadi, maka pengiriman session id dilakukan dengan cara kedua, yaitu melalui
query string (string yang ditambahkan ke URL, seperti contoh di awal artikel).
Session akan berakhir saat fungsi session_destroy()
dipanggil atau sewaktu user menutup web browsernya. Dari cara kerja session
tadi, terlihat bahwa yang menjadi kunci pegangan si pengunjung (di sisi client)
hanyalah variabel session id, sedangkan variabel-variabel lain miliknya di
server. Adanya fasilitas session handling di PHP menjadikan proses diatas
menjadi sederhana dan mudah karena PHP melakukannya otomatis.
Jadi, session merupakan hal yang cukup penting dalam
aplikasi berbasis web. Dengan session memungkinkan programmer menyimpan
informasi user secara semi-permanen, artinya selama masa tertentu informasi akan
tersimpan. Penyimpanan isi variabel session berada di server, jadi tidak bisa
diakses secara langsung oleh client.
Dalam aplikasi berbasis web, session banyak digunakan
sebagai autentifikasi login. Dengan session memungkinkan programmer mengatur
siapa saja yang bisa mengakses suatu halaman. Misalnya saja, untuk melihat
halaman kotak surat pada email, kita harus login terlebih dahulu. Dalam proses
login antara lain akan terjadi pembuatan suatu session yang akan dibawa oleh
user di setiap halaman. Di halaman kotak surat, session tersebut akan
diperiksa. Jika session benar maka user dipersilahkan membuka halaman kotak
surat, namun jika salah maka user tidak bisa membuka halaman kotak surat dan
biasanya akan diminta untuk login terlebih dahulu. Itulah sebabnya, user tidak
bisa mengakses halaman kotak surat secara langsung tanpa melakukan login.