浏览器使用内置的根证书中的公钥来对收到的证书进行认证,如果一致,就表示该安全证书是由可信任的颁证机构签发的,这个网站就是安全可靠的;如果该SSL证书不是根服务器签发的,浏览器就会自动检查上一级的发证机构,直到找到相应的根证书颁发机构,如果该根证书颁发机构是可信的,这个网站的SSL证 书也是可信的。
ssl握手过程客户端向服务端发出加密通信的请求。这被叫做clientHello请求,
包括支持的协议版本,一个随机数用于等会生成会话密钥,支持的加密方法,支持的压缩方法
回应,serverhello,
确认加密通信协议的版本,一个随机数用于稍后生成会话密钥,确定加密方法,服务器的证书
客户端验证服务端证书是否为可信机构颁步,如果不可信会给访问者一个警告有起决定是否继续通信,
返回一个随机数用于公钥加密,编码改变通知(之后的信息都用双方商定的加密方法和密钥发生),客户端握手结束的通知
服务端收到客户端的第三个随机数后,计算生成本次会话用的“会话密钥”,然后向客户端发送下面信息:
编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。
http协议实在太重要,涉及到的知识点比较多,这里只是浅尝辄止。之后会单开一篇文章专门讲http协议,当然这里推荐三元大佬写的文章HTTP灵魂之问,巩固你的 HTTP 知识体系.
为什么ssl证书有过期时间最重要的原因在于吊销。当网站丢失了私钥后,应该向证书颁发机构(ca)申请将其证书放入吊销列表。如果证书永久有效,吊销列表越来越大,会给浏览器和ca机构增加很大的流量压力。而如果有过期时间,那么ca可以剔除过期的网站,浏览器也不信任过期的证书。
ftp如上图,ftp协议作为一个文件传输协议,它的基本流程如下:
用户提供远程服务器上注册的uid和password进行用户认证,认证成功后建立TCP连接。
用户通过ftp用户接口从本地的文件系统中上传文件经TCP连接到达远TCP端服务器。
远端服务器将文件写入远程文件系统,至此一个文件上传到远端服务器的工作完成。
与http协议的异同ftp和http都是文件传输协议,并且传输层都基于TCP协议。
而他们最显著的区别在于ftp协议使用了两个并行的TCP连接(控制连接和数据连接)来保证数据的传输。控制连接主要用于上述提到的用户认证以及文件存取标识(也就是标识当前是读取文件还是存放文件)等;数据连接用于传输文件数据。
http默认端口是80;ftp默认端口是20和21
dnsdns是一个域名解析协议,通常会配合其他应用层协议完成相应的需求。在谈dns之间需要先明确几个概念,分别是域名,ip地址,用户主机地址(mac地址)。
域名域名可以被近似地看作ip地址的别名,简单来说就是你每天看到的各种网站。有一个形象的比喻是:ip地址就像你的身份证号,而域名就像你的名字一样,名字比身份证号更容易记忆。但有所不同的是域名不会发生重名的情况(想想为什么不能)。
ip地址主机的主板上有一块名为网卡的硬件,它内部考录了mac地址,用于标识一台主机的物理地址。但由于不同厂商指定的标准不同,mac地址的编址方式也是千奇百怪。这是有人提出:创建一个逻辑层,用虚拟的ip地址映射真实的mac地址,再将ip地址的编址方式制定为一个全球通用的标准就行了。因此ip地址实际上是一个逻辑上的地址,但我们暂时不用关注ip地址和mac地址如何映射的,将ip地址视为电脑主机的网络地址标识即可。
mac地址主机的物理地址,用于唯一标识一台主机的。当然一台主机不一定只有一个网卡,比如笔记本电脑通常含一个有线网卡和一个无线网卡。
dns解析流程其实最早的域名解析是采用本地文件hosts文件进行解析的,但随着互联网网站越来越多,显然用文件解析的方式不符合这样的需求。steam玩家对此应该不陌生:
一个域名的解析顺序如下:
如果夏尔的域名是 ciel.jialidun.edu,慕恩的域名是moon.nannvnan.edu,那么夏尔的主机是怎么获取慕恩的ip呢?
emmm,是不是跟想象中的有点不一样呢,接下来听我一一道来。首先弄清楚上图中各个dns服务器到底有怎样的职责。
dns分布式结构dns服务器大体上可分为根服务器,顶级域服务器,权威服务器。
根服务器类似于树的根部,属于dns服务器的顶层,多数部署在北美洲。
顶级域服务器,常见的 com cn edu org ,比如代表国家的cn uk ca 等。
权威服务器,在因特网上具有公共可访问的主机。如学校,大型公司等机构。
那么之前的流程就很好解释了,夏尔发送了域名解析请求,其中包括源域名和目标域名。
本地权威服务器会接收到该请求并查看目标域名是否是自己的管辖区域,如果不是它将把该请求转发给根服务器。