HTTP:http是一个超文本传输协议(明文传输,无法保证数据的完整性),是一个基于请求响应,无状态、应用层的协议,常用来TCP/IP协议传输数据
无状态:指协议对客户端没有状态存储,比如访问一个网站徐亚反复进行登录操作
无连接:由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接,比较耗费时间
基于请求和响应:基本的特性,由客户端发起请求、服务端响应
针对无状态的一些解决策略:
场景:逛电商商场用户需要使用的时间比较长,需要对用户一段时间的http通信状态进行保存,比如执行一次登录操作,在30分钟内所有的请求都不需要再次登录
解决方法:1.通过cookie/session技术 2.HTTP/1.1持久连接(HTTP keep-alive)方法,只要任意一段没有明确提出断开连接,则保持TCP连接状态,在请求首部字段中的connection:keep-alive即为表面使用持久连接
通信传输图:
客户端输入URL回车,DNS解析域名得到服务器的IP地址,服务器在80端口监听客户端请求,端口通过TCP/IP协议(可以通过Socket实现)建立连接。HTTP属于TCP/IP模型中的运用层协议,所以通信的过程其实是对应数据的入栈和出栈。
HTTPS:基于http协议,通过SSL或TLS提供加密处理数据,验证对方身份以及数据完整性保护
- 内容加密:采用混合加密技术,中间者无法直接查看明文内容
- 验证身份:通过证书认证客户端访问的是自己的服务器
- 保护数据完整性:防止传输的内容被中间人冒充或者篡改