网络
网络
-
HTTP 1.0
: 短连接 (100张图, 发起100次 TCP 握手挥手)HTTP 1.1
: 长连接 (100张图, 一次 TCP 握手挥手, 在一个TCP连接上可以传送多个HTTP请求和响应)HTTP 2.0
: 长连接 + IO 多路复用 (同时通过单个 HTTP/2 连接发起多重的请求-响应消息, 可以很容易实现多流并行而不依赖多个 TCP 连接) -
GET 和 POST 有啥区别
? 事实上 POST 能干的 GET 也不是不行, 只是我们应该遵守 RESTful api罢了- GET 应该是幂等的, 反复读取不应该对访问的数据有副作用
- GET 中可以但不应该包含 body, 而应该使用 cookie 和 form 表单进行传递数据
-
TCP / UDP
:-
UDP
无连接、开销小、速度快, 但存在丢包, 适用于音频/视频/直播这种偶尔丢失一两个数据包也没什么关系的 -
TCP
通过三次握手确保建立好可靠数据连接才会进行传输, 以及采用了超时重传/错误校验等机制保证数据的可靠传输三次握手: 客户端:“我准备好了” 服务端:“我收到了 你开始吧” 客户端:“好的 那我开始了” 四次挥手: 客户端:“我发完了” 服务端:“我知道了” 服务端:“那你关闭吧” 客户端:“那我关了”
-
为什么
一定要三次握手
?TCP 的可靠连接是靠起始序列号 seq(sequence numbers) 来达成的, 如果只有两次的话, 客户端发送了自己的序列号服务端进行确认, 而服务端发出的起始序列号客户端不能进行确认 (只能接受), 不能确保数据传输可靠性.
-
编程基础
-
什么是
事务
? 怎么理解事务? 事务是并发控制的基本单位, 这个主要用于后端数据库操作吧事务应该具有4个属性:原子性、一致性、隔离性、持久性,这四个属性通常称为ACID特性
原子性(atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;
一致性(consistency): 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的;
隔离性(isolation):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;
持久性(durability):持久性也称永久性(permanence),一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
-
怎么理解
面向对象
?面向对象产生我觉得主要是为了降低耦合, 便于开发维护, 假如我们还使用面向过程的话我们每个方法的实现都是拆的很散的, 每次需求改变都需要在大量的方法中寻找自己需要的. 而如果采用面向对象, 那么我们就把一类事务封装在一起, 而在我们需要的时候去命令对象做什么事情.
-
抽象类
和接口
有什么区别呢?抽象类可以有默认实现, 而子类进行继承. 接口本身什么事情都干不了 接口是为了方便某个类去开放一些方法, 而抽象类是为了方便同种的类去实现这一类功能
-
基本 sql 语句
1 2 3 4 5
select * from students; delete from students where gender='M'; insert into students (name,gender,score) values ('wrnm','K',10); update students set name='nb',gender='F',score=10000 where score<20; select * from students order by score desc limit 3 offset 0;