Web dibangun berdasarkan gagasan bahwa pekerjaan klien adalah meminta data dari server, dan tugas server adalah memenuhi permintaan itu. Paradigma ini tidak tertandingi selama beberapa tahun tetapi dengan diperkenalkannya AJAX sekitar tahun 2005 banyak orang mulai mengeksplorasi kemungkinan membuat koneksi antara klien dan server dua arah .
Aplikasi web telah tumbuh banyak dan sekarang mengkonsumsi lebih banyak data daripada sebelumnya. Hal terbesar yang menahan mereka adalah model HTTP tradisional dari transaksi yang dimulai oleh klien. Untuk mengatasinya, sejumlah strategi berbeda dirancang untuk memungkinkan server mendorong data ke klien. Ini melibatkan koneksi HTTP terbuka sampai server memiliki beberapa data untuk dipush ke klien.
Yang benar-benar kita butuhkan adalah cara menciptakan koneksi persisten yang dapat mendukung transaksi yang diprakarsai oleh klien atau server. Inilah yang disediakan oleh WebSockets.
Bagaimana WebSockets Bekerja
WebSockets menyediakan koneksi terus-menerus antara klien dan server yang dapat digunakan kedua belah pihak untuk mulai mengirim data kapan saja.
Klien membuat koneksi WebSocket melalui proses yang dikenal sebagai WebSocket handshake. Proses ini dimulai dengan klien mengirimkan permintaan HTTP reguler ke server. Sebuah Upgradesundulan termasuk dalam permintaan ini yang menginformasikan server yang klien ingin membuat sambungan WebSocket.
Berikut adalah contoh sederhana dari header permintaan awal.
GET ws://websocket.example.com/ HTTP/1.1
Origin: http://example.com
Connection: Upgrade
Host: websocket.example.com
Upgrade: websocket
Catatan: URL WebSocket menggunakan wsskema. Ada juga wssuntuk koneksi WebSocket aman yang setara dengan HTTPS.
Jika server mendukung protokol WebSocket, server setuju untuk memutakhirkan dan mengomunikasikannya melalui Upgradeheader dalam respons.
HTTP/1.1 101 WebSocket Protocol Handshake
Date: Wed, 16 Oct 2013 10:07:34 GMT
Connection: Upgrade
Upgrade: WebSocket
Sekarang setelah Handshake selesai, koneksi HTTP awal diganti oleh koneksi WebSocket yang menggunakan koneksi TCP / IP yang mendasarinya sama. Pada titik ini salah satu pihak dapat mulai mengirim data.
Lev Yasin
Instruktur Web Programming Mataweb
Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.