目录
引出
认识通讯协议——TCP/IP、UDP协议的区别,HTTP通讯协议的理解
认识通讯协议
1、TCP/IP协议,UDP协议的区别
属于底层的通讯协议
三次握手的目的:保证连接一定创建成功
一问一答的目的:保证数据一定传输成功,保证数据永远不丢失
四次挥手的目的:保证连接一定断开成功,且清理到位!
Java程序连接MySQL数据库时,第1次 是不都很慢?因为:它在建立连接 通讯协议是:MYSQL协议,底层依旧是:TCP/IP协议
UDP协议:类似于 写信,发短信,不依赖于连接 导致:信息丢失
TCP/IP协议,UDP协议,都是网络传输协议!在它们的基础之上,可能会衍生出非常多的上层协议,比如:HTTP HTTPS MYSQL POP3 ……
2、HTTP通讯协议的讲解
是属于TCP/IP协议的上层协议,所以它也存在:3次握手,4次挥手的过程,它同样也依赖于连接!
HTTP版本:1.0 1.1(使用最为广泛) 2.0
1.0 每个请求都会创建一个连接,请求完毕,连接断开
1.1 每个文件对应创建一个连接,同一个文件发出的请求,可以共享对应的连接,文件关闭连接关闭
2.0 每个浏览器对应创建一个连接,同一个浏览器发出的请求, 可以共享对应的连接,浏览器关闭连接关闭
版本更新的目的是:尽量的减少连接创建&销毁的过程,做到连接复用
HTTP通讯协议的分类:请求,响应
HTTP请求协议:请求行,请求头,空行,请求体
请求行:请求方式(GET/POST) URL HTTP协议版本号
请求头:告诉服务端,浏览器的相关信息
空行:分割请求头 & 请求体
请求体:用于在POST时,传输数据
对应的响应协议:
状态行:协议版本,状态码以及状态码的描述(200,400,404,405,302,500)
响应头:后端服务器的相关信息
空行:分割响应头 & 响应体
响应体:响应数据的东西
Redis冲冲冲——缓存三兄弟:缓存击穿、穿透、雪崩
缓存击穿
缓存击穿:redis中没有,但是数据库有
顺序:先查缓存,判断缓存是否存在;如果缓存存在,直接返回数据;如果缓存不存在,則查询数据库,将数据库的数据存入到缓存
解决方案:将热点数据设置过期时间长一点;针对数据库的热点访问方法上分布式锁;
缓存穿透
缓存穿透:redis中没有,数据库也没有