本文是作者在看书过程中的一份记录,都是copy书中的内容
2020年7月份必须看完,现在是2020年6月29日。
文章目录
第一章-计算机基础
1.1 走进0与1的世界
简单来说,计算机就是晶体管、电路板组装起来的电子设备,无论是图形图像的渲染、网络远程共享还是大数据计
算,归根结底都是0与1的信号处理。
1.4 cpu与内存
cpu是一块超大规模的集成电路板,是计算机的核心部件,由控制器和运算器组成,内部寄存器使这两者协同更加高效。
计算机中的所有程序都在内存中运行,它的容量与性能如果存在瓶颈,即使 CPU 再快,也是枉然。
垃圾回收机制: java中内存管理都交给jvm进行自动分配与释放,这个过程称为垃圾回收机制。
而以 Java 为代表的编程语言,内存就交给 NM 进行自动分配与释放,这个过程
称为垃圾回收机制。这就好像刚才的快递员并不直接访问内存单元,只是把包裹放在
叫只币 的老大爷家里。付出的代价是到货速度慢了,影响客户体验。毕竟老大爷并
不是实时立马转交的,而是要攒到一定的包裹量再接家接户地给收件人送过去。虽然
垃圾回收机制能为程序员减负,但如果不加节制的话,同样会耗尽内存资源。
1.5 TCP/IP
1.5.1 网络协议
计算机需要解决的问题是在不同的计算机之间进行打包与传输数据,那么他们之间需要建立统一的网络协议
使不同的厂商的设备能够在不同的操作系统之间进行传输与网络通信。
TCP/IP: 传输控制协议/因特网互联协议
TCP/IP(底层协议)是当今最流行的网络传输协议,像其他的知名协议如http(80),ftp(21),
https(443),SSH(22)都是依赖于它。
TCP分层架构图如下,A(客户端,打包),B(服务端,解包)
总结起来,当A发送消息时有以下几个步骤
-
应用层按既定的协议打包数据
-
传输层加上双方的端口号
-
网络层加上双方的IP
-
链路层加上双方的MAC地址。
-
经过多层路由与网管后达到目标机器
-
B端解包反过来即可。
1.5.2 IP协议IP是无连接,无状态,没有额外的机制保证数据包能是否有序达到。 问: 既然链路层可以通过唯一的 MAC 地址找到机为什么还需要通过唯 IP 地址再来标识呢? 答: 缩小范围,如果直接通过MAC去找,会超时。如从北京到湖南的快递,从中经过A-B-C-D 如果直接通过MAC去找类似于直接从A到D,而B-C就相当于IP,提高的效率。
1.5.3 TCP建立连接
TCP是面向连接(TCP连接时全双工的),确保端到端之间传输可靠的协议。 三次握手: https://blog.csdn.net/qq_38950316/article/details/81087809 百度百科: 三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次 交互:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器 确认;第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一 个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户 端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和 服务器进入ESTABLISHED状态,完成三次握手。连接建立后,客户端和服务器就可以开始进 行数据传输了。 数据在发送前建立连接的三次步骤 打个比方,A(小区大爷)-B(美国留学生)。 A: 1. 你好,吃饭了吗(第一个步骤) B: 1. 我刚去了上厕所(没听懂,没有建立第二次建立) 2. 刚刚吃过了(说明听懂了,建立第二次连接) A: 1. 我去你大爷(没听懂话,耳朵不好使,第三个步骤没有建立) 2. 好的好的,吃过了就好。 以上122就是三次捂手的步骤,而112,121是连接失败 为什么需要三次握手: 确保信息对等与防止超时, 四次挥手: https://www.cnblogs.com/lms0755/p/9053119.html 有连接就会有断开,那么断开就需要四次挥手。 1. A发送给B,告诉他,我没有什么要发送了,请求关闭数据 2. B说等等,我看一下我还有什么需要发送的 3. B说可以关闭了 4. A接收到B的数据后,告诉B你关闭把,B接收到后主动关闭了,而A等待 2MSL(最长报文段寿)后自动关闭了。 四次挥手断开连接用通俗的说法可以形象化地这样描述。 男生: 我们分手吧。 女生: 好的,我的东西收拾完,发信息给你。( 此时男生不能再拥抱女生了。) ( 个小时后) 女生:我收拾好了,分手吧。 (此时 女生也不能再拥抱男生了。) 男生: 好的。 (此时 双方约定经过个月的过渡期,双方才可以分别找新的对象。) ----------------------- 为什么握手三次挥手4次: 数据对等以及网络超时连接,因为tcp连接是全双工且在挥手的时候可能还 要数据没有发送完,所以第二步第三步骤不能同时进行,只能先告诉客户 端你等等,我再检查一下我还有什么东西需要发送给你的,如果没有的 话,那么第三步骤的时候就告诉你可以关闭了。
1.5.5 连接池
池:池子,已经有了,无需等待。 频繁的创建于销毁连接对服务器的压力开销特别大,一般应用后台服务器和 数据库之间,都会使用连接池来提升性能。如数据库连接池。 秒级很慢的的SQL如何处理: 1. 建立合适的索引 2. 排查连接资源未显示关闭的情形 3. 合理拆分多个表的join的请求
1.6.3 XSS与CSRF
XSS: 跨站脚步攻击
CSRF: 跨站伪造攻击
防范 CSRF 漏洞主要通过以下方式:
1. 人机交互,通过短信码的方式。
2. CSRF Token 验证,利用浏览器的同源限制,在 HTTP 接口执行前验证页面
或者 Cookie 中设置的 Token ,只有验证通过才继续执行请求。
1.6.5 HTTPS
https = http + SSL(在http传输上增加了SSL协议的加密能力)
SSL: 应用层与传输层之间,为应用提供数据的加密传输,属于非对称加密。