以下内容来自于小码哥"网络协议从入门到底层原理"
<一> 一个简单的案例
Tomcat Server -> Local
- http://ip地址:端口号/资源路径
- 回环地址+端口+项目: http://127.0.0.1:8080/hello
Application context: 配置路径-> /hello-> 访问到了web文件夹
比如我要访问web文件夹的具体文件, 就要拿到路径下的文件名->/hello/dragonBall.jpg
如果没有指定文件名, 会默认访问index.htm, index.html, index.jsp.
假设有一个登录页面
处理登录请求
- 继承
httpServlet, 才能处理http请求
- 继承
- 使用
@webservlet, 说明它要处理的请求的路径
- 使用
这个时候, 比如一个loginHtml的用户名和密码就会发给服务器的特定代码去执行.
doGet方法, doPost方法
- 获取客户端发送的数据(请求路径)
- 判断, 给客户端返回数据
<二> 计算机之间的通信基础
- 需要得知对方的
IP地址 - 最终是根据
MAC地址(网卡地址), 输送数据到网卡, 被网卡接收
-- 如果网卡发现数据的目标MAC地址是自己, 就会将数据传递给上一层处理
-- 如果网卡发现数据的目标MAC地址不是自己, 就会将数据丢弃, 不会传递给上一层进行处理
计算机之间的连接方式- 网线(交叉线, 不是直通线)直连
不在同一个网段ping不通
ping -> 使用的是ICMP协议
当不知道对方MAC地址时, 使用ARP协议, 广播(是在同一个网段中传播): 目的是获取MAC地址, 给所有连接设备发广播, 询问ip地址下的MAC地址. 全是1的MAC地址, 代表广播, 表示在同一个网段的所有连接设备都能接收.
当通过ARP协议拿到MAC地址后, ICMP协议才能正常地进行.
ARP是有缓存的, 当下次在ping的时候, 就不需要再去获取ip地址了, 而是直接执行ICMP协议.
计算机之间的连接方式- 同轴电缆
- 半双工通信(同一时间单向)
- 容易冲突
- 不安全
- 中间断了, 整个就瘫了(失去了终止电阻)
计算机之间的连接方式- 集线器(Hub)
- 半双工通信
- 容易冲突
- 不安全
- 跟同轴电缆一样: 没有智商
计算机之间的连接方式- 网桥(Bridge)
- 能够通过自学习得知每个接口那侧的
MAC地址
(MAC地址表) - 从而起到隔绝冲突域的作用
计算机之间的连接方式- 交换机(Switch)
- 相当于接口更多的网桥
- 全双工通信(同一时间双向)
- 比集线器安全
如果全球的设备都用交换机连接会是什么情况?










