DNS-DHCP-HTTP
DNS
DNS的全称是: Domain Name System,译为:域名系统
利用DNS协议,可以将域名(比如baidu.com) 解析成对应的IP地址(比如220.181.38.148)
DNS可以基于UDP协议,也可以基于TCP协议,服务器占用53端口
当我们找example.microsoft.com时候,首先会找根服务器,然后再找顶级域名服务器,再找二级名称服务器再找到权威名称服务器。最终找到这个域名
客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DNS服务器)
所有的DNS服务器都记录了DNS根域名服务器的IP地址
上级DNS服务器记录了下一级DNS服务 器的IP地址
全球-共13台IPv4的DNS根域名服务器、 25台IPv6的DNS根域名服务器
常见命令
ipconfig /displaydns:查看DNS缓存记录
ipconfig /flushdns:清空DNS缓存记录
ping 域名
nslookup 域名
Dipconfig /all:可以看到DHCP相关的详细信息,比如租约过期时间、DHCP服务器地址等
DHCP
IP地址分配
IP地址按照分配方式,可以分为:静态IP地址、动态IP地址
静态IP地址
- 手动设置
- 适用场景:不怎么挪动的台式机(比如学校机房中的台式机)、服务器等
动态IP地址
- 从DHCP服务器自动获取IP地址
- 适用场景:移动设备、无线设备等
比如说在教师的时候,有一些移动设备,如果手机采取静态地址,就会导致IP地址冲突,上不了网
DHCP (Dynamic Host Configuration Protocol),译为:动态主机配置协议
- DHCP协议基于UDP协议,客户端是68端口,服务器是67端口
- DHCP服务器会从IP地址池中,挑选一个IP地址 ” 出租"给客户端一-段时间, 时间到期就回收它们
DHCP分配IP地址的四个阶段
DISCOVER:发现服务器
发广播包(源IP是0.0.0.0, 目标IP是255.255.255.255, 目标MAC是FF:FF:FF:FF:FF:FF)
OFFER:提供租约
服务器返回可以租用的IP地址,以及租用期限、子网掩码、网关、DNS等信息
注意:这里可能会有多个服务器提供租约
REQUEST:选择IP地址
客户端选择一个OFFER, 发送广播包进行回应
ACKNOWLEDGE:确认
被选中的服务器发送ACK数据包给客户端
至此,IP地址分配完毕
细节
-
DHCP服务器可以跨网段分配IP地址么? (DHCP服务器、 客户端不在同一个网段)
可以借助DHCP中继代理(DHCP Relay Agent)实现跨网段分配IP地址
-
自动续约
客户端会在租期不足的时候,自动向DHCP服务器发送REQUEST信息申请续约
常用命令
ipconfig /release:释放租约
可以看到电脑的网络就断开了
ipconfig /renew:重新申请IP地址、申请续约(延长租期)
可以看到电脑的网络连接成功
通过抓包工具,我们来看看细节
HTTP
HTTP (Hyper Text Transfer Protocol),译为超文本传输协议
是互联网中应用最广泛的应用层协议之一
设计HTTP最初的目的是:提供-种发布和接收HTML页面的方法,由URI来标识具体的资源
URI 包括了URL
能够全网唯一URI的就是URL
后面用HTTP来传递的数据格式不仅仅是HTML,应用非常广泛
HTML
HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
关于HTTP版本问题
1991年,HTTP/0.9
- 只支持GET请求方法获取文本数据(比如HTML文档),且不支持请求头、响应头等,无法向服务器传递太多信息
1996年,HTTP/1.0 - 支持POST、HEAD等请求方法,支持请求头、响应头等,支持更多种数据类型(不再局限于文本数据)
- 浏览器的每次请求都需要与服务器建立一个TCP连接,请求处理完成后立即断开TCP连接
1997年,HTTP/1.1 (最经典、使用最广泛的版本)
-
支持PUT、DELETE等请求方法
-
采用持久连接(Connection: keep-alive),多个请求可以共用同一-个TCP连接
关于标准
HTTP的标准
由万维网协会(W3C)、互联网工程任务组(IETF) 协调制定,最终发布了一系列的RFC
RFC (Request For Comments,可以译为:请求意见稿)
HTTP/1.1最早是在1997年的RFC 2068中记录的
该规范在1999年的RFC 261 6中已作废
2014年又由RFC 7230系列的RFC取代
HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP/1.1成为HTTP的实现标准
中国的RFC
1996年3月,清华大学提交的适应不同国家和地区中文编码的汉字统一传输标准被IETF通过为RFC 1922
成为中国大陆第一个被认可为RFC文件的提交协议
报文格式
请求报文
响应报文格式
前三个字节是想告诉服务器是get请求
通过抓包工具可以看到完整的数据
这一段都是服务器的响应