客户端每次发出请求都需要重新建立连接,延迟增加,导致无法支持实时对话;3)HTTPS 是一种无状态的通信协议,每次请求都是独立的,服务端不会保存客户端的状态,即便客户端可以在每次请求时重复发送上下文信息,但会带来额外的网络开销,导致无法高效的支持多轮交互场景。虽然 HTTPS 已经发展到 HTTPS/2 和 HTTPS/3,在性能上了有了提升,但是面对大模型应用这类对实时性要求较高的场景,依旧不够原生,并未成为这类场景下的主流通信协议。5、SSE和WebSocket更适合支持大模型应用5.1 SSE的通信原理
图片
1)客户端发起 SSE 连接:1)客户端通过 JavaScript 的 EventSource API 向服务器发起 HTTP 请求;2)请求头中包含 Accept: text/event-stream,表明客户端支持 SSE 协议;3)示例代码。const eventSource = new EventSource('https://example.com/sse-endpoint');2)服务器返回 HTTP 响应:服务器响应头中必须包含以下字段:1)Content-Type: text/event-stream:表明响应内容为 SSE 数据流;2)Cache-Control: no-cache:禁用缓存,确保数据实时更新;3)Connection: keep-alive:保持长连接。示例响应头:HTTP/1.1 200 OKContent-Type: text/event-streamCache-Control: no-cacheConnection: keep-alive3)服务器推送数据流:  1)服务器通过 HTTP 长连接持续推送数据,每条消息以 data: 开头,以两个换行符 \n\n 结束;2)示例数据流。data: {"message": "Hello"}data: {"message": "World"}4)客户端处理数据:1)客户端通过 EventSource 的 onmessage 事件监听服务器推送的数据;2)示例代码。eventSource.onmessage = (event) => {console.log('Received data:', event.data);
};5)连接关闭或错误处理:


已注销
1 声望1 粉丝