网络参考模型
网络参考模型分为五层和七层
五层网络模型
五层从上往下分别为:
- 应用层 支持各种网络应用 FTP、SMTP、HTTP
- 传输层 进程到底数据传输 TCP、UDP
- 网络层 源主机到目的主机的数据分组路由与转发 IP、ICMP、OSPF等
- 数据链路层 把网络传下来的数据组装成帧 Ethernet、PPP
- 物理层 比特传输
七层网络模型
七层从上往下分别为:
- 应用层 支持各种网络应用 FTP、SMTP、HTTP
- 表示层 提供数据格式转换服务 常见的有URL加密、口令加密、图片编解码
- 会话层 建立端连接并提供访问验证和会话管理如:服务器验证用户登录、断点续传
- 传输层 进程到底数据传输 TCP、UDP
- 网络层 源主机到目的主机的数据分组路由与转发 IP、ICMP、OSPF等
- 数据链路层 把网络传下来的数据组装成帧 Ethernet、PPP
- 物理层 比特传输
HTTP缓存
HTTP缓存分为强制缓存和协商缓存
强制缓存
强缓存:检查过期时间,判断缓存是否失效。如果不失效,则直接使用。
cache-control:max-age=15552000** cache-control是一个时间段,也就是在这一时间段内再次请求数据的话,不会发送网络请求而是使用缓存。 它的单位是秒 。
expires expires是一个时间点,也就是在这个时间点之前的时间内再次请求数据的话,不会发送网络请求而是使用缓存。
协商缓存
协商缓存:强缓存失效了,超过过期时间了,拿着标识(最后的修改时间,唯一标识etag),去问服务器,是否是真的过期了。如果验证通过,服务器会直接响应304,且不会返回资源。
**last-modified **last-modified是最后一次修改的时间,单位是秒
ETag Etag生成靠以下几种引子:文件的i-node编号,是Linux/Unix用来识别文件的编号、文件最后修改时间、文件大小
这里最后说一下HTTP状态码
HTTP状态码
HTTP常见的状态码有2xx、3xx、4xx、5xx分别代表成功、重定向、客户端错误、服务器端错误、详细的分类如下图