Pendahuluan

Dalam ilmu komputer, dalam jaringan tertentu, sesi adalah pertukaran informasi interaktif semi-permanen, juga dikenal sebagai dialog, percakapan atau pertemuan, antara dua atau lebih perangkat komunikasi, atau antara komputer dan user (lihat sesi Masuk). sesi sudah diatur atau ditetapkan pada titik tertentu dalam waktu, dan dirobohkan pada titik kemudian dalam waktu. Sebuah sesi komunikasi didirikan mungkin melibatkan lebih dari satu pesan dalam setiap arah. biasanya sesi, namun tidak selalu, stateful, yang berarti bahwa paling tidak salah satu bagian berkomunikasi perlu menyimpan informasi tentang sesi sejarah agar mampu berkomunikasi, sebagai lawan komunikasi tanpa negara, di mana komunikasi terdiri dari permintaan independen dengan tanggapan.
Sesi komunikasi dapat diimplementasikan sebagai bagian dari protokol dan jasa di layer aplikasi, pada lapisan sesi atau pada lapisan transport pada model OSI.
Lapisan aplikasi contoh:
HTTP sesi, yang memungkinkan mengasosiasikan informasi dengan pengunjung perorangan
Sebuah sesi login remote telnet
Sesi layer contoh:
A Session Initiation Protocol (SIP) Internet telepon berbasis
Lapisan transport contoh:
Sebuah sesi TCP, yang merupakan sinonim ke sirkuit virtual TCP, koneksi TCP, atau soket TCP didirikan.
Dalam hal protokol transportasi yang tidak menerapkan lapisan sesi formal (misalnya, UDP) atau di mana sesi pada lapisan sesi umumnya sangat pendek-hidup (misalnya, HTTP), sesi diselenggarakan oleh program tingkat yang lebih tinggi dengan menggunakan metode yang ditetapkan dalam data yang dipertukarkan. Misalnya, pertukaran HTTP antara browser dan sebuah remote host mungkin mencakup cookie HTTP yang mengidentifikasi negara, seperti sesi ID yang unik, informasi tentang preferensi pengguna atau tingkat otorisasi.
Protokol versi HTTP/1.1 memungkinkan untuk menggunakan kembali sesi TCP yang sama untuk urutan permintaan layanan dan tanggapan (urutan transfer file) dalam pandangan untuk mengurangi waktu pendirian sesi, sementara HTTP/1.0 hanya memungkinkan permintaan tunggal dan respon selama TCP satu sesi. Namun, mekanisme transportasi lapisan sesi tidak boleh bingung dengan sesi HTTP yang disebut, karena tidak berlangsung dalam waktu cukup lama, dan tidak memberikan tingkat aplikasi layanan interaktif seperti halaman web dinamis.

Implementasi perangkat lunak

sesi TCP biasanya diimplementasikan dalam perangkat lunak menggunakan proses anak dan / atau multithreading, dimana proses baru atau thread ini dibuat ketika komputer membentuk atau bergabung dengan sesi. sesi HTTP biasanya tidak diimplementasikan dengan menggunakan satu thread per sesi, namun dengan cara database dengan informasi mengenai keadaan dari setiap sesi. Keuntungan dengan proses beberapa atau benang adalah santai kompleksitas perangkat lunak, karena masing-masing thread adalah turunan dengan sejarah sendiri dan variabel encapsulated. Kelemahannya adalah biaya overhead yang besar dalam hal sumber daya sistem, dan bahwa sesi dapat terganggu jika sistem direstart.
Ketika klien dapat koneksi ke dalam cluster server, masalah khusus yang dihadapi dalam menjaga konsistensi ketika server harus mempertahankan negara sesi. Klien harus baik diarahkan ke server yang sama selama sesi, atau server harus mengirimkan informasi server-side sesi melalui sistem berkas bersama atau database. Jika tidak, klien dapat menyambung kembali ke server yang berbeda dari yang memulai sesi dengan, yang akan menyebabkan masalah ketika server baru tidak memiliki akses ke negara yang disimpan lama.
[Sunting sesi] sisi Server web

