HTTP总结
参考:
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也是被动的,不能主动发起。
- 在HTTP1.1中进行了改进,使得有一个keep-alive(好像1.0也有,只是1.1默认开启了),也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。但是请记住
- 2.0
- 参考Google的SPDY
- 二进制
- 安全性
- 连接复用等
- HTTP是非持久的协议
- 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
- 为了持续、实时性、貌似主动性的交互需求,在Websocket之前还出现过两种:
何为被动性呢,其实就是,服务端不能主动联系客户端,只能有客户端发起
所有的新协议,都要客户端和服务器端都支持
- Http 2.0
随机推荐
- js中如何将字符串转化为时间,并计算时间差
在前台页面开发时通常会用到计算两个时间的时间差,先在此附上实现方法 //结束时间 end_str = ("2014-01-01 10:15:00").replace(/-/g,&q ...
- Python——Dict
Python字典(Dictionary) 字典是一种可变容器模型,可存储任意类型对象. 字典的每个键值(key => value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花 ...
- html收藏
全屏显示<input type="button" name="fullscreen" value="全屏显示" onclick=&qu ...
- 移植OK6410'S dm9000ae…
转载自:http://lagignition.blog.163.com/blog/static/12873002320110443341961/
- 数据库与vs的连接
新建一个MFC基于对话框的项目后,更改属性, 其中需要将include(里面都是MySQL的头文件)lib是库文件,将.dll放入与.exe同级目录下,或放入系统里(c:\windows\system ...
- centos7使用frabric自动化部署LNMP
1.创建lnmp.py文件 $ vim lnmp.py ------------------------> #!/usr/bin/env python from fabric.colors im ...
- C# 堆和栈的区别?
解释1.栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义:堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小 解释2. 存放在栈中时要管存储顺 ...
- day18-事务与连接池 2.事务介绍与mysql下事务操作
这么玩 真的变了吗?把cmd窗口关闭了看看. 就是固定的套路才行:start transaction->执行SQL->rollback; 执行每一条SQL之前都要start transac ...
- 189. Rotate Array 从右边开始翻转数组
[抄题]: Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the ...
- Java 实现分页功能
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test?allowMultiQueries=true&useUnic ...