(1)解析url,获取 url 中包含的域名;
(2)通过DNS服务器查询域名对应的IP;
(3)浏览器得到域名对应的IP地址之后,向服务器发起三次握手请求建立TCP链接;
(4)TCP链接链接建立起来后,浏览器向服务器发送http请求,
(5)服务器接收到请求后,根据路径参数映射到特定的处理器进行处理,并将处理结果以及相应的视图返回给浏览器。
(6)浏览器解析视图,并根据请求到的资源、数据进行渲染页面,最终向用户呈现一个完整的页面。
状态码(HTTP协议中规定的响应状态号。不同的响应结果对应不同的号码。)
在对称加密中,使用相同的密钥进行加密和解密。这意味着在通信双方之间共享一个密钥。通信双方使用该密钥加密和解密数据,以便只有知道密钥的人才能够解密和查看数据。
对称加密的好处是加密和解密速度较快,因为只需要进行一次操作。然而,其缺点是密钥的安全性是非常关键的,因为如果密钥被攻击者获得,那么攻击者就可以轻松地解密并查看通信内容。因此,在使用对称加密时,密钥的安全性必须得到保证。
简单说就是有两把密钥,通常一把叫做公钥、一把叫私钥,用公钥加密的内容必须用私钥才能解开,同样,私钥加密的内容只有公钥能解开。
HTTPS的加密却没使用这种方案,为什么?很重要的原因是非对称加密算法非常耗时,而对称加密快很多。
所以HTTPS采用的就是对称加密和非对称加密的混合加密方法。
HTTPS是在HTTP的基础上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。主要作用是:
(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
(2)对网站服务器进行真实身份认证;
首先TCP三次握手建立链接,这是数据传输基础,在此之上开始SSL加密;
客户端首先发送Client Hello开始SSL通信,报文中包含客户端支持的SSL版本、随机值Random1、加密算法以及密钥长度等;
服务器发送Server Hello,和客户端一样,在报文中包含SSL版本、随机值Random2以及加密组件,此后服务端将证书也发送到客户端;
此时客户端需要对服务端发送的证书进行验证,通过操作系统内置的CA证书,将服务器发送的证书的数字签名进行解密,并将证书的公钥进行相同算法的HASH与解密的数字签名解密的内容进行对比,验证证书是否合法有效,是否被劫持更换;
客户端验证证书合法,然后生成一个随机值Random3,用公钥对Random3进行加密,生成Pre-Master Key,客户端以Client Key Exchange报文将Pre-Master Key发送到服务端,此后发送Change Cipher Spec报文表示此后数据传输进行加密传输;
服务端将Pre-Master Key用自己的私钥解密为Random3,服务端发送Change Cipher Spec报文表示此后数据传输进行加密传输;
这时客户端与服务端都拥有三个随机字符串,且Random3是密文传输的,是安全状态的,此时则可以使用这三个字符串进行对称加密传输。由于非对称加密慢,不能每次传输数据都进行非对称加密,所以使用非对称加密将密钥协商好然后使用对称加密进行数据传输;
其中2、3、5、6也被称为SSL四次握手。