一· 5层网络模型介绍
低三层
- 物理层: 定义物理设备如何传输数据
- 数据链路层:在通信的实体间建立数据链路连接
- 网络层: 数据在节点之间传输创建逻辑链路
传输层
- 向用户提供可靠的端到端(End-to-End)服务
- 传输层向高层屏蔽了下层数据通信的细节
应用层
- 为应用软件提供了很多服务
- 构建于TCP协议之上的
- 屏蔽网络传输的细节
二. HTTP协议的发展历史
HTTP/0.9版本
- 只有一个命令GET
- 没有HEADER等描述数据的信息
- 服务器发送完毕,就关闭TCOP连接
HTTP/1.0版本
- 增加很多命令
- 增加status code和header
- 增加了多字符集支持、多部分发送、权限、缓存等
HTTP/1.1版本
- 持久连接
- pipeline
- 增加host和其他一些命令
HTTP2
- 所有数据以二进制传输
- 同一个连接里面发送多个请求不再需要按照顺序来处理,并行处理
- 头信息压缩以及推送等提高效率的功能
三, HTTP的三次握手
HTTP1.0: 出现http 请求时,会创建tcp连接, 请求结束时, tcp连接就断开了。
HTTP1.1: 可以通过某种方式来 申明,让tcp连接一直保持着, 可以在一个tcp连接上进行多次HTTP请求。
四. URI-URL和URN
URI
- Uniform Resource Identifier/统一资源标志符
- 用来唯一标识互联网上的信息资源
- 包括URL和URN
URL
URN
- 永久统一资源定位符
- 在资源移动之后还能被找到
- 目前还没有非常成熟的使用方案
五.HTTP报文格式
HTTP方法
- 用来定义对于资源的操作
- 常有GET、POST等
- 从定义上讲有各自的语义
HTTP CODE
- 定义服务器对请求的处理结果
- 各个区间的CODE有各自的语义
- 好的HTTP服务可以通过CODE判断结果