12.28今日讨论:梳理应用层
1:应用层核心功能有哪些
不同的网络应用的应用进程之间有不同的规则,因此在传输层上还有有应用层,用来定义这些通信规则。
主要功能有文件传输,访问和管理;电子邮件;网络管理等
2:http协议的具体格式
请求:状态行,请求头,请求正文
响应:状态行,响应头,响应正文
其中状态行用来保存请求方式,路径,协议;请求头和响应头是应key-value格式提供一些参数比如cookie,accept-language等;请求正文和响应正文则是发送和响应回来的数据
3:你对 https 的理解,如何保证安全
客户端和服务器传输在https协议数据传输是经过加密的,否则传输的数据就很容易被黑客窃取了。
那么https是如何对数据进行加密的呢?主要是使用非对称加密,那非对称加密又使怎样实现的呢?
先说一下公钥和私钥,客户机发用服务器的公钥加密数据传送,服务器收到后用自己的私钥解密;服务器再用客户机的公钥加密数据传回去,客户机再用自己的私钥进行解密,这样就实现了数据的加密传输。总之,用公钥加密的数据,只有对应的私钥才能解密;用私钥加密的数据,只有对应的公钥才能解密。
但此时如果有黑客截取了服务器的公钥,用自己的公钥发送给了客户机,客户机收到后实际用的是黑客的公钥加密再传出去,黑客截取后就可以用自己的私钥解密;然后再用服务器的公钥加密重新发给客户机,那么此时对话内容仍然被窃取了,因此需要一个有公信力的认证中心(CA)来保证服务器发送给客户机的公钥就是服务器的公钥。
于是数字认证就出来了,那么它又是怎么实现的呢?
服务器再发送公钥的时候会将自己公钥和个人信息通过hash算法生成消息摘要,为了防止被掉包还要用CA的私钥对摘要信息加密形成数字签名。最后将原来没Hash算法之前的信息和数字签名合并在一起,形成数字证书。
当客户机拿到数字证书后,会用CA提供的公钥对数字证书进行解密得到一份消息摘要,然后再讲数字证书里的服务器公钥和个人信息进行Hash得到另一方消息摘要,若两份一致则可以判定此公钥是服务器的。
那么CA的公钥又是怎么来的呢?
其实服务器一开始就向认证中心(CA)申请了这些证书,客户端也会内置这些证书,当服务器发送数据给客户机时,客户机就会在内置的证书列表里查看是否有解开此数字证书的公钥。
4:说说你应用层有哪些协议
HTTP,HTTPS,FTP,DNS,DHCP等
5:DNS是什么,具体如何实现?
域名解析系统,就是将域名转化为ip地址。
DNS采用递归方式实现,本地host里查询不到映射时会向本地域名服务器,根域名服务器,顶级域名服务器,权限域名服务器请求是一个迭代的过程直至找到映射并将其返回。若最终仍没有则前端页面返回404.
网友评论