Rumah  >  Artikel  >  hujung hadapan web  >  Analisis ringkas tentang prinsip melaksanakan protokol WebSocket dalam kemahiran tutorial HTML5_html5

Analisis ringkas tentang prinsip melaksanakan protokol WebSocket dalam kemahiran tutorial HTML5_html5

WBOY
WBOYasal
2016-05-16 15:47:341270semak imbas

Protokol WebSocket direka bentuk untuk berfungsi dengan infrastruktur rangkaian sedia ada. Sebagai sebahagian daripada prinsip reka bentuk ini, spesifikasi protokol untuk sambungan WebSocket mentakrifkan sambungan HTTP sebagai permulaan kitaran hayatnya, sekali gus memastikan keserasian ke belakang sepenuhnya dengan dunia pra-WebSocket. Secara umumnya, menukar WebSocket daripada protokol HTTP dipanggil jabat tangan WebSocket.

Pelayar menghantar permintaan kepada pelayan, menunjukkan bahawa ia mahu menukar protokol WebSocket daripada HTTP. Keinginan pelanggan dinyatakan melalui tajuk peningkatan, kodnya adalah seperti berikut:


Salin kod
Kodnya adalah seperti berikut:
DAPATKAN ws://echo.websocket. org/? encoding=text HTTP/1.1
Asal: http://websocket.org
Cookie: __utma=99as
Sambungan: Upgrade
Hos: echo.websocket.org
Sec- WebSocket-Key : uRovscZjNol/umbTt5uKmw==
Naik taraf: websocket
Sec-WebSocket-Versi: 13


Jika pelayan memahami protokol WebSocket, ia bersetuju dengan suis protokol melalui pengepala Naik Taraf.


Salin kod
Kod tersebut adalah seperti berikut:
HTTP/1.1 101 WebSocket Protocol Handshake
Tarikh: Jum, 10 Feb 2012 17:38:18 GMT
Sambungan: Naik Taraf Pelayan: Kaazing Gateway
Naik Taraf: WebSocket
Access-Control-Allow-Origin: http://websocket.org
Akses- Control-Allow-Credentials: true
Sec-WebSocket-Accept: rLHCkw/SKsO9GAH/ZSFhBATDKrU=
Access-Control-Allow-Headers: content-type


Pada ketika ini sambungan HTTP terputus dan menggantikan sambungan WebSocket pada sambungan TCP/IP asas yang sama. Sambungan WebSocket menggunakan HTTP (80) dan port yang sama seperti HTTPS (443), secara lalai.

Selepas sambungan diwujudkan, bingkai data WebSocket boleh dihantar berulang-alik antara klien dan pelayan dalam mod dupleks penuh. Kedua-dua teks dan bingkai binari boleh dihantar serentak dalam kedua-dua arah. Hanya dua bait data dibingkaikan secara minima. Untuk bingkai teks, setiap bingkai bermula pada 0x00 bait dan berakhir pada 0xff bait, yang mengandungi data UTF-8. Bingkai teks WebSocket menggunakan penamat, manakala bingkai binari menggunakan panjang awalan.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn