浏览一个网站时的整个过程(底层实现)

我们在生活中,无时无刻都会去搜索一些东西或去浏览一些网站,那么我们在浏览这些网站的时候,浏览器的底层会是怎么样实现我们的需求的呢?让我们看到我们想要看到的网站的呢?又是否会泄露我们的个人信息呢?这些问题都是值得我们去思考的。

首先,我们要知道的是我们现在使用的浏览器大部分都是基于HTTP(超文本传输协议)协议来实现的,当我们在想要浏览一个网页时,我们会在浏览器中输入一段网址或者域名,而HTTP协议的底层又是通过TCP协议实现的,默认端口号是80,我们都知道TCP协议是面向连接的,因此我们一定要与相应的服务器建立连接,而建立连接就一定需要IP地址和端口号,这时,我们输入的域名就需要通过DNS解析翻译成对应的IP地址,以便于我们可以根据IP来与服务器创建基于TCP的连接,当我们通过“三次握手”与服务器建立了基于TCP协议的连接后,浏览器会将我们输入的请求按照HTTP协议规范转化为HTTP格式的请求报文传输给目标服务器,当服务器接收到我们的请求时,会将请求报文中携带的请求信息进行解析并处理,然后会生成HTTP格式的数据包响应给浏览器,浏览器再通过一系列的解析、处理,最终呈现给我们一个网站,最后再通过“四次挥手”释放TCP连接。

配图解析如下:

然而,HTTP协议会存在一些安全问题,例如,它是使用明文来传递信息的,内容可能会被窃听;还有它不会去验证通信方的身份,通信方的身份有可能会遭遇伪装;最后就是它无法证明报文的完整性,报文有可能遭篡改。当我们浏览一些包含自己个人信息的网站,为了避免我们的个人信息泄露,我们会使用HTTPS,HTTPS不是一种新的协议,而是让HTTP先和SSL通信,再由SSL和TCP通信。通过使用SSL,HTTPS具有了加密(防窃听)、认证(防伪装)、和完整性保护(防篡改)的能力。

而我们在使用浏览器通过HTTPS去访问一个网站时,SSL会在HTTP协议的基础上,加上加密、认证等操作,SSL在加密方式上选择的是非对称秘钥加密的方式,这种加密方式更进一步保证了对网站加密的安全性,那么SSL是怎样对网站信息进行加密的呢?接下来,我们通过一幅图来进一步了解HTTPS的工作原理。

首先,当我们向服务器提交了一个https网站的请求时,服务器在收到请求后会选择浏览器支持的加密和hash算法,然后产生一个秘钥对(包含公钥和私钥),同时会返回给浏览器一个CA证书,这个证书里面就会含有服务器所产生的密钥对里面的公钥等信息,浏览器在收到这个证书后,会对证书的内容进行校验,如果有问题,则会有一个提示警告;否则,浏览器会产生一个随机秘钥,然后使用证书中的公钥对这个随机密钥进行非对称加密,将加密后的随机密钥发送给服务器,服务器在收到这个加密的随机密钥之后,会使用原来密钥对里面的秘钥对其进行解密,获取随机秘钥,然后用这个随机秘钥对浏览器所请求的网站内容进行对称加密,返回给浏览器,浏览器在收到网站内容后会使用自己持有的随机秘钥对其解密,最终获得我们需要的网站内容。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值