View
251
Download
7
Category
Preview:
Citation preview
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Konsep State pada PHP Stateless
Statefull
Session
Cookies
Pokok Bahasan
State = Keadaan
Website pada umumnya menggunakan protokol HTTP
Pada dasarnya protokol HTTP memiliki sifat stateless
Pada interaksiyang bersifat stateless, maka antara suatu interaksi request-response dengan request-response lainnya bersifat independen, tidak memiliki keterkaitan satu sama lain
Server HTTP tidak mengingat apa yang terjadi pada interaksi request-response yang terjadi
Pada interaksi stateless, server HTTP tidak menyimpan state yang berhubungan dengan klien
PHP State - Stateless
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
PHP State - Stateless
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Sistem langsung memberikan response kepada user dengan langsung memberikan halaman baru
Stateful adalah kemampuan situs untuk mempertahankan state (keadaan)
Pada interaksi statefull, membuat sebuah website dapat menyimpan keadaan seorang user walaupun komunikasi data di jaringan tetap menggunakan HTTP
PHP State - Statefull
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Create
Use
Destroy
PHP State - Statefull
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Sistem mengetahui keadaan user sekarang dan dapat “melanjutkan” halaman apa yang diminta oleh user daripada dia memberikan apa yang diminta user dengan langsung memberikan halaman baru
Penggunaan PHP State Bagaimana pengguna tetap logged-in
ketika dia berpindah-pindah halaman ?
Bagaimana keranjang belanja pengguna tetap tersimpan ketika pengguna tersebut melihat – lihat barang di halaman lain untuk ditambahkan ke keranjang belanja tersebut ?
PHP State
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
PHP State dapat dibentuk menggunakan : Cookies
Session
PHP State
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session Create
Use
Destroy
Cookie adalah file kecil yang diletakkan oleh server pada komputer pengguna
Cookie dikirim setiap kali pengguna mengakses web yang menjadi pemilik cookie tersebut, sehingga, ukuran cookie perlu diperhatikan supaya tidak membebani jaringan secara berlebihan
Ketika kita mendefinisikan suatu cookie, maka kita menentukan berapa lama cookie tersebut valid. Jika telah melampaui waktu valid (expires), maka cookie tersebut akan dihapus
Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Cookies bisa digunakan untuk : Otentifikasi
Melacak User
Mempertahankan preferensi user, shopping chart dll
Data cookie berisi pasangan name/value yang dikirim melalui header dari request HTTP (Post/Get)
Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Saat browser meminta page, server dapat mengirim cookies bersamaan dengan page tersebut
Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya bersamaan dengan request
Cara Kerja Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Saat browser meminta page, server dapat mengirim cookies bersamaan dengan page tersebut
Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya bersamaan dengan request
Cara Kerja Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Mitos Cookies seperti virus yang bisa
menghapus data di komputer kita (salah)
Cookies bisa mencuri informasi kita (salah)
Cookies digunakan untuk spam (salah)
Fakta Cookies hanyalah data
Cookies biasanya anonim (tidak berisi informasi personal)
Cookies bisa digunakan untuk melacak kebiasaan kita dalam melihat suatu situs
Serba-Serbi Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Apakah cookie berbahaya? Pada dasarnya tidak
Namun, cookie dapat digunakan untuk menyimpan informasi tentang pengguna tanpa disadari oleh pengguna tersebut
Dengan kata lain, cookie dapat Digunakan sebagai media untuk memata-‐matai aktivitas pengguna, misalnya seberapa sering pengguna mengakses, kapan waktu aksesnya, link apa saja yang di-‐klik, dsb
Untuk alasan tertentu, kita dapatmengaktifkan atau me-non-aftifkan penggunaan cookie pada web browser yangkita gunakan
Serba-Serbi Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Jika cookie “terpaksa” digunakan untuk menyimpan data yang bersifat personal (misal : alamat email, nomor telepon, dsb), gunakan enkripsi untuk melindungi data tersebut dari pihak yang tidak berwenang
Serba-Serbi Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Session cookies : tipe default, cookie sementara yang hanya disimpan di memory browser
Ketika browser ditutup, cookies ini akan terhapus
Tidak bisa digunakan untuk melacak informasi yang lama
Lebih aman, karena tidak ada program yang bisa mengaksesnya (kecuali browser itu sendiri)
Persistent Cookies : cookies yang disimpan pada sebuah file yang ada di komputer browser
Digunakan untuk informasi yang bisa bertahan lama
Berpotensial untuk tidak aman, sebab user / program, bisa membuka file tersebut atau mengubah isi cookies nya
Jenis Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
IE : C:\Documents and
Settings\administrator\Cookies
Firefox %APPDATA%\Mozilla\Firefox\???.defau
lt\cookies.txt
Dimana ??? adalah karakter acak
Chrome : C:\Users\<User
Name>\AppData\Local\Google\Chrome\User Data
Penyimpanan Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Dalam PHP Cookie ditangani dengansuperglobal array $_COOKIE
Set cookies :
Kalau tidak didefinisikan batas timeoutnya, maka secara default cookies akan dianggap session cookies
Pengelolaan Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Menerima informasi cookies :
Gunakan isset untuk mengetahui apakah cookies yang diinginkan ada
Pengelolaan Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Biasanya dalam pengelolaan cookies dalam PHP sering ditemui “masalah” atau peringatan yang bunyinya :
Peringatan ini muncul karena kita memunculkan dua elemen program "header" dalam satu halaman yang diload oleh web browser
Dengan kata lain, data cookie yang kita buat untuk memodifikasi elemen header HTML dikirim setelah dokumen HTML diload oleh browser karena pada dasarnya semua dokumen HTML yang sudah diload oleh browser sudah memiliki header
Pengelolaan Cookies - Warning
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Warning: Cannot modify header information - headers already sent by...
Solusinya : Selalu letakkan proses pembuatan
cookie sebelum tag <html> atau bahkan sebelum tag <doctype>
Pengelolaan Cookies - Warning
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Selain menggunakan PHP, cookies dapat dibentuk dengan menggunakan Javascript karena pada dasarnya cookies disimpan di browser, sehingga Javascript dapat memanipulasinya
Pengelolaan Cookies
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
<script>document.cookie=“[name]=[value]";</script>
<script>document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";</script>
<script>var x = document.cookie;</script>
Session adalah konsep abstrak yang merepresentasikan interaksi antara browser dan server
Beda session dan cookies Cookies adalah data yang disimpan di
client
Data session disimpan di server (1 session per user)
Session biasanya dibangun diatas cookies
Setiap permintaan page, client mengirim cookie yang berisi session ID , dan server menggunakan session ID ini untuk mencari dan menerima data session -nya
Data session ID ini bisa disimpan oleh browser dalam bentuk cookie
Session
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Session merupakan kombinasi dari client-side session ID + server-side session data
Client-side session ID dapat berupa parameter URL, cookie, atau HTTP request header
Cara yang paling umum adalah menggunakan cookie untuk menyimpan client-side session ID
Server-side session data dapat disimpanpada file maupun basis data
Session dapat digunakan untuk menyimpan data berukuran sangat besar, sedangkan cookie hanya dapat menyimpan data berukuran kecil (karena dibatasi oleh web browser)
Session
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Pertama-tama browser melakukan request ke server
Server mengetahui IP client, kemudian memberikan data session yang akan dikirim lagi ke client dalam bentuk session ID
Untuk interaksi selanjutnya client mengirim session ID tersebut ke server
Server menggunakan session ID ini untuk mendapatkan data client yang disimpan di database server
Cara Kerja Session
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Memulai session
Memberi nilai pada variabel session
Membaca nilai dari variabel session
Pengelolaan Session
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Menghapus sebuah variabel session
Menghapus semua session pada pengguna tertentu
Pengelolaan Session
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
session_start() menandakan server menginginkan untuk memulai sesi dengan user
perintah ini harus di jalankan di awal sebelum output diproduksi
Ketika kita memanggil session_start() maka: Jika server tidak pernah berinteraksi
dengan user, maka akan dibuat session baru
Jika user sudah pernah berintaksi, maka data session akan di simpan di assosiative array $_SESSION
Kita dapat menyimpan data di $_SESSION dan menerimanya kembali untuk digunakan lagi nantinya
Pengelolaan Session - Start
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Pada client, session disimpan sebagai cookies dengan nama PHPSESSID
Pada server, data session disimpan sebagai file temporary dengan nama acak seperti /tmp/sess_fcc17f071
Kita bisa mencari atau mengubah folder dimana session disimpan dengan menggunakan fungsi session_save_path
Untuk aplikasi yang besar, session bisa disimpan di database (misalnya mysql)
Pengelolaan Session - Saving
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Karena HTTP adalah stateless, maka akan sulit untuk menentukan apakah user sudah menyelesaikan sessionnya
Idealnya, user harus melakukan logout untuk menyelesaikan session, tetapi kebanyakan user jarang melakukannya
Browser akan secara otomatis menghapus session ketika ditutup
Server secara otomatis akan menghapus session setelah beberapa waktu tertentu ( bisa diset melalui setting PHP session_cache_expire )
Session bisa dihapus secara paksa dengan perintah session_destroy (biasanya dilakukan saat user logout)
Session Timeout
Pokok Bahasan
Konsep State pada PHP
- Stateless- Statefull
Cookies
Session
Recommended