获得徽章 0
- #每天一个知识点#
数据库隔离级别:
- 读未提交(read uncommitted),指一个事务还没提交时,它做的变更就能被其他事务看到;
- 读提交(read committed),指一个事务提交之后,它做的变更才能被其他事务看到;
- 可重复读(repeatable read),指一个事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,MySQL InnoDB 引擎的默认隔离级别;
- 串行化(serializable);会对记录加上读写锁,在多个事务对这条记录进行读写操作时,如果发生了读写冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行;
读提交以上,可解决脏读问题
可重复读以上,可解决不可重复读问题
串行化才能完全解决幻读现象,但是可重复读已经能很大程度避免幻读
可重复读的幻读现象出现在A先快照读,B提交,A再当前读,就会前后读取结果不一样,应当先当前读,让其加上记录锁和间隙锁,禁止插入,就能避免幻读。展开评论点赞 - #每天一个知识点#
"RESTful"是一种设计和构建网络应用程序的软件架构风格。它是“Representational State Transfer(表征状态转移)”的简称。RESTful API(也称为REST API)是一种遵循REST原则的应用程序编程接口。
RESTful API基于以下几个关键原则:
资源(Resources):在RESTful设计中,所有的数据都被视为资源。每个资源都有一个唯一的标识符(通常是URL),可以使用HTTP方法(如GET、POST、PUT、DELETE)对其进行操作。
状态转移(State Transfer):客户端可以通过向服务器发送HTTP请求来执行某些操作,这些操作将导致资源的状态发生转移。常见的操作包括获取资源、创建资源、更新资源和删除资源。
表征(Representation):资源可以具有不同的表征形式,如JSON、XML、HTML等。客户端可以根据需要选择合适的表征形式来进行交互。
通过遵循RESTful原则,API在设计和使用上更加简洁、可读性更强,易于扩展和维护。RESTful API通常使用HTTP协议作为通信协议,并以JSON格式或XML格式传输数据。
例如,如果要获取某个用户的信息,可以使用GET方法发送HTTP请求到对应的URL(如/api/users/1),服务器将返回表示该用户信息的JSON或XML数据。
总而言之,RESTful风格的API是一种采用URL和HTTP方法来操作资源的软件架构,它提供了一种规范化的方式来设计和访问网络应用程序的接口。展开评论点赞 - #挑战每日一条沸点#
func reverseBetween(head *ListNode, left int, right int) *ListNode {
cnt := 1
pre, cur := &ListNode{}, head
for ; cur != nil && cnt != left; cnt++ {
pre = cur
cur = cur.Next
}
l, r := pre, cur
pre = nil
for ; cnt != right; cnt++ {
nex := cur.Next
cur.Next = pre
pre, cur = cur, nex
}
nex := cur.Next
cur.Next = pre
l.Next, r.Next = cur, nex
if r == head {
return cur
}
return head
}展开评论点赞 - #每天一个知识点#
HTTPS 如何解决安全问题:
HTTP 不安全的问题有:
通信采用明文,内容可能会被窃听,账号信息容易泄露
不验证通信方的身份,因此有可能遭遇伪装,会访问假淘宝等
无法验证报文的完整性,所以有可能已遭篡改
针对以上问题,HTTPS 在 HTTP 与 TCP 之间加入 SSL/TLS 协议
1、信息加密:交互信息无法被窃取 -> 混合加密的方式实现了信息的机密性,解决了窃听的风险
2、校验机制:无法篡改通信内容,篡改了就不能正常显示 -> 摘要算法实现了完整性
3、身份证书:证明所访问的淘宝是真淘宝 -> 将服务器公钥放入到数字证书中,解决了冒充的风险
2 不能保证身份,即使有公钥私钥,但对方能够自己伪造,只有经由 3 的第三方机构验证数字证书权威性才能保证身份正确展开评论点赞 - #每天一个知识点#
输入网址到网页显示:
应用层上,浏览器解析 URL,确定了 web 服务器域名和文件名,生成 HTTP 请求信息。同时,通过 DNS 协议查询 DNS 服务器所要发送的 web 服务器域名对应的 IP 地址,以委托操作系统发送。而后传输层进行 TCP 三次握手,双方确认后开始拆分数据包生成 TCP 报文,并委托网络层 IP 模块将数据封装成网络包。通过路由表选择一个网卡作为源地址 IP ,生成 IP 数据包。接下来交由网络接口层。网络接口层通过查询 ROM 获得网卡对应的本机 MAC 地址,通过 ARP 协议获得接收方的MAC地址以加上 MAC 头部,封装成数据帧发送到网络上。网卡驱动收到网络包后,将其复制到网卡内的缓存区中,在开头加上报头和起始帧分界符,在末尾加上用于检测错误的帧校验序列,并将数字信号转为电信号通过网线发送出去。经由交换机与路由器发送到对方服务器。对方服务器从底层往上,层层拆包,获取到 HTTP 请求信息,HTTP服务进程发现请求是为了访问一个页面,将网页封装在 HTTP 响应报文,又经由与上述相似的传输过程,客户端收到了 HTTP 响应报文,交给浏览器去渲染界面,至此网页显示了出来。展开评论点赞