网站首页 > 精选教程 正文
WebSocket 是一种协议,基于 TCP 协议;HTTP 也是一种协议,基于 TCP 协议。
连接要保持还是关闭是由你服务器应用来控制的。
WebSocket 协议和 HTTP 协议是两种不同的东西,它们扯上关系是只是因为:
客户端开始建立 WebSocket 连接时要发送一个 header 标记了 Upgrade 的 HTTP 请求,表示请求协议升级。
所以服务器端做出响应的简便方法是,直接在现有的 HTTP 服务器软件和现有的端口上实现 WebSocket 协议,重用现有代码(比如解析和认证这个 HTTP 请求。如果在 TCP 协议上实现,这两个功能就要重新实现),然后再回一个状态码为 101 的 HTTP 响应完成握手,再往后发送数据时就没 HTTP 的事了。
互联网一共才十几年历史,而 WebSocket 从提议变成推荐标准就需要几年,因为中间要经过大量的安全验证和实验。
Web 1 的时代人们访问 Web 页面是即停即走。Web 2 之后单个页面停留时间越来越长,页面功能越来越丰富——这时有了 RIA 的概念,改变了客户端的编程模型——更甚至许多实时应用根本不用离开页面,比如聊天、游戏应用。
http连接分为短连接和长连接。短连接一般可以用ajax实现,长连接就是websocket。所以我为PHPer准备了一套精品教程,里面涵盖PHP性能优化,MySQL性能优化,Nginx,YII2,laravel等学习教程,如果你已经会了,想要精通进阶中高级PHP,我这里也有专注于PHP中高级进阶的教程,点击下方标题链接即可获取方法!
全套laravel框架、ThinkPHP框架全套教程分享,PHP程序员福利!
客户端浏览器决定了客户端编程语言的能拥有的功能,以前如何做那些交互性很高的应用呢?
一些技术有 XHR,iframe, 实时性要求非常高的就只能用第三方插件,比如 Flash 或 Silverlight。
但 XHR 和 iframe 存在一些根本避免不了问题:1)每次交互就需要两个 HTTP 请求 2)即使单个 HTTP 请求也要传送很多字节(header 笨重)3)客户端不知道消息何时能够到达,只能轮询。服务器肯定会表示压力很大!
插件则需要额外安装,还有安全性问题和移动设备根本不能被支持的问题。
有了需要之后才有了解决方案—— WebSocket 就是这种灵丹妙药,看看主要特性:实时交互、服务器能够主动推送内容、只需要建立一次连接、快速(延迟小,每条消息可以小到两个字节)、开发者友好(接口简单,并是熟悉的事件模型)等等。
所以,HTML4 选择权很小,是否要支持 WebSocket 依据需求和环境而定;而选择 HTML 5 的话,有了 socket 通信和图形编程的能力,能够开发出什么精彩应用只取决于你的想象力。
猜你喜欢
- 2024-10-14 架构师之必杀技——反向代理&负载均衡器
- 2024-10-14 新版“Locky Bart”勒索软件二进制和后端服务器分析
- 2024-10-14 面试腾讯、字节等大厂后,我总结一份面试文档给大家参考
- 2024-10-14 CentOS7 搭建ELK日志分析系统过程
- 2024-10-14 PHP跟老大的对话(介绍老大12年架构师牛的一批)
- 2024-10-14 「PHP 技巧」 不要直接克隆对象,请使用深拷贝
- 2024-10-14 面试腾讯、新浪等大厂后,我总结一份面试文档给大家参考
- 2024-10-14 「Laravel系列2.1」先把Laravel跑起来
- 2024-10-14 技术学习全网最全资料合辑 技术资料下载
- 2024-10-14 PHP简历专业技能怎么写 php工程师简历范例
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)