当前位置: 首页 > article >正文

26届JAVA 学习日记——Day16

2024.11.27 周三
尽量在抽出时间做项目,持续学习优化简历,等到基础的八股都熟悉、leetcode热题100刷完、苍穹外卖项目+AI项目彻底完成投简历,目标是找到日常实习,然后边做边准备暑期实习。

八股

WebSocket

WebSocket是什么?

WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信( TCP 连接的两端,同一时间里,双方都可以主动向对方发送数据)——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。
在这里插入图片描述

如何建立WebSocket连接

要建立 WebSocket 连接,就会在 HTTP 请求里带上一些特殊的header 头,如下:

Connection: Upgrade
Upgrade: WebSocket
Sec-WebSocket-Key: T2a6wZlAwhgQNqruZ2YUyg==\r\n

以上header头部中:浏览器想升级协议Connection: Upgrade),并且想升级成 WebSocket 协议Upgrade: WebSocket),同时带上一段随机生成的 base64 码Sec-WebSocket-Key),发给服务器。

HTTP/1.1 101 Switching Protocols\r\n
Sec-WebSocket-Accept: iBJKv/ALIW2DobfoA4dmr3JHBCY=\r\n
Upgrade: WebSocket\r\n
Connection: Upgrade\r\n

以上HTTP的响应中:如果服务器正好支持升级成 WebSocket 协议。就会走 WebSocket 握手流程,同时根据客户端生成的 base64 码,用某个公开的算法变成另一段字符串,放在 HTTP 响应的 Sec-WebSocket-Accept 头里,同时带上101状态码,发回给浏览器。
在这里插入图片描述
在这里插入图片描述

WebSocket的使用场景

WebSocket完美继承了 TCP 协议的全双工能力,并且还贴心的提供了解决粘包的方案。

它适用于需要服务器和客户端(浏览器)频繁交互的大部分场景,比如网页/小程序游戏,网页聊天室,以及一些类似飞书这样的网页协同办公软件。

在使用 WebSocket 协议的网页游戏里,怪物移动以及攻击玩家的行为是服务器逻辑产生的,对玩家产生的伤害等数据,都需要由服务器主动发送给客户端,客户端获得数据后展示对应的效果。

算法

今日暂无该内容学习。

项目

苍穹外卖 Day10、Day11
在这里插入图片描述

><

HTMLXML中,&lt; 是小于符号 < 的实体编码,&gt; 是大于符号 > 的实体编码。

  • &gt;(greater than) <=> >
  • &lt;(less than) <=> <


http://www.kler.cn/a/413134.html

相关文章:

  • Python学习35天
  • v-for产生 You may have an infinite update loop in a component render function
  • PHP中类名加双冒号的作用
  • 【11-20期】Java面试进阶:深入解析核心问题与实战案例
  • 微信小程序2-地图显示和地图标记
  • 学习Java的日子 Day56 数据库连接池,Druid连接池
  • Python图像处理:打造平滑液化效果动画
  • Vue: computed 计算属性
  • 11.27 深度学习-损失函数+BP算法
  • 高级 SQL 技巧:提升数据库操作效率与灵活性
  • xiaolin coding 图解网络笔记——IP 篇
  • 【算法】快速求出 n 最低位的 1
  • 【大数据学习 | Spark-SQL】Spark-SQL编程
  • 如何做好一份技术文档?
  • 新型大语言模型的预训练与后训练范式,阿里Qwen
  • 网络安全审计机制与实现技术
  • Unity3D Lua如何支持面向对象详解
  • 使用 pycharm 新建不使用 python 虚拟环境( venv、conda )的工程
  • 摄像头原始数据读取——gstreamer(gst_parse_launch)
  • UI设计-色彩、层级、字体、边距(一)
  • java脚手架系列16-AI大模型集成
  • 使用Hutool读取大Excel
  • C++学习日记---第14天(蓝桥杯备赛)
  • 前端实现把整个页面转成PDF保存到本地(DOM转PDF)
  • 梧桐数据库的高效索引技术分析
  • Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)