网络安全学习笔记——DNS

目录

基本概念

DNS

        域名服务器

        域名解析协议


                                                如果错过互联网,与你擦肩而过的不仅仅是机会,而是整整一个时代。

                                                

基本概念

        DNS(Domain Name System)

        DNS是将域名和IP地址一一映射的一个分布式数据库。提供DNS服务的服务器叫做域名服务器。   

               

        DNS也是运行在 UDP(TCP)上,使用53号端口,使主机能够查询分布式数据库的一种应用层协议。

DNS

        域名服务器

主域名服务器主域名服务器负责一片区域内所有的域名信息服务,是特定的权威信息源,数据可以修改。
辅助域名服务器辅助域名服务器可在主域名服务器故障时作为其备份进行信息服务,辅助域名服务器的信息是备份得来的,数据无法修改。
缓存域名服务器缓存域名服务器爬取了域名服务器的查询回答, 像网页快照一样,存在滞后问题,但其访问响应速度会大大提升。由于每次缓存数据的更新频率不固定,没有规律,所以用户访问的最新信息的概率和地域会出现差异。
转发域名服务器转发域名服务器是负责所有非本地域名的本地查询,在本地服务器无法查询到时,转发给指定服务器,并返回查询结果。

       工作原理

        查询域名对应的IP地址时,要经过以下步骤:

  1. 主机本地服务器进行递归查询;
  2. 本地服务器向根域名服务器进行迭代查询;
  3. 根域名服务器告诉本地服务器,下一步应查询顶级域名服务器的IP地址;
  4. 本地服务器向顶级域名服务器进行查询;
  5. 顶级域名服务器告诉本地域名服务器,应查询权限域名服务器的IP地址;
  6. 本地服务器向权限域名服务器进行查询;
  7. 权限域名服务器告诉本地服务器所查询的域名的IP地址;
  8. 本地服务器把结果告诉主机

        域名解析协议

        DNS协议默认通过UDP协议进行通讯,但是由于广域网不支持传输过大的UDP数据包,所以在报文长度超过512个字节的时候,应转换为TCP协议进行传输。所以,DNS可以使用TCP协议进行数据传输。 

        域名解析

        在进行DNS解析过程中,会进行以下步骤:

浏览器缓存先检查在浏览器中是否有缓存(一般情况下,浏览器会有2-30分钟内的缓存)
操作系统缓存检查域名是否存在于本地的Hosts文件,如果没有,则向DNS服务器发送查询请求
路由器缓存将请求发送给路由器,查找ISP服务商缓存的DNS服务器,直至查找到IP地址
ISP DNS缓存ISP DNS是电脑设置的首选DNS服务器,大多数情况下,上面都会有缓存
根域名服务器

在前面都没有查找到时,DNS服务器会将请求发送至根域

        域名缓存

        计算机中的DNS记录在本地有两种缓存方式:浏览器缓存和操作系统缓存。

        浏览器缓存:浏览器获取网站域名的IP后进行缓存,减少网络消耗。浏览器有固定的DNS缓存时间,在此期间不会重复请求

        操作系统缓存:即用户自己配置的Hosts文件。

        在浏览器中访问的时候,首先查找浏览器缓存,如果没有,则查找操作系统缓存,没有的话,再查询本地DNS服务器。主机和本地DNS服务器间的查询方式是递归查询,即本地服务器一定会给主机想要的答案。

        DNS查询

  • 递归查询:域名服务器代替用户进行查询,主机只需等待就好。如无法直接回答,则会在其分支的上进行查询,结果返回至分支上,不会返回至主机,主机那边只要一个结果。
  • 迭代查询:域名服务器收到用户的请求后,先在本地服务器上查找是否有此域名,如果没有,则查询哪可能会存放要查找的域名,后继续查找。主机一直和各个服务器存在交互

        查询结果是找到并返回结果和未找到,并返回错误,每次查询都会有结果返回。

        其他应用层协议使用DNS的过程

        同主机下,使用者从浏览器URL中抽取主机名,发送一个带有主机名的请求至DNS服务器,DNS回复一个带有主机名对应IP的报文,浏览器接收之后,向位于该IP地址的80端口HTTP服务器发起一个TCP连接。

        DNS常见记录及作用

        域名和IP之间的对应关系称为“记录(record)”。

  • SOA记录(Start Of Authority):起始授权记录,一个区域解析器有且仅有一条SOA记录,而且必须是第一条记录,主要说明管理员信息及时间参数;
  • A记录(Address):地址记录,返回域名指向的IP地址;
  • NS记录(Name Server):域名服务器记录,返回保存下一级域名信息的服务器地址,只能设置为域名,不能设置为IP地址,迭代解析,配合A记录使用;
  • MX记录(Mail eXchange):邮件记录,返回接收电子邮件的域名服务器;
  • CNAME记录(Canonical Name):规范名称记录,返回零一个域名,即当前查找的是另一个域名的跳转;
  • PTR记录(Pointer Record):逆向查询记录,从IP查域名。

        查询域名时,TTL生存周期,是递归结果在主机中的缓存时长,可以全局继承IN

网络/协议类型,目前DNS主要支持的协议就是IN。TYPE就是资源记录类型,一般都是A记录。RDATA资源记录数据,就是域名关联的信息数据。

        DNS最早于1983年由保罗·莫卡派乔森发明,原始技术在882和883号草案上规范。后1987年发布的1034和1035号草案修正了DNS的技术规范并废除此前规范。

        早期的域名必须以英文的句号结尾,DNS才会进行解析, 如今DNS服务器已经能够自动在末尾补上句号了。基于Punycode的IDNA系统可以将Unicode字符串映射为有效的DNS字符集,这已经通过了验证并被一些注册机构采纳。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,关于 jQuery 的事件,我可以和你分享一些学习笔记。 1. 绑定事件 在 jQuery 中,我们可以通过以下方式来绑定事件: ``` $(selector).event(function(){ // 事件处理程序 }) ``` 其中,`selector` 表示要绑定事件的元素,`event` 表示要绑定的事件类型,比如 `click`、`mouseover` 等等。事件处理程序则是在事件触发时要执行的代码块。 2. 多个事件绑定 我们可以通过 `on()` 方法来同时绑定多个事件: ``` $(selector).on({ event1: function(){ // 事件处理程序1 }, event2: function(){ // 事件处理程序2 } }) ``` 这样,当 `event1` 或 `event2` 中任意一个事件触发时,对应的处理程序都会被执行。 3. 解除事件 如果需要解除某个元素的事件处理程序,可以使用 `off()` 方法: ``` $(selector).off(event); ``` 其中,`event` 表示要解除的事件类型。如果不指定事件类型,则会解除该元素上所有的事件处理程序。 4. 事件委托 在 jQuery 中,我们可以使用事件委托来提高性能。事件委托是指将事件绑定到父元素上,而不是绑定到子元素上,然后通过事件冒泡来判断是哪个子元素触发了该事件。这样,当子元素数量较多时,只需要绑定一次事件,就可以监听到所有子元素的事件。 ``` $(selector).on(event, childSelector, function(){ // 事件处理程序 }) ``` 其中,`selector` 表示父元素,`event` 表示要绑定的事件类型,`childSelector` 表示要委托的子元素的选择器,事件处理程序则是在子元素触发事件时要执行的代码块。 以上是 jQuery 中事件的一些基本操作,希望对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nosery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值