8.7笔记(http和https)
作者:互联网
http的响应过程
http和https的区别
HTTP是服务器和客户端请求和应答标准,主要用于WWW服务器传输超文本到本地浏览器的传输协议
- 好处:
- 通信开销小,简单快速,传输成本低
- 结构简单,灵活,易于扩展。报文格式基本上都是body和header
- 使用灵活,允许客户端和服务器端传输任意类型的或者任意数据结构的对象
- 节约传输时间:多个对象只需要一个连接可传送,不需要传送一个web对象就去创建一个连接
- 因为是明文传输数据,方便调试
- 因为HTTP是无状态的,就很容易组成集群。也可以通过负载均衡转移到任何一个服务器上。
- 缺点:
- 由于传输数据都是明文,所以容易被窃取数据
- 无法验证通信双方的身份,依然在于安全性的问题
HTTPS是以安全为目的的HTTP的通道,HTTPS的安全基础是SSL
- 优点:
- 使用HTTPS可以认证对应的客户端和服务器,确保数据传输的准确性
- HTTPS是由SSL和HTTP构建协议的加密传输,比HTTP安全,防止数据再传输过程中不被窃取,改变,确保数据的完整性
- HTTPS不是绝对安全的,但是它增加了攻击者的攻击成本
- 缺点:
- HTTPS在握手阶段时间略长
- HTTPS的连接缓存不如HTTP高效
- SSL提高了一定的成本
- HTTPS无法保证绝对的安全
不同点
- HTTP协议传输的数据都是未加密的,这样就使HTTP传输隐私数据很不安全。所以就有了SSL协议对HTTP传输的数据进行加密处理,也就是后来的HTTPS
- HTTPS需要用到ca证书,HTTP则是免费的
- HTTP个HTTPS的连接方式不同,HTTP使用80端口,HTTPS使用的443端口
- HTTP的连接简单,还是无状态的;HTTPS是由SSL+HTTP进行加密传输,身份认证
HTTPS的连接方式:
- 客户使用HTTPS的URL访问Web服务器,并和web服务器简历SSL连接
- web服务器接收到请求后,会把网站的证书信息传给客户端
- 客户端的浏览器和web服务器拟定SSL连接的安全等级,也就是信息加密等级
- 客户端和服务器达成一致的安全等级,建立会话密钥,并用网站的公钥对密钥加密,并传给服务器
- Web服务器利用自己的私钥解出会话密钥
- Web利用会话密钥和客户端进行连接
输入URL的执行过程
-
输入url
-
因为计算机只识别IP地址,所以首先要把URL解析成IP地址(DNS解析)
DNS解析是一个递归查询的过程:
”www.google.com”
- 在本地服务器查找IP地址
- 本地域名服务器向根域名服务器发送请求
- 本地服务器向.com顶级域名服务器发送请求
- 本地域名服务器向.google.com域名发送请求,找到该域名。并把找到的域名返回给本机服务器
-
TCP连接:
HTTP协议是基于TCP协议作为传输层协议,当服务器拿到了IP地址后,客户端会和服务器建立TCP连接(三次握手)
三次握手主要是为了防止已经失效的请求报文发送给服务器,造成浪费资源。
-
浏览器发送HTTP请求
浏览器会构造http请求报文,并通过TCP协议传送到服务器的指定端口
请求报文:
- 请求头:描述浏览器的相关信息
- 请求行:治党http请求的方法
- 请求正文:当发送POST或者PUT等请求,都会存在请求正文中
-
服务器处理HTTP请求
服务器处理http请求并返回响应报文
报文包括:
- 状态码:1XX,2XX,3XX等
- 响应头:包含了响应的相关信息
- 响应正文:服务器返回给了浏览器的文本信息
-
浏览器进行页面渲染
浏览器接收到到服务器发送的报文,并进行html页面,渲染页面
-
断开TCP连接(四次挥手)
标签:HTTP,https,8.7,http,HTTPS,服务器,浏览器,客户端,请求 来源: https://www.cnblogs.com/MyBlog0626/p/15113134.html