websocket和ajax的区别(和http的区别)
websocket和ajax的区别(和http的区别)
https://segmentfault.com/a/1190000021741131
1. 本质不同
ajax,即异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术;
webSocket是HTML5一种新的协议,实现了浏览器与服务器全双工通信。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,服务端与客户端通过此TCP连接进行实时通信。
2. 生命周期不同
websocket建立的是长连接,在一个会话中一直保持连接;而ajax是短连接,数据发送和接收完成后就会断开连接。
3. 适用范围不同
websocket一般用于前后端实时数据交互(例子:后端有状态更新后,及时告诉前端,而不用等前端发起请求);而ajax前后端非实时数据交互。
4. 发起人不同
ajax技术需要客户端发起请求(自己请求回来的数据用户自己看);而websocket服务器和客户端可以相互推送信息(用户A请求返回来的东西A用户可以看B用户也可以看;如果是属于公共的那大家都可以看)。
5. 用法不同
ajax:
$.ajax({
type:"post",
url:"http://localhost:8080/target",
data:"state = yes",
dataType:"json",
success:funciont(data){
...
}
});
websocket:
var monitor = new WebSocket("ws://"+ip+path)
onOpen()、onMessage()、onClose()
WebSocket 和HTTP的区别及原理
https://zhuanlan.zhihu.com/p/40381471
http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。
http链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息。即每一个request对应一个response。长链接是在一定的期限内保持链接。保持TCP连接不断开。客户端与服务器通信,必须要有客户端发起然后服务器返回结果。客户端是主动的,服务器是被动的。
WebSocket他是为了解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮训问题而生的,他实现了多路复用,他是全双工通信。在webSocket协议下客服端和浏览器可以同时发送信息。
建立了WebSocket之后服务器不必在浏览器发送request请求之后才能发送信息到浏览器。。而且信息当中不必在带有head的部分信息了与http的长链接通信来说,这种方式,不仅能降低服务器的压力。而且信息当中也减少了部分多余的信息
Iframe流的服务器推模式
有时叫做服务器"推"技术
WEB消息提醒实现之二 实现方式-基于Iframe的流方式
http://www.360doc.com/content/17/1225/17/16915_716184215.shtml
https://blog.csdn.net/qq_23412263/article/details/70260083
聊一聊Web端的即时通讯
初探WebSocket(有各种流程图)
Web通信中传统轮询、长轮询和WebSocket简介
https://zhuanlan.zhihu.com/p/25690011
WebSocket 教程 (by 阮一峰)
websocket和ajax的区别(和http的区别)的更多相关文章
- HTML5中的webSocket、ajax、http
本文原链接:https://cloud.tencent.com/developer/article/1115496 https://cloud.tencent.com/developer/articl ...
- Ajax的Get和Post的区别
Ajax的Get和Post的区别Get方式:用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照U ...
- Jquery AJAX POST与GET之间的区别
1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 ...
- jQuery中的$.getJSON、$.ajax、$.get、$.post的区别
jQuery中的$.getJSON.$.ajax.$.get.$.post的区别 使用见Flask(python)异步(ajax)返回json格式数据 ①.$.getJSON $.getJSON()是 ...
- 第109天:Ajax请求GET和POST的区别
一.Ajax请求GET和POST的区别 1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来 2.使用Get请求发送数据量小,Post请求发送数据量大 3.get请求需注意缓存 ...
- 前端跨域问题,以及ajax,jsonp,json的区别
看了很多网上的资料,小七感觉都没有完全解决我的疑惑以及问题,所以特意拿出通俗易懂的话讲解跨域问题,以及ajax,jsonp,json的区别.首先先说跨域问题什么时候需要跨域?[1]域名不同(即网址不同 ...
- 浅谈Websocket、Ajax轮询和长轮询(long polling)
浅谈Websocket.Ajax轮询和长轮询(long p0ll) 最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket W ...
- php websocket-网页实时聊天之PHP实现websocket(ajax长轮询和websocket都可以时间网络聊天室)
php websocket-网页实时聊天之PHP实现websocket(ajax长轮询和websocket都可以时间网络聊天室) 一.总结 1.ajax长轮询和websocket都可以时间网络聊天室 ...
- jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别
jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别. 1 destroy属性是,销毁实例 ...
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别(转)
HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别 文章来源:http://www.cnblogs.com/beatIteWeNerverGiveU ...
随机推荐
- .NET程序的 GDI句柄泄露 的再反思
一:背景 1. 讲故事 上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋 ...
- debian 防火墙命令 nft
参考链接:nftables # which nft /usr/sbin/nft # dpkg -S /usr/sbin/nft nftables: /usr/sbin/nft # dpkg -L nf ...
- markdown之mermaid
官方文档 01 简单的流程图 TD或TB:top to bottom,从上到下的流程图 LR:从左到右 其它:RL,BT flowchart LR; A([节点A的圆矩框]) --> |AB之间 ...
- opencv-python 车牌检测和识别
首先利用级联分类器把车牌位置找到取出来,然后用ocr进行车牌识别. 1 OCR之Tesseract安装 Tesseract安装可以参考这个链接: https://blog.csdn.net/m0_53 ...
- go语言环境要这样搭建才"省钱"
go语言环境要这样搭建才省钱 目录 go语言环境要这样搭建才省钱 本篇概要 集成开发环境工具(ide) Goland或IntelliJ IDEA Visual Studio Code 其他集成开发环境 ...
- 从原理聊 JVM(五):JVM 的编译过程和优化手段
一.前端编译 前端编译就是将Java源码文件编译成Class文件的过程,编译过程分为4步: 1 准备 初始化插入式注解处理器(Annotation Processing Tool). 2 解析与填充符 ...
- 《SQLi-Labs》01. Less 1~5
@ 目录 前言 索引 Less-1 题解 原理 Less-2 题解 Less-3 题解 Less-4 题解 Less-5 题解 原理 sqli.开启新坑. 前言 对于新手,为了更加直观的看到 sql ...
- vue3+ts Axios封装—重复请求拦截
创建好vue3项目 1.安装Axios与Element Plus Axios安装 npm install axios Element Plus 安装 官网入口:https://element-plus ...
- redis单机、主从、哨兵、集群以及redisson分布式锁
1.搭建集群 Linux系统的Redis各版本下载路径:https://download.redis.io/releases/,建议下载5.0以上的版本,下载后进行解压安装 (1)单机版 安装环境 y ...
- Vue3中的Ref与Reactive:深入理解响应式编程
前言 Vue 3是一个功能强大的前端框架,它引入了一些令人兴奋的新特性,其中最引人注目的是ref和reactive.这两个API是Vue 3中响应式编程的核心,本文将深入探讨它们的用法和差异. 什么是 ...