

HTTP定义

无状态:我们的连续两个请求中,后一个请求不能依赖前一个请求中的字段或者头部等
以请求/应答方式运行:必须得建立一个连接,首先由客户端发起请求,然后服务器才能在这个连接上发起response响应
可扩展语义:老的服务器不支持http1.1但是浏览器支持,但是浏览器仍然可以和老服务器连接
自描述:可以从请求本身了解请求的详细信息,而不依赖于外部
超文本:不止是文档,还有图片,视频,音频等
HTTP协议格式:口述,不够规范

ABNF


基于ABNF描述的HTTP协议格式
利用xshell简单测试
利用wireshark查看不可见符号:可以看出规则是符合ABNF的
OSI概念模型
应用层:HTTP协议等,解决的是业务问题
表示层:负责把网络中的消息转换为应用层中可以读取的消息 TSL/SSL协议
会话层:建立会话,握手,关闭等(概念)
传输层:TCP,LDP,LSC,TPL,SSL,TSL,解决进程与进程之间的通讯,主机把报文分发给哪个进程;保证报文可达性,流量控制 (负载均衡)
网络层:IP协议 在广域网中可以从一个主机发送到另一个主机
数据链路层:局域网中,使用mac地址链接到相应的交换机/路由器
物理层:网线设备
OSI模型与TCP/IP模型对比


Ethernet II:数据链路层
Internet Protocol Version4:网络层
TCP层:传输层
TLS层:表示层(加密)
应用层:解密后的报文

HTTP协议解决的问题


REST架构风格:HTTP架构遵循的风格

五中架构风格
1. 数据流风格 Data-flow Styles (上述协议分层就是一种数据风格)
优点:简单性,可进化性,可扩展性,可配置性,可重用性
管道与过滤器,Pipe and filter,PF(数据的单项传输)

统一接口的管道与过滤器,UPF,在PF上增加了统一接口的约束,所有Filter过滤器必须有同样的接口
2. 复制风格 Replication Styles
优点:用户可察觉的性能,可伸缩性,网络效率及可靠性也可以得到提升
复制仓库哦 Replicated Repository RR
多个进程提供相同的服务,通过反向代理对外集中提供服务

3. 分层风格 Hierarchical Style
优点:简单性,可进化性,可伸缩性



4.移动代码风格 Mobile Code Style
优点:可移植性,可扩展性,网络效率


5.点对点风格 Peer-to-Peer Styles
优点:可进化性,可重用性,可扩展性,可配置性
