应用层:
- 为应用软件提供接口,使应用程序能够使用网络服务。 关于架构:
- Client: 客户端,访问服务。
- Server: 服务端,提供服务。
- C/S架构: Client/Server,客户端/服务端。
- B/S架构: Browser/Server,浏览器/服务端。 为什么需要域名:
DNS: Domain Name System 域名解析系统
- 负责解析IP地址与域名之间的映射关系。
- 正向解析:将域名解析为IP地址【Domain->IP】。
- 反向解析:将IP地址解析为域名【IP->Domain】。
- ping是网络层的 ,所以它pingDNS服务器ping不通,因为它发的是网络层的包,而且DNS是应用层的。
- icmp是ping的包 域名的结构:FQDN【完全合格域名】
一个域名的读法是从左向右读的,但是它的结构是从右往左去展开的
- 一个域名可以有多个IP地址
- 一个IP地址可以有多个域名
- 一台服务器可做多个角色
根(root)域
- A 将域名指向一个IPv4地址
- AAAA将域名指向一个IPv6地址
- CNAME将一个域名指向另一个域名
- MX将域名指向邮件服务器地址,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器地址。
DNS查询过程:
递归查询 | 一般发生在客户端与本地服务端。 只发一次请求,要求对方给出最终结果。 结果只有两种:查询成功或查询失败 |
迭代查询 | 一般发生在本地服务端与外网服务端。 发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其他服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器。 又称作重指引,返回的是最佳的查询点或者主机地址。 |
- 授权回答:向服务器查询域名时,刚好这个域名是本服务器负责,返回的结果就是授权回答。 如何获得权威回答:
- 解析域名服务器获取域名服务器的IP地址
- 通过server+IP地址命令临时把DNS服务器改为域名服务器
- 然后再解析域名就获得了权威回答
抓包:
- 给你回复了几种ip代表你进行了多少种不同的请求
- 查询/响应:查询为0/响应为1
- 是否获得了域名解析看答案数/附加答案数,若无则为0
- IPv4地址请求对应的类型type是1
- IPv6地址请求对应的类型type是28
- 权威/非权威:权限回答灯是否亮起,亮起表示这个字段里面二进制位置一/权限资源答案数1代表它是非权威的还要去找权威服务器
- 权限资源记录集中的服务器主名称:为域名的权威服务器
- 当数据包无法到达目标时,路由器会返回ICMP报文(如类型3「目标不可达」),包含具体错误代码(如端口不可达、协议不可达等)。
- 域名解析出来不一定能通,因为可能ip地址是假的 CDN加速原理:
- CDN是内容分发网络,通过将内容缓存到离用户更近的节点来加速访问。
- 第一步给你一个加速域名,然后你通过设置CNAME(别名)记录将用户访问的别名指向加速域名
- 然后用户访问别名DNS查询首先会解析出该别名对应的加速域名,加速域名会通过DNS解析到一个全局负载均衡器(GSLB)。
- GSLB负责根据多个因素(例如用户的地理位置、服务器的负载、网络延迟等)选择最佳的边缘节点进行响应,GSLB会返回一个最适合用户请求的CDN节点的IP地址。这个节点通常是离用户地理位置最近、负载最轻的服务器。
- 根据DNS解析和GSLB的决策,用户最终会得到一个指向最近、最优的CDN边缘节点的IP地址。用户通过该IP与CDN节点进行通信,从而加速获取网站内容。 Windows相关命令:
HTTP: Hypertext Transfer Protocol,超文本传输协议
- 互联网上应用最为广泛的一种网络协议。
- 设计HTTP最初的目的是为了提供了一种发布和接收HTML页面的方法。
- 当在浏览器输入URL后,从服务器获取HTML文件呈现出内容。
- HTTP请求
- HTTP响应
- HTTP vs HTTPS:
- HTTP:是一种用于分布式、协作式和超媒体信息系统的应用层协议
- 默认工作在TCP协议80端口
- http://开头访问服务
- HTTP协议以明文方式发送内容,不提供任何方式的数据加密
- HTTPS=HTTP+SSL:基于SSL协议的网站加密传输协议,是HTTP的安全版
- 默认工作在TCP协议的443端口
- https://开头访问服务
- 数据传输过程是加密的,安全性较好,提供对网站服务器的身份认证,保护交换数据的隐私与完整性
- HTTP:是一种用于分布式、协作式和超媒体信息系统的应用层协议
- 下面是常见的 HTTP 状态码:
- 1xx(信息性状态码):表示接收的请求正在处理。
- 2xx(成功状态码):表示请求正常处理完毕。//200表示OK
- 3xx(重定向状态码):需要后续操作才能完成这一请求。
- 4xx(客户端错误状态码):表示请求包含语法错误或无法完成。
- 5xx(服务器错误状态码):服务器在处理请求的过程中发生了错误。 例子: 403/Forbidden:服务器理解请求客户端的请求,但是拒绝执行此请求。 404/Not Found:服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面。
程序员最想看到的:200-OK。
程序员不想看到的:500-Internal-Server-Error。
用户不想看到的:401-Unauthorized、403-Forbidden、408-Request-Time-out、404-not-found。
- HTTP 常用 请求方法:
- GET:从服务器获取资源。用于请求数据而不对数据进行更改。例如,从服务器获取网页、图片等。
- POST:向服务器发送数据以创建新资源。常用于提交表单数据或上传文件。发送的数据包含在请求体中。
- PUT:向服务器发送数据以更新现有资源。如果资源不存在,则创建新的资源。与 POST 不同,PUT 通常是幂等的,即多次执行相同的 PUT 请求不会产生不同的结果。
- DELETE:从服务器删除指定的资源。请求中包含要删除的资源标识符。
抓包:
- 请求方法: get
- 版本: HTTP/1.1
- 客户端应用程序信息【User-Agent】:包含你的客户端的关键信息。
- UserAgent是指浏览器,它的信息包括硬件平台、系统软件、应用软件和用户个人偏好,通过UA可以分析出浏览器名称、浏览器版本号、渲染引擎、操作系统。使用方法直接打开查看即可,也可以把其它浏览器的UA复制过来进行分析。
SMTP & POP3 & IMAP: 邮件服务
SMTP | |
POP3 | |
IMAP | Internet Message Access Protocol,互联网邮件访问协议,类似POP3,功能更多 |
nslookup解析MX记录:
- set type=mx//解析mx如果是A就是ipv4/AAAA就是ipv6
- qq.com //例如
- 解析出域名//mx3.qq.com
- 在根据域名解析出ip地址
- set type=a
- mx3.qq.com
Telnet & SSH: 远程管理服务 //吃饭家伙
- 远程管理协议,可以用来远程管理各种设备和系统。
- 客户端和服务端需要保证网络可达。
- 借助终端工具管理会话,如:MobaXterm、SecureCRT、Xshell、PuTTy等。
协议 | |
---|---|
Telnet | 明文传输、认证简单、多会话、配置简单、安全性差、不建议使用。 |
SSH | 加密传输、身份识别、多会话、配置复杂、安全性高、建议使用。 |
FTP & TFTP: 文件传输服务
- 提供“上传”和“下载”等文件操作。
FTP | File Transfer Protocol,文件传输协议 提供可靠的文件传输服务 具有认证、权限等功能 |
TFTP | Trivial File Transfer Protocol,简单文件传输协议 提供不可靠的文件传输服务 常用于网络设备的配置文件和系统文件传输 |
总结
- 当我们上网访问WEB服务器、FTP服务器、Mail服务器等时,需要先访问DNS服务器。