Web室(2)---技术实现原理

Web室(2)---技术实现原理
技术实现原理
实现技术原理
(⼀)Session
同⼀个浏览器,即便有多个标签页,也是保存相同的session
session⽣命周期:
ktkp-073(1)登录系统没有注销
(2)没有超时
微生物发酵床原理:session基于cookie实现的
作⽤:解决未登录敏感资源的访问问题(更安全)
代码:
[登陆时:账号密码验证通过后 Session(); //默认是true ]
[登录之后,都可以获取到Session对象 ]
怎么⽤两个账号登录,分别发送消息呢?
⼀个⽤⾕歌浏览器,⼀个⽤别的浏览器,因为会话信息会保存在客户端中(也就是浏览器当中),所以换⼀个浏览器打开也就是换了⼀个客户端,这样不同浏览器保存的会话信息不同,则就是两个⽤户
(⼆)Ajax 技术
主要原理:异步请求回调
接⼝api设计
请求:
POST /login
{
name: xxx,
password: xxx
}
响应:
HTTP/1.1 200 OK
{
ok: 1,
reason: xxx,
userId: xxx,
name: xxx,
nickName: xxx,
signature: xxx
}
1. 根据api设计的请求数据发送给后端
2. 通过接⼝到后端的servlet,并执⾏service⽅法
3. 根据api响应信息的字符串⽤json反序列换为对象,随后发送ajax的异步回调函数
(注意:这⾥的回调函数并不是⼀直在等后端执⾏完所有的业务程序才继续⾛回调函数,⽽是可以在等待期间可以做其他事情,回调函数来了再去执⾏就好,类似多线程)
(三)消息推送
服务端主动给客户端发送消息,就⽐如登录某个⽹页,会弹出来⼩⼴告,这就是服务器⾃动给客户端发送的消息
对于HTTP的⽅式实现消息推送时,有以下⼏种⽅式:
轮询⽅式
客户端定时向服务端发送ajax请求,服务器接收到请求后马上返回消息并关闭连接甲酸沸点
优点:后端程序编写⽐较容易。
缺点:TCP的建⽴和关闭操作浪费时间和带宽,请求中有⼤半是⽆⽤,浪费带宽和服务器资源。
实例:适于⼩型应⽤。
长轮询
客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。
优点:在⽆消息的情况下不会频繁的请求,耗费资源⼩。
缺点:服务器hold连接会消耗资源,返回数据顺序⽆保证,难于管理维护。
实例:WebQQ、Hi⽹页版、Facebook IM。
长连接
无动力滑翔伞在页⾯⾥嵌⼊⼀个隐蔵iframe,将这个隐蔵iframe的src属性设为对⼀个长连接的请求或是采⽤xhr请求,服务器端就能源源不断地往客户端输⼊数据。
优点:消息即时到达,不发⽆⽤请求;管理起来也相对⽅便。
缺点:服务器维护⼀个长连接会增加开销,当客户端越来越多的时候,server压⼒⼤!
实例:Gmail聊天
webSocket
镀铬工艺
HTML5 WebSocket设计出来的⽬的就是取代轮询和长连接,使客户端浏览器具备像C/S框架下桌⾯系统的即时通讯能⼒,实现了浏览器和服务器全双⼯通信,建⽴在TCP之上,虽然WebSocket和HTTP⼀样通过TCP来传输数据,但WebSocket可以主动的向对⽅发送或接收数据,就像Socket⼀样;并WebSocket需要类似TCP的客户端和服务端通过握⼿连接,连接成功后才能互相通信。
优点:双向通信、事件驱动、异步、使⽤ws或wss协议的客户端能够真正实现意义上的推送功能。
缺点:少部分浏览器不⽀持。
实例:社交聊天(、QQ)、弹幕、多玩家玩游戏、协同编辑、股票基⾦实时报价、体育实况更新、视频会议/聊天、基于位置的应⽤、在线教育、智能家居等⾼实时性的场景。
举例总结⼏种⽅式:
⽐如钓鱼,现在有10个鱼竿
碳化硅纳米线1. 轮询⽅式:定时查看鱼竿
2. 长轮询:依次查看每个鱼竿,查看时有鱼才继续
3. 长连接:雇佣多个⼯⼈,每个⼯⼈都查看鱼竿
4. websocket:每个鱼竿安装铃铛(事件驱动)
此项⽬中的webSocket
作⽤:做消息推送(服务端主动地向客户端发送消息),客户端保持和服务端的长连接
背景:消息推送实现⽅案
原理:
(1)基于http建⽴连接(保持,保存有双⽅通信的通⾏证)
(2)真正的传输数据时,传输层基于 TCP 协议,应⽤层为 WebSocket 协议(ws,wss)

本文发布于:2024-09-23 09:31:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/266278.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:客户端   请求   连接
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议