WebSocket学习笔记

本文介绍了WebSocket协议的全双工通信、TCP基础、握手过程,以及其在实时应用中的重要性,如消息传递、游戏和协作。同时,讨论了WebSocket服务的实现示例(如FastAPI)和常见的安全问题,如跨站请求伪造、数据泄露和DoS攻击的防范措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

WebSocket是一种网络通信协议,它在2011年被IETF(互联网工程任务组)标准化为RFC 6455。WebSocket协议允许服务器与客户端之间进行全双工通信,即客户端和服务器可以在任何时候发送消息,而不需要像传统的HTTP请求那样等待响应。
WebSocket的主要特点包括:

  1. 全双工通信:客户端和服务器可以在任何时候发送消息,实现了真正的实时通信。
  2. 基于TCP协议:WebSocket在传输层使用TCP协议,保证了数据的可靠传输。
  3. 握手过程:WebSocket连接的建立是通过HTTP协议的升级请求来完成的。客户端发起一个普通的HTTP请求,并在请求头中包含升级到WebSocket的请求。如果服务器支持WebSocket,它会同意升级,并返回一个101 Switching Protocols的响应,之后连接就会使用WebSocket协议。
  4. 轻量级:WebSocket消息格式相对简单,减少了数据传输的开销。
  5. 跨域支持:WebSocket协议支持跨源通信,允许不同域的网页应用进行数据交换。
  6. 持久连接:一旦WebSocket连接建立,它就会保持开放状态,直到客户端或服务器显式地关闭连接。
    WebSocket的应用场景包括但不限于:
  • 实时消息传递:如即时通讯、聊天室等。
  • 实时游戏:多人在线游戏、实时对战游戏等。
  • 实时数据流:如实时股票报价、实时监控系统等。
  • 实时协作工具:如在线白板、文档协作编辑等。
    在现代Web应用中,WebSocket已经成为实现实时互动功能的重要技术之一。随着HTML5的普及,WebSocket得到了广泛的支持,几乎所有的现代浏览器都支持WebSocket协议。

websocket应用示例

这里计划使用FastAPI实现一个WebSocket服务并创建一个Python客户端来接收消息。
安装依赖:

pip install fastapi[all] websockets

服务端程序

from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi.responses import HTMLResponse
from typing import List

app = FastAPI()

html 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白日与明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值