http中长连接和websocket的长连接的区别

一、什么是http协议

HTTP是一个应用层协议,无状态的,端口号为80。主要的版本有1.0/1.1/2.0.

  • HTTP/1.* 一次请求-响应,建立一个连接,用完关闭;
  • HTTP/1.1 串行化单线程处理,
    • 可以同时在同一个tcp链接上发送多个请求,
    • 但是只有响应是有顺序的,只有上一个请求完成后,下一个才能响应。
    • 一旦有任务处理超时等,后续任务只能被阻塞(线头阻塞);
  • HTTP/2 并行执行。某任务耗时严重,不会影响到任务正常执行

二、什么是websocket

  • Websocket是html5提出的一个协议规范,
    • 是为解决客户端与服务端实时通信
  • 本质上是一个基于tcp,
    • 先通过HTTP/HTTPS协议发起一条特殊的http请求进行握手后
      • 创建一个用于交换数据的TCP连接。
  • WebSocket优势: 浏览器和服务器只需要要做一个握手的动作,
    • 在建立连接之后,双方可以在任意时刻,相互推送信息
    • 同时,服务器与客户端之间交换的头信息很小

三、什么是长连接、短连接

四、http和websocket的长连接区别

  • HTTP1.1通过使用Connection:keep-alive进行长连接,
    • HTTP 1.1默认进行持久连接。
  • 在一次 TCP 连接中可以完成多个 HTTP 请求,
    • 但是对每个请求仍然要单独发 header,
    • Keep-Alive不会永久保持连接,它有一个保持时间,
    • 可以在不同的服务器软件(如Apache)中设定这个时间。
    • 这种长连接是一种“伪链接
  • websocket的长连接,
    • 是一个真的全双工。
    • 长连接第一次tcp链路建立之后,
    • 后续数据可以双方都进行发送,不需要发送请求头
  • keep-alive双方并没有建立正真的连接会话,
    • 服务端可以在任何一次请求完成后关闭
    • WebSocket 它本身就规定了是正真的、双工的长连接,
      • 两边都必须要维持住连接的状态。

转载于:https://my.oschina.net/u/3847203/blog/3029513

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值