http协议
(Hyper Text Transfer Protocol,HTTP)超文本传输协议。是一个客户端和服务器端请求和应答的标准(TCP),用于从www服务器传输超文本到本地浏览器的传输协议。是一个简单的请求与响应、无状态的、应用层的协议协议,常基于TCP/IP协议传输数据,是互联网上应用最为广泛的传输协议。
http的发展史
版本 | 产生时间 | 内容 | 发展现状 |
---|---|---|---|
HTTP/0.9 | 1991年 | 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 | 没有作为正式的标准 |
HTTP/1.0 | 1996年 | 传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令 | 正式作为标准 |
HTTP/1.1 | 1997年 | 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 | 2015年前使用最广泛 |
HTTP/2 | 2015年 | 多路复用、服务器推送、头信息压缩、二进制协议等 | 逐渐覆盖市场 |
请求报文格式:
- 请求行
- 通用信息头
- 请求头
- 实体头
- 报文主体
应答报文格式: - 状态行
- 通用信息头
- 响应体
- 实体头
- 报文实体
https协议
(Secure Hyper Text Transfer Protocol,HTTPS)安全超文本传输协议。是在HTTP上建立SSL加密层,对传输数据进行加密,是http协议的安全版。作用:对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;对网站服务器进行身份认证。
http协议采用明文传输,存在信息窃听、信息篡改和信息劫持的风险,而TSL/SSL协议具有身份验证、信息加密和完整性校验的功能,可以避免此类问题发生。
TSL/SSL全称是安全传输层协议Transport Layer Security,是介于TCP和HTTP之间的一层安全协议,不影响原有的TCP和http协议,所以使用https基本上不需要对http页面进行太多的改造。
http和https的区别
- http是明文传输协议,https是加密传输协议
- https需要用到SSL证书,而HTTP不用
- https比http更加安全,对搜索引擎更加友好,利于SEO
- http标准端口80,https标准端口443
- http基于应用层,https基于传输层
- https在浏览器显示绿色安全锁,http没有显示
https的缺点
- https协议握手阶段比较费时,会使页面的加载时间延长将近50%,增加10%到20%的耗电
- https连接缓存不如http高效,会增加数据开销和功耗,甚至已有的安全措施也会因此收到影响
- SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要,一般也不会用。
- SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支持这个消耗
- https协议的加密范围比较有限,在黑客攻击、拒绝服务器攻击、服务器劫持等方面几乎不起作用。最为关键的是SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。