Server-side Sesi ini berguna dan efisien, tetapi dapat menjadi sulit untuk menangani dalam hubungannya dengan sistem load-balancing/high-availability dan tidak dapat digunakan sama sekali dalam sistem tertanam dengan penyimpanan tidak. Masalah load-balancing bisa diselesaikan dengan menggunakan bersama penyimpanan atau dengan menerapkan dipaksa mengintip di antara setiap klien dan server tunggal dalam cluster, meskipun hal ini bisa kompromi efisiensi sistem dan distribusi beban.
Sebuah metode menggunakan sesi sisi server dalam sistem tanpa massa cadangan penyimpanan adalah sebagian dari RAM untuk penyimpanan data sesi. Metode ini berlaku untuk server dengan jumlah terbatas klien (misalnya router atau jalur akses dengan jarang atau batasan akses ke lebih dari satu klien pada satu waktu).
Dalam dua skenario di atas, menggunakan sesi client-side bisa memberikan keuntungan selama sesi server-side: dalam kasus pertama dengan menghapus keterbatasan diterapkan pada algoritma load-balancing (yang biasanya diterjemahkan menjadi beban distribusi optimasi), dan dalam kasus kedua oleh memungkinkan penggunaan sesi di aplikasi web ketika server ruang disk atau RAM tidak tersedia atau cukup untuk penyimpanan ini.
[Sunting sesi] sisi Klien web

Sisi klien sesi menggunakan cookie dan teknik kriptografi untuk mempertahankan negara tanpa menyimpan sebanyak data pada server. Ketika menyajikan halaman web dinamis, server akan mengirimkan data negara saat ini ke klien (web browser) dalam bentuk cookie. klien akan menyimpan cookie di dalam memori atau pada disk. Dengan setiap permintaan berturut-turut, klien mengirimkan kembali cookie ke server, dan server menggunakan data untuk “mengingat” kondisi aplikasi untuk klien tertentu dan menghasilkan respons yang tepat.
Mekanisme ini dapat bekerja dengan baik dalam beberapa konteks, namun data yang tersimpan pada klien yang rentan terhadap gangguan oleh pengguna atau oleh perangkat lunak yang memiliki akses ke komputer klien. Untuk menggunakan sesi klien-sisi mana kerahasiaan dan integritas yang dibutuhkan, berikut ini harus dijamin:
Kerahasiaan: Tidak ada selain dari server harus dapat menafsirkan data sesi.
integritas Data: Tidak ada selain dari server harus memanipulasi data sesi (sengaja atau jahat).
Keaslian: Tidak ada selain dari server harus dapat memulai sesi berlaku.
Untuk mencapai hal ini, server perlu sesi mengenkripsi data sebelum mengirimkannya kepada klien, dan modifikasi dari informasi tersebut oleh pihak lain harus dicegah melalui sarana kriptografi.
Transmisi negara bolak-balik dengan setiap permintaan hanya praktis bila ukuran cookie kecil.Pada dasarnya, sisi klien sesi perdagangan server ruang disk untuk bandwidth tambahan bahwa setiap permintaan web akan membutuhkan. Selain itu, web browser membatasi jumlah dan ukuran cookie yang dapat disimpan oleh sebuah situs web. Untuk meningkatkan efisiensi dan memungkinkan data sesi lebih, server mungkin memampatkan data sebelum membuat cookie, dekompresi nanti bila ada cookie yang dikembalikan oleh klien.
[Sunting] sesi HTTP token

sesi token adalah sebuah identifikasi unik yang dihasilkan dan dikirimkan dari server ke klien untuk mengidentifikasi sesi interaksi saat ini. Para klien biasanya toko dan mengirimkan token sebagai cookie HTTP dan / atau mengirimkannya sebagai parameter dalam query GET atau POST. Alasan untuk menggunakan token sesi adalah bahwa klien hanya untuk menangani pengenal – semua data sesi disimpan di server (biasanya dalam database, yang klien tidak memiliki akses langsung) terkait dengan identifikasi itu. Contoh nama-nama yang beberapa bahasa pemrograman digunakan saat penamaan mereka cookie HTTP termasuk JSESSIONID (JSP), PHPSESSID (PHP), dan ASPSESSIONID (ASP).

Sumberhttp://en.wikipedia.org