http的 5个版本
- http/0.9
- 最初版本只有get请求
- 并且是短链接
- 只支持文本
- http/1.0
- 新增了head get等请求
- 增加状态码
- 引入了版本协议号的概念
- 引入了头部header的概念,使请求的处理更加灵活
- 传输不再限制只是文本类型
- http/1.1
- 增加了put,delete等方法
- 增加了缓存管理和控制
- 使用长连接
- 允许数据分块,利于传输大文件
- 强制要求加上host头部字段,让互联网主机托管成为可能
- 使用最多的协议
- http/2
- 二进制为基础协议,不再是纯文本
- 可以发起多个请求,放弃了1.1的管道
- 使用算法压缩头部,减少数据传输量
- 允许服务器向客户端推送数据
- 曾强了安全性,事实上 要求加密通信
- 还未普及
- http/3
- 使用QUIC协议,从 http over tcp/ip 升级到了, http over QUIC
- 很大概率会从http2.0 升级为http3.0
http是什么
简单理解 http是超文本传输协议
搞明白三个问题
- 他是一个协议,确定双方遵守的规范,以及各种控制和处理错误的处理方式
- 是用来传输的, 而不是来路由 或者广播的 ,即 两点之间传输 在这个两点间还可以有各种中间人
- 超文本的意思, 例如文本,视频 图片
所以 超文本传输协议 就是在 计算机世界里两点之间用来传输文本视频图片等数据的规范
和http相关的概念
互联网绝大部分部分资源都使用http协议来传输 ,但是也有其他的 ,例如 邮件 ,bt,ssh远程,ftp下载
- 浏览器是客户端 即 user Agent
- 服务器是服务端 常见的有apache,nginx, tomcat
- cdn是在客户端和服务端之间的中间人,主要是缓存和加速的作用
- 爬虫是另外一类的user agent,自动访问网络资源的程序,有的会傻乎乎的标示自己为 user agent:sider,大多数都会隐藏自己
扩展 : cdn 和网络极速器的区别
cdn 主要是到达服务器之前,如果这个资源存在那么就会直接给到客户端,不会经过服务端。 这样见到服务器的压力,同时
也缩短了客户端的响应时间。
网络加速器, 是在客户端 和服务器之间 原来是乡间小路,加速器厂商开辟了高速公路让客户端到达服务端的时间更短。