缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝,而不会去源服务器从新下载。这样带来的好处有:缓解服务器端压力,提高性能(获取资源的耗时更短了)。web
HTTP使用明文传输,无加密,使用80端口;HTTPS也是HTTP协议,使用了TLS/SSL加密。
SSL工做流程:
1. 协商加密算法
2. 服务器鉴别
3. 会话密钥计算
4. 安全数据传输
算法![]()
运输层的传输控制协议,面向链接的,有两个端点,经过socker链接,可靠交付, 全双工通讯,面向字节流。
关注同步位和确认位置1,序号,确认号,AB状态变化:
三报文握手:
缓存![]()
四挥手释放:
![]()
第二次挥手后,TCP 链接处于半关闭(half-dose)状态,B 能够向A传输数据
http1.0:
1. 客户端发出的报文header有“Connection:keep-alive”的请求。
2. 服务器接收后发现要求长链接,就在response的header中增长“Connection:keep-alive”,且不关闭链接。
3. 客户端收到服务端的response后,发现其中包含”Connection:keep-alive“,确认是一个长链接,不关闭这个链接。并用该链接再发送request。
4. 转到第一步,循环
http1.1:
1. 客户端直接发送http1.1,服务器自动断定为长链接,在response的header中增长“Connection:keep-alive”,且不关闭链接。
2. 客户端发现response中header有Connection:keep-alive,继续用这个链接发送请求。
4. 转到第一步,循环安全
这种技术是将全部的工做都交给服务器。服务器不断地运行与动态文档相 关联的应 用程序,按期更新信息,并发送更新过的文档。服务器
UDP用户数据报协议:
1. 无链接
2. 不可靠链接,尽最大努力交付
3. 面向报文
4. 没有拥堵控制
TCP传输控制协议:
1. 面向链接
2. 经过套接字的点对点链接
3. 可靠链接,有握手和挥手
4. 使用无结构字节流
HTTP超文本传输协议:
1. HTTP位于运输层上面的应用层,TCP、UDP都处于运输层
2. HTTP使用TCP链接网络
序号 | 意义 | 说明 |
---|---|---|
1xx | 通知信息 | 表示请求收到了或正在处理 |
2xx | 成功 | 表示接受或知道了 |
3xx | 重定向 | 表示完成请求还要采起必须的行动 |
4xx | 客户端错误 | 表示语法错误、不能完成 |
5xx | 服务器错误 | 表示服务器失效 |
Charles 假装为CA,Charles 经过本身的 CA 签名了一个本身的公钥,发送给客户端,客户端就误觉得是服务器了,这样以后的流程都会先走到 Charles 而后才会走到目标服务器。并发
做用:确保可靠传输
1. A->B发送报文,B返回确认,说好窗口字节数和确认号。
2. A能够生成下一个窗口值大小窗口,B目标窗口是确认号。A再发送窗口,B返回最高位确认序号。
3. A对最高序号确认,根据确认号向前移动,B也向前移动。
tcp![]()
![]()
就模仿TCP嘛,或者使用RUDP,RTP
1. 增长相似握手挥手过程,添加seq/ack机制
2. 增长发送接收缓存
3. 超时重传机制工具
公钥原本就是暴露,私钥才要保存好。如今通常使用RSA非堆成算法,私钥不暴露。性能
分段就是断点续传。加强校验,好比实现 Last-Modified 来标识文件的最后修改时间,也可使用 ETag 头来放置文件的惟一标识。
OSI七层,TCP四层,计算机网络五层
![]()
![]()
IP传运输层TCP和UDP传过来的数据
TCP传应用层的HTTP、SMTP、FTP、DNS等的数据![]()
域名系统,从域名解析出IP地址
对称:两边使用同样的密钥,例如AES非对称:两边不同密钥,一个公钥,向外公开,一个私钥,要保存好。例如RSA