同:建立在TCP之上,同http一样通过TCP来传输数据

不同:

HTTP协议为单向协议,即浏览器只能向服务器请求资源,服务器才能将数据传送给浏览器,而服务器不能主动向浏览器传递数据。分为长连接和短连接,短连接是每次http请求时都需要三次握手才能发送自己的请求,每个request对应一个response;长连接是短时间内保持连接,保持TCP不断开,指的是TCP连接。

WebSocket解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮询问题。

一种双向通信协议,在建立连接后,WebSocket服务器和Browser/UA都能主动的向对方发送或接收数据,就像Socket一样,不同的是WebSocket是一种建立在Web基础上的一种简单模拟Socket的协议;

WebSocket需要通过握手连接,类似于TCP它也需要客户端和服务器端进行握手连接,连接成功后才能相互通信。

WebSocket在建立握手连接时,数据是通过http协议传输的,“GET/chat HTTP/1.1”,这里面用到的只是http协议一些简单的字段。但是在建立连接之后,真正的数据传输阶段是不需要http协议参与的。

TCP/IP协议(用来传输数据)

socket是对TCP/IP协议的封装,本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP。

四层,分别为应用层(Telnet、FTP和Email等)、运输层(TCP、UDP)、网络层(IP、ICMP、IGMP等)和链路层(设备驱动程序)

三次握手完毕后,客户端与服务器才正式开始传送数据

四次挥手后断开连接

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认

TCP:面向连接,通过三次握手建立连接,通讯完成时要拆除连接,只能端到端传输

UDP:无连接,可实现广播发送

TCP/IP通信数据流

下面是我们访问一个网页,各种协议在里面起的作用。

以上图例来自《图解HTTP》

最新文章

  1. VS2015 调试Web项目 遭遇 HTTP 错误 500.23 - Internal Server Error
  2. 在AngularJS中的使用Highcharts图表控件
  3. php引用
  4. xml 的 CDATA
  5. HibernateDaoSupport和HibernateTemplate
  6. 掌握string.h里的常用函数
  7. 正则表达式 cheat sheet
  8. javascript:将URL的参数列表解析为一个对象
  9. ●UVA 11796 Dog Distance
  10. 通过jdbc完成单表的curd操作以及对JDBCUtils的封装
  11. Python二次编码、小数据池之心照神交
  12. android.support.v4.app.NotificationCompat引用包
  13. JavaScript动态加载CSS和JS文件
  14. postgresql中uuid的使用
  15. Cracking The Coding Interview 9.7
  16. 大数据入门到精通2--spark rdd 获得数据的三种方法
  17. nodejs 监控代码变动实现ftp上传
  18. LeetCode(11):盛最多水的容器
  19. 多媒体文件格式之MP4
  20. 分布式数据存储 shard(切片) 和 repali(副本) 的 节点数的关系。

热门文章

  1. 【Linux】【Fabric】在ubuntu容器中安装Fabric环境
  2. rsync和rsync后台模式
  3. Another Blog
  4. [CSP-S模拟测试]:卡常题/b(基环树+DP)
  5. docker-compose快速搭建 Prometheus+Grafana监控系统
  6. 【Java架构:基础技术】一篇文章搞掂:Spring Boot 官方文档解读
  7. 83、Tensorflow中的变量管理
  8. 使用python实现希尔、计数、基数排序
  9. 一个python练习
  10. PHP 代码编写注意事项总结归纳