一、互联网五层模型
应用层 HTTP FTP // 为应用软件提供了很多服务。构建于 TCP 协议之上。屏蔽网络传输相关细节
传输层 TCP UDP // 提供可靠端到端服务。定义传输数据,如何分片,组装。
网络层 // 在结点之间传输创建逻辑链路
数据链路层 // 在通信的实体间建立数据链路链接,0101
物理层 // 硬件设备,光缆,定义物理设备如何传输数据
二、HTTP 协议发展史
0.9 版本只有一个 GET 命令
没有 HEADER 等描述数据的信息
服务器发送完毕,就关闭 TCP 链接。【一个 TCP 链接,可以发送很多 HTTP 请求】
1.0 版本增加命令
增加 status code 和 header
多字符集支持,多部分发送,权限,缓存
1.1 版本
持久链接,TCP 链接,可以发送多个请求
pipeline
增加 host 和其它一些命令,本地物理服务器跑多个服务
2 版本
所有数据以二进制传输
同一个链接发送多个请求,不再按照顺序
头信息压缩以及推送等提高效率的功能。
【请求 html 文本,浏览器解析,再请求 css 和 js。版本 2 推送功能,请求 html 同时,将引用的 css 和 js 推送到客户端,并行的。】
三、HTTP 的三次握手
http request —- TCP connection — 服务器
防止因网络延迟,服务器开启无用链接
client --> [SYN] Seq = x --> server
<-- [SYN ACK] Ack=x+1 Seq=y <--
--> [ACK] Ack=y+1 Seq=z -->
四、URI、URL、RUN
–URI/ 统一资源标识符 Uniform Resource Identifier
用来标识互联网上的信息资源
–URL/ 统一资源定位器
ftp:// http:// ftp 协议 http 协议
http://host.com:80/path?query=string#hash
协议 ip 端口 路由 搜索字段 锚点
–URN/ 永久统一资源定位符
在资源移动之后还能被找到
五、报文
a 请求报文
b 响应报文
HTTP 方法
用来定义对资源的操作 POST、GET、DELETE、UPDATE
HTTP CODE
定义服务器对请求的处理结果
各个区间的 CODE 有各自的语义
100-199 操作持续进行
200-299 成功
300-399 传的对象有问题
400-499 发送的请求有问题,401 没有认证
500-599 服务器出现错误