网站首页 > 技术教程 正文
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-15 架构师之必杀技——反向代理&负载均衡器
- 2024-10-15 面试腾讯、字节等大厂后,我总结一份面试文档给大家参考
- 2024-10-15 swoole运行模式加速laravel应用的详细介绍
- 2024-10-15 (PHP)开发Laravel扩展的基本流程(laravel php artisan)
- 2024-10-15 「PHP 技巧」 不要直接克隆对象,请使用深拷贝
- 2024-10-15 Yii2负载均衡必备:MD4文件缓存技巧
- 2024-10-05 网站跨域的五种解决方式(浏览器解决跨域)
- 2024-10-05 用户登录实现(登录功能实现)
- 2024-10-05 使用kubeadm部署Kubernetes 1.22(kubeedge部署)
- 2024-10-05 PHP性能全面优化-值得收藏(php性能调优工具)
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)