参考:

https://www.cnblogs.com/fuqiang88/p/5956363.html

https://www.cnblogs.com/zlingh/p/5887143.html

https://www.cnblogs.com/confach/p/10050437.html

  • HTTP

    • HTTP是非持久的协议

      • 服务端不用维护客户端信息,减少工作量
      • 不用维持tcp连接?
      • 最初的目的是传输html,所以一问一答就足够了
      • 但是有些情况需要保持状态,比如表单,可以通过cookie、session实现
    • HTTP的生命周期通过 Request 来界定,也就是一个 Request 一个 Response。
    • 被动型:其实就是,服务端不能主动联系客户端,只能有客户端发起
    • 1.0
      • 在 HTTP1.0 中,这次HTTP请求就结束了。
    • 1.1
      • 在HTTP1.1中进行了改进,使得有一个keep-alive(好像1.0也有,只是1.1默认开启了),也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。但是请记住 Request = Response, 在HTTP中永远是这样,也就是说一个request只能有一个response。而且这个response也是被动的,不能主动发起。
    • 2.0
      • 参考Google的SPDY
      • 二进制
      • 安全性
      • 连接复用等
  • HTML5
    • Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。通俗来说,可以用HTTP协议传输非Html数据。
  • 为了结局Http 1.0和1.1的问题(不能从协议层面复用tcp连接,导致每次都要握手和慢启动;安全性;)
    • 为了持续、实时性、貌似主动性的交互需求,在Websocket之前还出现过两种:

      • ajax轮训
      • long poll
    • Websocket
      • Websocket是一个持久化的协议
      • Websocket是基于HTTP协议的,或者说借用了HTTP的协议来完成一部分握手
      • Websocket 其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充
      • 必须客户端支持
    • SPDY和Http 2.0

何为被动性呢,其实就是,服务端不能主动联系客户端,只能有客户端发起

所有的新协议,都要客户端和服务器端都支持

  • Http 2.0

随机推荐

  1. HDU 1878 欧拉回路(无向图的欧拉回路)

    欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. sublime text3 FTP直接上传

  3. 技术流:6大类37种方式教你在国内推广App

    转自:http://www.gamelook.com.cn/2015/01/201906 如何有效的推广自己App,是每个发行商都要考虑的问题,当然每个产品都有适合自己的推广方式.本文就集结了包括应用 ...

  4. python开发模块基础:time&random

    一,time模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块 常用方法1.(线程)推迟指定的时间运行.单位为秒. time.sleep(1) #括号内为整数 2.获取当前 ...

  5. shell脚本把昨天的txt打成tar包

    now=`date '+%Y-%m-%d %H:%M:%S'` echo ${now} yesterday1=`date -d yesterday +%Y-%m-%d` echo ${yestoday ...

  6. 什么是AJAX?AJAX的原理

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重 ...

  7. md5加密小程序

    #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import hashlib m = hashlib.md5() m.updat ...

  8. js发送windows提示信息

    js发送windows提示信息 效果图 代码 Notification.requestPermission(function() { if(Notification.permission === 'g ...

  9. Windows下搭建PHP开发环境-WEB服务器

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

  10. Spring AOP 中pointcut expression表达式解析及配置

    Pointcut是指那些方法需要被执行”AOP”,是由”Pointcut Expression”来描述的. Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. ...