计算机网络面经之HTTP协议(二)

6、HTTPS请求的步骤(握手的过程)?

HTTPS的请求过程如下:

客户端发起HTTPS请求

服务端的配置: 采用HTTPS协议的服务器必须要有一套数字证书(CA证书)。这套证书其实就是一对公钥和私钥。公钥给客户端加密使用,私钥给自己解密使用。

服务端向客户端传送证书,这个证书其实就是公钥

客户端解析证书: 这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值,然后用证书对该随机值进行加密。

客户端向服务端传送加密信息: 这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了

服务端解密信息: 服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。

传输加密后的信息: 这部分信息是服务段用私钥加密后的信息,可以在客户端被被解密。

客户端解密信息: 客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容。

【一句话】:(1)客户端发出请求;(2)服务器端将数字证书(公钥)发送给客户端;(3)客户端验证公钥有效后,生成一个随机值;(4)客户端用公钥把随机值加密后发送给服务端;(5)服务端用私钥进行解密,得到随机值;(6)服务端将请求用这个随机值进行加密后发送给客户端;(7)客户端用随机值对数据进行解密

【注意】(4)、(5)步是HTTPS的非对称加密,因为加密和解密分别用公钥和私钥;而(6)、(7)是HTTPS的对称加密,他们都用共同的随机值进行加密和解密。


在这里插入图片描述

7、 HTTPS为什么是安全的?

HTTPS是HTTP和SSL组合而成的,在传输层使用了SSL进行加密,保证了只有拥有私钥的才能看到信

8、HTTP和HTTPS协议的区别?

HTTPS协议需要CA证书,费用较高;HTTP协议不需要
HTTP协议是超文本传输协议,信息是明文传输的,HTTPS则是具有安全性的SSL加密传输协议
使用不同的连接方式,端口也不同,HTTP协议端口是80,HTTPS的协议端口是443
HTTP协议连接很简单,是无状态的;HTTPS协议是有SSL和HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP更加安全

【一句话:(1)费用;(2)安全性;(3)端口;(4)】

9、为什么用非对称加密协商对称加密密钥

对称加密的特点:对称密码体制中只有一种密钥,并且是非公开的。如果要解密就得让对方知道密钥,所以想要保证其安全性就要保证密钥的安全

非对称加密的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,这样安全性就大了很多。

非对称加密公钥和私钥的使用方法:(1) 公钥加密私钥解密。(2) 私钥做数字签名,公钥验证。

10、 简述http请求过程

在这里插入图片描述

建立TCP连接
Web浏览器首先要通过网络与Web服务器之间通过TCP建立连接,TCP与IP协议共同构建Internet
(1)HTTP协议是比TCP处于更高层的应用层协议,只有当低层协议建立练接之后才能进行更高层次的连接
(2)TCP连接的端口号一般是80

Web浏览器向Web服务器发送请求行
建立TCP连接之后,Web浏览器会向Web服务器发送请求命令
Web浏览器向服务器发送请求头
浏览器发送请求信息之后,还要以头信息的形式发送相关信息,并以空行代表发送结束
Web服务器应答
Web服务器接收请求后返回应答,第一部分是协议的版本号和应答状态码
例:“HTTP/1.1 200OK”

Web服务器发送应答头
服务器也会随着应答发送一些相关信息,并以空行代表发送结束
Web服务器发送数据
Web服务器向浏览器发送头信息之后,就以Content-Type格式发送用户所请求的信息
Web服务器关闭TCP连接
一般情况下,一旦Web服务器向浏览器发送请求数据后,就要关闭TCP连接了
若浏览器或者服务器的头信息中加入了这样一段代码:
connection:Keep-alive
则TCP连接会保持打开状态,可以继续通过相同的连接发送请求

[第一种回答]

  • 建立起客户机和服务器连接。
  • 建立连接后,客户机发送一个请求给服务器。
  • 服务器收到请求给予响应信息。
  • 客户端浏览器将返回的内容解析并呈现,断开连接。

11、 cookies机制和session机制的区别

1、cookies数据保存在客户端。session数据保存在服务端

2、cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗

3、session安全一点,但是占用服务器资源。

12、如何保证公钥不被篡改?

将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。

数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。

13、Cookies和Session区别是什么?

Cookie和Session都是客户端与服务器之间保持状态的解决方案

1,存储的位置不同,cookie:存放在客户端,session:存放在服务端。Session存储的数据比较安全

2,存储的数据类型不同 两者都是key-value的结构,但针对value的类型是有差异的。 cookie:value只能是字符串类型,session:value是Object类型

3,存储的数据大小限制不同 。cookie:大小受浏览器的限制,很多是是4K的大小, session:理论上受当前内存的限制,

4,生命周期的控制 cookie的生命周期当浏览器关闭的时候,就消亡了 (1)cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,cookie生命周期结束, (2)session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问session,那么session生命周期被销毁

14、请你说说TCP/IP数据链路层的交互过程(ARP协议)

(1)首先会去自己的arp缓存表(存着ip-mac对应关系)去查找改目标ip的mac地址,如果查到了,就将目标ip的mac地址封装到链路层数据包的包头。

(2)如果缓存中没有找到,会发起一个广播:who is ip XXX tell ip XXX,所有收到的广播的机器看这个ip是不是自己的,如果是自己的,则以单拨的形式将自己的mac地址回复给请求的机器

15、在浏览器中输入url地址后显示主页的过程?

  • 根据域名,进行DNS域名解析;
  • 拿到解析的IP地址,建立TCP连接;
  • 向IP地址,发送HTTP请求;
  • 服务器处理请求;
  • 返回响应结果;
  • 关闭TCP连接;
  • 浏览器解析HTML;
  • 浏览器布局渲染;

16、浏览器输入了URL后,发生了什么

(1)浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址

(2)根据这个IP地址与目标服务器建立TCP连接

(3)建立起连接后浏览器发出读取文件的HTTP请求

(4)服务器对浏览器的请求作出响应,并把html文本发给浏览器

(5)释放TCP连接

(6)浏览器将html文本显示出来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值