渗透-01:DNS原理和HTML字符编码-HTML实体编码

一、DNS概念

DNS (Domain Name System 的缩写)就是根据域名查出IP地址(常用)
DNS分类:

  • 正向解析:已知域名解析IP
  • 反向解析:已知IP解析对应的域名

二、查询过程

工具软件dig可以显示整个查询过程

[root@node01 ~]# dig baidu.com; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46760
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:
;baidu.com.                     IN      A;; ANSWER SECTION:
baidu.com.              600     IN      A       110.242.68.66
baidu.com.              600     IN      A       39.156.66.10;; Query time: 12 msec
;; SERVER: 100.100.2.136#53(100.100.2.136)
;; WHEN: Tue Aug 01 16:27:15 CST 2023
;; MSG SIZE  rcvd: 59

第一部分:查询参数和统计

[root@node01 ~]# dig baidu.com; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46760
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

第二部分:查询内容

#  使用的A记录
;; QUESTION SECTION:
;baidu.com.                     IN      ADNS的几种记录:
A :IPV4正向解析记录
AAAA:IPV6正向解析记录
CNAME:别名
MX:邮箱
PTR:反向记录

第三部分:DNS的答复

;; ANSWER SECTION:
baidu.com.              600     IN      A       110.242.68.66
baidu.com.              600     IN      A       39.156.66.10上面结果显示,2个`A`记录,即2个IP地址。`600`是TTL值(Time to live 的缩写),表示缓存时间,即600秒之内不用重新查询。

第四部分:DNS服务器传输信息

;; Query time: 12 msec
;; SERVER: 100.100.2.136#53(100.100.2.136)
;; WHEN: Tue Aug 01 16:27:15 CST 2023
;; MSG SIZE  rcvd: 59上面结果显示,本机的DNS服务器是`100.100.2.136`,查询端口是53(DNS服务器的默认端口),以及回应长度是59字节。如果不想看到这么多内容,可以使用`+short`参数,只返回了对应记录的IP
[root@node01 ~]# dig +short baidu.com
39.156.66.10
110.242.68.66

三、域名的层级

DNS服务器通过递归查询和迭代查询来获取DNS,请仔细看前面的例子,每个域名的尾部都多了一个点。

域名最后哪一个小点是根域名。举例来说,www.example.com真正的域名是www.example.com.root,简写为www.example.com.。因为,根域名.root对于所有域名都是一样的,所以平时是省略的。

根域名的下一级,叫做"顶级域名"(top-level domain,缩写为TLD),比如.com.net;再下一级叫做"次级域名"(second-level domain,缩写为SLD),比如www.example.com里面的.example,这一级域名是用户可以注册的;再下一级是主机名(host),比如www.example.com里面的www,又称为"三级域名",这是用户在自己的域里面为服务器分配的名称,是用户可以任意分配的。

四、根域名服务器

DNS服务器根据域名的层级,进行分级查询。需要明确的是,每一级域名都有自己的NS记录,NS记录指向该级域名的域名服务器。这些服务器知道下一级域名的各种记录。所谓"分级查询",就是从根域名开始,依次查询每一级域名的NS记录,直到查到最终的IP地址,过程大致如下。

  1. 从"根域名服务器"查到"顶级域名服务器"的NS记录和A记录(IP地址)
  2. 从"顶级域名服务器"查到"次级域名服务器"的NS记录和A记录(IP地址)
  3. 从"次级域名服务器"查出"主机名"的IP地址

五、分级查询例子

上面命令的第一段列出根域名.的所有NS记录,即所有根域名服务器,根据内置的根域名服务器IP地址,DNS服务器向所有这些IP地址发出查询请求,询问math.stackexchange.com的顶级域名服务器com.的NS记录。最先回复的根域名服务器将被缓存,以后只向这台服务器发请求。

接着是第二段
上面结果显示.com域名的13条NS记录,同时返回的还有每一条记录对应的IP地址。然后,DNS服务器向这些顶级域名服务器发出查询请求,询问math.stackexchange.com的次级域名stackexchange.com的NS记录。


上面结果显示stackexchange.com有四条NS记录,同时返回的还有每一条NS记录对应的IP地址。然后,DNS服务器向上面这四台NS服务器查询math.stackexchange.com的主机名。

上面结果显示,math.stackexchange.com有4条A记录,即这四个IP地址都可以访问到网站。并且还显示,最先返回结果的NS服务器是ns-925.awsdns-51.net,IP地址为205.251.195.157

六、HTML字符编码

网页包含了大量的文字,浏览器必须知道这些文字的编码方法,才能把文字还原出来。一般情况下,服务器向浏览器发送 HTML 网页文件时,会通过 HTTP 头信息,声明网页的编码方式。

字符的数字表示法

网页可以使用不同语言的编码方式,但是最常用的编码是 UTF-8。UTF-8 编码是 Unicode 字符集的一种表达方式。

举例来说,英文字母a的码点是十进制的97(十六进制的61),汉字“中”的码点是十进制的20013(十六进制的4e2d)。

由于下面的原因,不是每一个 Unicode 字符都能直接在 HTML 语言里面显示。

(1)不是每个 Unicode 字符都可以打印出来,有些没有可打印形式,比如换行符的码点是十进制的10(十六进制的A),就没有对应的字面形式。

(2)小于号(<)和大于号(>)用来定义 HTML 标签,其他需要用到这两个符号的场合,必须防止它们被解释成标签。

(3)由于 Unicode 字符太多,无法找到一种输入法,可以直接输入所有这些字符。换言之,没有一种键盘,有办法输入所有符号。

(4)网页不允许混合使用多种编码,如果使用 UTF-8 编码的同时,又想插入其他编码的字符,就会很困难。

