[笔记]网络原理4 -应用层及其相关协议

随笔2个月前发布 再琪
76 0 0

1. 常见的协议

HTTP/HTTPS
FTP,文件传输
DHCP,动态主机配置
DNS,域名系统

2. DNS,Domain Name System

域名的出现是因为IP不好记,而且不能表达组织/公司的名字和性质。
市面上的网页虽然是域名访问,但是实际还是要靠IP,毕竟服务器过路由器只能通过IP。
域名申请注册的一个链接
[笔记]网络原理4 -应用层及其相关协议
DNS的作用是把域名换算成IP,传输层可以是基于UDP或者是TCP,服务器占用端口53。
[笔记]网络原理4 -应用层及其相关协议
DNS常用指令

ipconfiig/displaydns 展示dns
ipconfig/flushdns 清空dns缓存记录
ping 域名
nslookup 域名

DNS访问逻辑

首先客户端访问最近的一台DNS服务器
所有的DNS服务器都记录了DNS根域名服务器的IP地址
上级的DNS服务器记录下一级DNS服务器的IP地址
全球一共13台IPv4的DNS根域名服务器,25台IPv6的根域名服务器
下图中的设置就可获取离客户端最近的DNS服务器
[笔记]网络原理4 -应用层及其相关协议

3. DHCP

相比于自己设置的静态IP地址,动态IP地址则由DHCP配置,DHCP可以从服务器中自动获取IP地址。
DHCP基于UDP协议,客户端是68端口,服务器是67端口。
DHCP服务器会从IP池中挑选一个IP地址出租给客户端一段时间,时间到期就回收。
很多时候,路由器就可以充当DHCP的服务器。
DHCP的工作流:

DISCOVER:发现服务器:发广播包(源IP是0.0.0.0,目标IP是255.255.255.255,目标MAC是FFFF.FFFF.FFFF)
OFFER:提供租约:服务器返回可以租用的IP地址,以及租用期限,子网掩码,网关,DNS信息等;可能会有多个服务器同时回应,因为是广播包
REQUEST:选择IP地址:客户端选择一个OFFER,发送广播包回应
ACKNOWLEDGE:确认:被选中的服务器发送ACK数据包给客户端
分配完毕,流程图如下:
[笔记]网络原理4 -应用层及其相关协议

DHCP可以跨网段分配,但是需要DHCP中继代理实现。
DHCP常用指令

ipconfig /all 看到DHCP的详细信息
ipconfig /release 手动释放租约
ipconfig /renew 重新申请IP,申请租约

4.HTTP,超文本传输协议

80是HTTP常用的端口,8080是HTTP测试常用的备用端口

如下图,测试了一个http的get请求

wireshark抓到了get的url
[笔记]网络原理4 -应用层及其相关协议
在wireshark中,选择想看的报文,右键,追踪流,HTTP流,可以看到一些清晰的数据流。橙色是客户端请求的流,蓝色是服务器返回的流。
[笔记]网络原理4 -应用层及其相关协议
在一个get指令中,客户端发给服务器的数据有下面这些
[笔记]网络原理4 -应用层及其相关协议
服务器返回的数据,此时返回的状态是304
[笔记]网络原理4 -应用层及其相关协议
当服务器返回的状态是200时,返回的报文回包括html文件本身
[笔记]网络原理4 -应用层及其相关协议

如下截图,HTTP在发送请求时的格式可以参考下图(请求方法可以变,不一定非得get),包括爬虫的时候也就按照这个格式来模仿。记得报文里面每一行都有回车换行符16#20,空格符也不要忘记。
[笔记]网络原理4 -应用层及其相关协议

HTTP报文格式,注意空格位置和回车换行符位置,都需要用ascii表达出来
[笔记]网络原理4 -应用层及其相关协议
在wireshark里面也把这种对应关系表现出来了
[笔记]网络原理4 -应用层及其相关协议
GET请求不同于post请求,没有请求体,也有长度限制。就算发账户和密码也是以Url的形式明文格式展示:
[笔记]网络原理4 -应用层及其相关协议

请求头字段格式
[笔记]网络原理4 -应用层及其相关协议
[笔记]网络原理4 -应用层及其相关协议

响应头字段格式
[笔记]网络原理4 -应用层及其相关协议
[笔记]网络原理4 -应用层及其相关协议
[笔记]网络原理4 -应用层及其相关协议

状态码

状态码的分类
[笔记]网络原理4 -应用层及其相关协议

针对上文出现过HTTP返回的状态码为304:此表示虽然客户端的Get请求已经被允许,但是文档的内容自从上次访问后一直没有变化。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...