一、IO多路复用
一个线程一时连接管理着多个socket 通过操作系统****全局地同时监听所有socket的IO状态地 同时等待多个连接 选出其一最早有数据的 绕阻非顺地一个个执行
二、网络数据包处理的细节
- 一个线程在****同一瞬间 只能在执行某一行
- 多个客户端发送****多个请求 可以同一时刻到达服务器
- 网卡一个个地接收
- 内核放进各自socket的接收缓冲区
- epoll一次告诉线程 各个socket的IO状况
- 线程****IO复用地 选择接收缓冲区有请求数据的socket,一个个地处理写入它们socket的发送缓冲区
- 操作系统有一好就发它地 通过网卡返回响应
三、应用层协议
1.单元信息表示方式
1.1行文本
分隔符 + 值内容
| 麦当劳, 商家图片3.jpg, 5.0, 10, 快餐\n |
|---|
1.2html
成对起始 固定键说明 + 成对<>分隔符 + 值内容
<table border="1">
<tr>
<td>商家名称</td>
<td>图片</td>
<td>评分</td>
<td>销量</td>
<td>分类</td>
</tr>
<tr>
<td>麦当劳</td>
<td><img src="商家图片3.jpg" width="80"></td>
<td>5.0</td>
<td>10</td>
<td>快餐</td>
</tr>
</table>
AI写代码html
1.3xml
成对起始 自定义键说明 + 成对<>分隔符 + 值内容
<merchant>
<name>麦当劳</name>
<image>商家图片3.jpg</image>
<score>5.0</score>
<sales>10</sales>
<category>快餐</category>
</merchant>
AI写代码XML
1.4json
一个自定义键说明 + 分隔符 + 值内容
{
"name": "麦当劳",
"image": "商家图片3.jpg",
"score": 5.0,
"sales": 10,
"category": "快餐"
}
AI写代码javascript
运行
1.5protobuf
二进制值内容
2.现成协议
2.1HTTP协议
约定 在应用层****构成网页的 数据格式
- 请求和响应****一一对应
- 文本内容、html单元信息
四、代理
中间的代理 参与两者的发接工作
五、抓包
抓包工具 可以抓取** 网络数据包的各部分