HTML 为了解决上面这些问题,允许使用 Unicode 码点表示字符,浏览器会自动将码点转成对应的字符。

<p>hello</p>
<!-- 等同于 -->
十进制
<p>&#104;&#101;&#108;&#108;&#111;</p>
<!-- 等同于 -->
十六进制
<p>&#x68;&#x65;&#x6c;&#x6c;&#x6f;</p>

上面代码中,字符可以直接表示,也可以使用十进制码点或十六进制码点表示。

注意,HTML 标签本身不能使用码点表示,否则浏览器会认为这是所要显示的文本内容,而不是标签。比如,<p>一旦写成<&#112;>或者&#60;&#112;&#62;,浏览器就不再认为这是标签了,而会当作文本内容将其显示为<p>

七、HTML实体编码

数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆。为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity)。

实体的写法是&name;,其中的name是字符的名字。下面是其中一些特殊字符,及其对应的实体。

  • <&lt;
  • >&gt;
  • "&quot;
  • '&apos;
  • &&amp;
  • ©&copy;
  • #&num;
  • §&sect;
  • ¥&yen;
  • $&dollar;
  • £&pound;
  • ¢&cent;
  • %&percnt;
  • *$ast;
  • @&commat;
  • ^&Hat;
  • ±&plusmn;
  • 空格:&nbsp;

字符的数字表示法和实体表示法,都可以表示正常情况无法输入的字符,逃脱了浏览器的限制,所以英语里面称为“escape”,中文翻译为“字符的转义”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/53967.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust中的高吞吐量流处理

本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库&#xff0c;还使用这些库实现了一个流处理程序。 最后&#xff0c;作者介绍了如何通过测量空闲和阻塞时间来优化流处理程序的性能&#xff0c;并将这些内容同步至…

初识MySQL数据库之用户管理

目录 一、用户管理 二、用户 1. 用户信息 2. 创建用户 3. 用户登录测试 4. 删除用户 5. 设置用户远端登录 6. 修改密码 6.1 修改当前用户的密码 6.2 root用户修改指定用户的密码 三、权限 1. 数据库中的各个权限含义 2. 给用户授权 3. 查看用户拥有权限 4. 授权…

用于大型图像模型的 CNN 内核的最新内容

一、说明 由于OpenAI的ChatGPT的巨大成功引发了大语言模型的繁荣&#xff0c;许多人预见到大图像模型的下一个突破。在这个领域&#xff0c;可以提示视觉模型分析甚至生成图像和视频&#xff0c;其方式类似于我们目前提示 ChatGPT 的方式。 用于大型图像模型的最新深度学习方法…

Kubernetes详细概述

这里写目录标题 一&#xff1a;Kubernetes 概述1、K8S 是什么&#xff1f;2、为什么要用 K8S?2.1.nsenter 是k8s容器抓包工具 3、Kubernetes 集群架构与组件4.核心组件4.1 Master 组件4.1.1.Kube-apiserver4.1.2.Kube-controller-manager4.1.3.Kube-scheduler 4.2 配置存储中心…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前数据吞吐量(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来获取相机当前数据吞吐量&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在BGAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过BGAPI SDK获取…

一起学算法(栈篇)

1.栈的概念 1.栈的定义 栈是仅限在表尾进行插入和删除的线性表&#xff0c;栈又被称为先进后出的线性表&#xff0c;简称“LIFO” 我们这次用数组作为我们栈的底层数据结构&#xff0c;代码会放到结尾供大家参考使用 2.栈顶的定义 栈是一个线性表&#xff0c;我们允许插入…

网络开发-IO模型

基本概念 I/O即数据的读取&#xff08;接收&#xff09;或写入&#xff08;发送&#xff09;操作 通常用户进程中的一个完整I/O分为两个阶段 用户进程空间<-->内核空间内核空间<-->设备空间&#xff08;磁盘、网卡等&#xff09; I/O分为内存I/O、网络I/O和磁盘…

[FlareOn6]FlareBear

前言 apk的逆向&#xff0c;没有壳&#xff0c;但可能做的不是太多&#xff0c;没能想到整个算法的运作原理 分析 搜索flag会发现存在这么一个函数&#xff0c;那么显示flag的时候应该是熊会跳舞显示flag,只要满足熊happy和ecsstatic就可以&#xff0c;happy只要一直存在点击…

MySQL 重置root 密码

5.7 版本 首先要把服务mysql57 关闭 net stop MySQL57 在安装的mysql57的程序的bin中 运行cmd&#xff08;管理员运行&#xff09; mysqld --defaults-file‘mysql存放数据的位置\my.ini’ --skip-grant-tables 上图 错误 注意&#xff1a;如果遇到mysqld: Can’t change dir…

echarts-pie---------3D曲状环形饼图实现!!!

示例&#xff08;参考此处饼图修改https://www.isqqw.com/viewer?id37497&#xff09; 话不多说直接上代码 此套代码可以直接再echarts官网中的此处运行 let selectedIndex ; let hoveredIndex ; option getPie3D([{name: 数学,value: 60,itemStyle: {color: #1890FF,},},{…

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统 ⭐前言&#x1f31c;Cloud Studio产品介绍1.登录2.创建工作空间3.工作空间界面简介4.环境的使用 ⭐实验实操&#x1f31c;Cloud Studio实现图书管理系统1.实验目的 2. 实验过程2.实验环境3.源码讲解3.1添加数据…

WebRTC 之音视频同步

在网络视频会议中&#xff0c; 我们常会遇到音视频不同步的问题&#xff0c; 我们有一个专有名词 lip-sync 唇同步来描述这类问题&#xff0c;当我们看到人的嘴唇动作与听到的声音对不上的时候&#xff0c;不同步的问题就出现了 而在线会议中&#xff0c; 听见清晰的声音是优先…