每日一念:
投之亡地而后存,陷之死地然后生。 《孙子·九地》
图解http
针对http所涉及到的知识图谱:
网络基础TCP/IP协议族
分层设计理念:
1、应用层:FTP;HTTP;DNS
2、传输层:UDP;TCP
3、网络层:处理网络上流动的数据包
4、据链路层:用来处理连接网络的硬件部分
http协议的通信过程
1.负责传输的ip协议:
2.确保可靠性的TCP协议
3.负责域名解析的DNS服务
http协议简述
http协议用于客户端和服务端之间的通信
1.请求报文
2.响应报文
3.无状态的协议—>引入Cookies技术实现保持状态功能
4.http使用方法下达命令
5.持久连接—>keep alive
报文结构
状态码
http首部
http通用首部字段
cache-control 控制缓存的行为
connection
1.控制不在转发给 代理的首部字段
2.管理持久连接
data 日期和时间
pragma 兼容字段
transfer encoding 编码方式
via 追踪传输路径
warning 警告
请求首部字段
accept
accept-charset
accept-encoding
accept-language
authorization
host
proxy-authorization 代理服务器的认证
referer
user-agent
响应首部字段
Etag 资源标识符
location
proxy-authorization
retry-after
server
vary
www-authenticate
实体首部字段
allow
content-encoding
content-language
content-length
content-location
content-md5
content-range
content-type
expires
last-modified
cookies有关的首部字段
set-cookies
cookies
其他首部字段
X-Frame-Options
X-Xss-Protection
DNT
P3P
通信数据的转发程序
代理
客户端和服务器之间的中间人,是一种具有转发功能的应用程序
缓存代理(caching proxy)
透明代理(transparent proxy)
网关
转发其他服务器通信数据的服务器
隧道
在服务器和客户端两者之间的中转,建立安全的通信线路
缓存
缓存是指代理服务器或者客户端本地保存的资源副本
确保web安全的https
https = http + SSL/TLS
http的缺点:
- 窃听风险(eavesdropping):第三方可以获知通信内容。
- 篡改风险(tampering):第三方可以修改通信内容。
- 冒充风险(pretending):第三方可以冒充他人身份参与通信。
SSL/TLS协议是为了解决这三大风险而设计的,希望达到:
- 所有信息都是加密传播,第三方无法窃听。
- 具有校验机制,一旦被篡改,通信双方会立刻发现。
- 配备身份证书,防止身份被冒充。
加密
认证
安全通信机制
SSL/TLS协议的基本思路是:认证密钥协商 + 对称加密传输
仅使用服务器证书建立HTTPS通信的整个过程
访问用户的身份验证
1.base认证
2.digest认证
3.ssl客户端认证
通过客户端证书认证
4.基于表单认证
http的功能追加协议
SPDY协议
1.背景:http的瓶颈:
请求响应速度问题
请求报文冗余
信息未压缩
2.SPDY设计:
3.主要功能:
1)(单个域名)多路复用流
2)赋予请求优先级
3)压缩HTTP首部
4)推送功能
5)服务器提示功能
全双工通信的WebSocket
WebDAV
后记
1.本文的大部分图片来源于《图解HTTP》。
2.博文中如有感兴趣的地方,评论区不吝赐教。