当前位置:   article > 正文

浏览器是如何进行区分你访问的网站是http还是https呢_如何判断所访问的网址的类型

如何判断所访问的网址的类型

浏览器是如何进行区分你访问的网站是http还是https呢?

      我用具体的操作进行分析。你也可以操作一下

 

我们在浏览器的地址栏中输入一个域名 taobao.com(不要按回车), 然后你将地址栏  ctrl+a 进行复制,粘贴到文本文件后,发现是http://taobao.com/  ,这是浏览器的默认解析,为其封装http协议和 80端口号。

那https呢,它是在服务端配置的。(不然浏览器不会出现https)

举个例子:

      以Nginx服务器为例,它是监听80端口,等待请求的访问,在监听的80端口上设置url重定向指向监听端口为443的https协议的网站, 这样浏览器就返回的是 https协议。

  1. server {
  2. listen 80; // 监听80
  3. rewrite ^(.*)$ https://$host$1 permanent; // 切换https
  4. access_log logs/host.access.log main;
  5. location / {
  6. #root /var/local/www; // 此处的目录不在发挥作用
  7. #autoindex_format html;
  8. index index.html index.htm;
  9. }
  10. }
  1. server {
  2. listen 443 ssl; // 监听443端口
  3. access_log logs/host.log main;
  4. ssl_certificate cert/junjunyou.top.pem; // 配置公钥
  5. ssl_certificate_key cert/junjunyou.top.key; // 私钥
  6. ssl_session_cache shared:SSL:1m;
  7. ssl_session_timeout 5m;
  8. ssl_ciphers HIGH:!aNULL:!MD5; // 选择加密套件,不同的浏览器所支持的套件(和顺序)可能会不同
  9. ssl_prefer_server_ciphers on;
  10. location / {
  11. root /var/local/www; // 443端口所只想的目录
  12. index index.html index.htm;
  13. }
  14. }

 

   浏览器中输入taobao.com , 并按下回车键,进行访问,此时,将地址栏中 内容进行拷贝,会发现已经成了  https://www.taobao.com/  浏览器默认为  https封装443端口号。

然后将其证书(ssl_certificate)【他也将作为一个服务器公钥后续使用】传回给客户端,客户端先进行验证

如果验证失败,那么放弃请求

如果验证成功,那么随机生成一个随机数作为对称加密的密钥B 使用服务器传回来的 证书对随机数进行加密,生成client key 发送给服务器

服务器使用私钥(ssl_certificate_key) 进行解密(非对称),得到客户端的的  对称加密密钥B

最后,浏览器和服务器之间使用密钥B作为对称加密密钥进行通信

 

其中使用了一次非对称加密。

后续使用对称加密和解密进行通信。 效率更高

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/731711
推荐阅读
相关标签
  

闽ICP备14008679号