1. HTTP和HTTPS的区别
1.HTTPS 需要向机构申请 CA 证书,极少免费。 2.HTTP 属于明文传输,HTTPS基于 SSL 进行加密传输。 3.HTTP 端口号为 80,HTTPS 端口号为 443 。 4.HTTPS 是加密传输,有身份验证的环节,更加安全。
2. 对称加密和非对称加密的区别
对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。常见的对称加密算法:DES,AES,3DES等等。 非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。常见的非对称加密算法:RSA,ECC等等。
3. TCP和UDP的区别
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。 UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。
4. HTTPS加密的阶段过程?
1.客户端访问HTTPS连接。客户端会把安全协议版本号、客户端支持的加密算法列表、随机数C发给服务端。 2、服务端发送证书给客户端。服务端接收密钥算法配件后,会和自己支持的加密算法列表进行比对,如果不符合,则断开连接。否则,服务端会在该算法列表中,选择一种对称算法(如AES)、一种公钥算法(如具有特定秘钥长度的RSA)和一种MAC算法发给客户端。服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。在发送加密算法的同时还会把数字证书和随机数S发送给客户端 3、客户端验证server证书。会对server公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续。 4、客户端组装会话秘钥。如果公钥合格,那么客户端会用服务器公钥来生成一个前主秘钥(Pre-Master Secret,PMS),并通过该前主秘钥和随机数C、S来组装成会话秘钥。 5、客户端将前主秘钥加密发送给服务端。是通过服务端的公钥来对前主秘钥进行非对称加密,发送给服务端。 6、服务端通过私钥解密得到前主秘钥。服务端接收到加密信息后,用私钥解密得到主秘钥。 7、服务端组装会话秘钥。服务端通过前主秘钥和随机数C、S来组装会话秘钥。至此,服务端和客户端都已经知道了用于此次会话的主秘钥。 8、数据传输。客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。同理,服务端收到客户端发送来的密文,用服务端密钥对其进行对称解密,得到客户端发送的数据。
5. HTTPS非对称加密的公钥和私钥以及对称加密的一对公钥放在哪?
服务器端的公钥和私钥,用来进行非对称加密 客户端生成的随机密钥,用来进行对称加密 HTTPS的原理
6. HTTPS为什么要经过三次握手而不是两次握手?
三次握手:客户端在与服务端建立连接的过程中,客户端向服务端发送连接请求,如果因为网络的原因,导致它超时触发了重传机制,那么客户端会重新向服务端发送一次连接请求,那有可能第二次发送的连接请求,服务端收到之后,直接返回给客户端确认连接的报文。如果只需要两次就可以建立连接,假如说第一次建立连接的请求终于被服务端接收到了,那服务端收到之后,会以为客户端想新建另外一个链接,这样的话就会建立两个连接。而采取三次握手,在客户端收到服务端的确认报文之后,客户端再向服务端发送一个确认报文,这时才正式建立连接。那么第一次因为超时而迟迟没有收到的建立连接的请求,这时在收到之后,服务端依然会向客户端返回一个确认报文,但是服务端现在已经与客户端建立的连接,所以客户端就不会再向服务端发送确认报文,服务端迟迟没有收到确认报文,那么也就不会真正的建立再一次连接。 四次挥手:建立的时候是双方面的建立,而释放的时候,也必然是客户端和服务端双方面的断开连接。客户端与服务端建立的连接是双通的,这也就意味着客户端可以向服务端发送请求,服务端向客户端返回响应,同样的也可以从服务端向客户端发送,然后由客户端向服务端返回,如果你只关闭了客户端,向服务端通道,这只叫半关闭状态,并没有完全的切断客户端与服务端的关联。
7. 当你从在浏览器输入URL回车之后会发生什么?
(1)首先会对 URL 进?解析,分析所需要使?的传输协议和请求的资源的路径。如果输?的URL 中的协议或者主机名不合法,将会把地址栏中输?的内容传递给搜索引擎。如果没有问题,浏览器会检查 URL 中是否出现了?法字符,如果存在?法字符,则对?法字符进?转义后再进?下?过程。 (2)浏览器会判断所请求的资源是否在缓存?,如果请求的资源在缓存?并且没有失效,那么就直接使?,否则向服务器发起新的请求。 (3)下?步我们?先需要获取的是输?的 URL 中的域名的 IP 地址,?先会判断本地是否有该域名的 IP 地址的缓存,如果有则使?,如果没有则向本地 DNS 服务器发起请求。本地 DNS 服务器也会先检查是否存在缓存,如果没有就会先向根域 名服务器发起请求,获得负责的顶级域名服务器的地址后,再向顶级域名服务器请求,然后获得负责的权威域名服务器的地址后,再向权威域名服务器发起请求,最终获得域名的 IP 地址后,本地 DNS 服务器再将这个IP 地址返回给请求的??。??向本地 DNS 服务器发起请求属于递归请求,本地 DNS 服务器向各级域名服务器发起请求属于迭代请求。 (4)当浏览器得到 IP 地址后,数据传输还需要知道?的主机 MAC 地址,因为应?层下发数据给传输层,TCP 协议会指定源端?号和?的端?号,然后下发给?络层。?络层会将本机地址作为源地址,获取的 IP 地址作为?的地址。然后将下发给 数据链路层,数据链路层的发送需要加?通信双?的 MAC 地址,我们本机的 MAC 地址作为源MAC 地址,?的 MAC 地址需要分情况处理,通过将 IP 地址与我们本机的??掩码相与,我们可以判断我们是否与请求主机在同?个???,如果 在同?个???,我们可以使? APR 协议获取到?的主机的 MAC 地址,如果我们不在?个???,那么我们的请求应该转发给我们的?关,由它代为转发,此时同样可以通过 ARP 协议来获取?关的 MAC 地址,此时?的主机的 MAC 地址应 该为?关的地址。 (5)下?是 TCP 建?连接的三次握?的过程,?先客?端向服务器发送?个 SYN 连接请求报?段和?个随机序号,服务端接收到请求后向服务器端发送?个 SYN ACK报?段,确认连接请求,并且也向客?端发送?个随机序号。客?端接收服务器的确认应答后,进?连接建?的状态,同时向服务器也发送?个 ACK 确认报?段,服务器端接收到确认后,也进?连接建?状态,此时双?的连接就建?起来了。 (6)如果使?的是 HTTPS 协议,在通信前还存在 TLS 的?个四次握?的过程。?先由客?端向服务器端发送使?的协议的版本号、?个随机数和可以使?的加密?法。服务器端收到后,确认加密的?法,也向客?端发送?个随机数和??的数字证书。客?端收到后,?先检查数字证书是否有效,如果有效,则再?成?个随机数,并使?证书中的公钥对随机数加密,然后发送给服务器端,并且还会提供?个前?所有内容的 hash 值供服务器端检验。服务器端接收后,使???的私钥对数据解密,同时向客?端发送?个前?所有内容的 hash 值供客?端检验。这个时候双?都有了三个随机数,按照之前所约定的加密?法,使?这三个随机数?成?把秘钥,以后双?通信前,就使?这个秘钥对数据进?加密后再传输。 (7)当??请求发送到服务器端后,服务器端会返回?个 html ?件作为响应,浏览器接收到响应后,开始对 html ?件进?解析,开始??的渲染过程。 (8)浏览器?先会根据 html ?件构建 DOM 树,根据解析到的 css ?件构建 CSSOM 树,如果遇到 script 标签,则判端是否含有 defer 或者 async 属性,要不然 script 的加载和执?会造成??的渲染的阻塞。当 DOM 树和 CSSOM 树建 ?好后,根据它们来构建渲染树。渲染树构建好后,会根据渲染树来进?布局。布局完成后,最后使?浏览器的 UI 接?对??进?绘制。这个时候整个??就显?出来了。 (9)最后?步是 TCP 断开连接的四次挥?过程。
HTTP的状态码有哪些?
HTTP状态码
|