本文目录如下:
十一、MySQL
精通MySQL—基础 MySQL 知识、进阶 MySQL知识
十二、Redis
十四、计算机网络
一、基础知识【重要】
TCP/IP 四层模型 是什么?每一层有什么作用?
应用层:协议有:HTTP、DNS等。传输层:在 源端 与 目的端 进行 数据传输.协议有:TCP、UDP等。网络层:路由 和 寻址。协议有IP、ICMP等。链路层:建立 并 维护 物理连接,传输 比特流。
OSI七层模型:
- 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
从输入 URL 到 页面展示 到底发生了什么?
- 1.DNS域名解析。
- 2.浏览器 向 服务器 发起 TCP 连接。
- 3.浏览器 向 服务器 发起 HTTP请求。
- 4.服务器 处理 请求 并返回 数据。
- 5.浏览器 对 HTML 进行解析。
DNS 域名解析流程?
- 浏览器 首先在 浏览器缓存 中查找是否有 域名 对应的 IP。
- 浏览器 在 本机操作系统 中查找是否有 域名 对应的 IP。
- 若没有,浏览器向 DNS服务器 发送请求, 解析 IP。
三、HTTP & HTTPS【重要】
HTTP 中常见状态码?
200: 服务器已 成功处理请求。403: 禁止访问404: 找不到网页500: 服务器内部错误
GET 和 POST 请求有哪些区别?
GET通过 URL 传递 参数,携带数据量 有限,安全性低。POST通过 body 携带 参数,携带数据量 没有限制,安全性高。GET请求结果会被浏览器 缓存,因此 GET 支持 幂等性。而 POST 不支持。
HTTP 是不保存状态的协议, 如何保存用户状态?
HTTP协议是 无状态的。HTTP 协议 本身无法保存 用户状态信息。- 可以通过
Session机制 或Token机制 保存 用户状态信息。
HTTPS 为什么比 HTTP 安全?
HTTP协议运行在 TCP 之上,所有 传输 都是 明文传输。HTTPS是运行在 SSL 之上的 HTTP 协议,所有 传输 都是 加密传输。
HTTPS 是如何实现加密的 | SSL连接 建立过程?
- 1.客户端 向 服务器 发送
SSL连接连接请求。- 2.服务器 收到 客户端 请求后,将网站的
CA 证书(证书中包含公钥) 传送给 客户端。- 3.客户端 验证 CA证书 的 有效性。生成
会话密钥,并利用 服务器 的公钥将会话密钥加密,并传送给 服务器。- 4.服务器 利用
私钥解密会话密钥。- 5.服务器 和 客户端 利用
会话密钥进行 通信。
注:传输会话密钥 的过程是非对称加密。实际通信 的过程是对称加密(通过 会话密钥 加密)
RPC 和 HTTP 有什么区别?
RPC(远程过程调用) 和HTTP(超文本传输协议) 是两种不同的 网络通信协议:
RPC通常使用 二进制 进行传输,而HTTP使用 文本 进行传输。RPC更专注于 传输 的 效率,更适合在 微服务系统 中使用。HTTP主要用于 客户端 和 服务器 之间的通信。
什么是 WebSocket?
WebSocket是一种 网络通信协议,提供了 全双工 的 通信方式,允许 服务器 和 客户端 之间的 双向通信。改变了原来 客户端/服务器 的 通信方式。- 在 WebSocket协议 中,首先需要在 客户端和服务器 之间建立一个 WebSocket连接,然后就可以通过这个连接进行 数据传输。
四、TCP & UDP【重要】
简述 TCP 和 UDP 的区别?
TCP面向连接,通过 三次握手 进行连接;UDP是无连接的。TCP提供 **可靠传输; 而UDP尽最大努力交付,不保证 可靠交付。TCP的 传输效率 要比UDP低很多。
什么时候选择 TCP,什么时候选 UDP?
UDP:用于对 传输效率 要求高的场景,比如:视频、直播 等。TCP:用于对 传输准确性 要求高的场景,比如 文件传输、邮件传输 等。
简单说一下 TCP三次握手?
第一次握手: 客户端 向 服务器 发送 连接请求 (SYN报文,seq=x)。第二次握手: 服务器 向 客户端 确认连接请求 (SYN、ACK报文,seq=y、ack=x+1)。第三次握手: 客户端 再次向 服务端 确认 (ACK 报文,seq=x+1、ack=y+1)。
重要的标志位:
- 序号:
seq序号- 确认序号:
ack序号。只有ACK标志位 为1时,确认序号 才有效,ack=seq+1。- 标志位:如
ACK(确认序号有效)、SYN(发起一个连接)、FIN(释放一个连接) 等,
TCP 握手为什么是三次?
服务器和客户端都需要 确认对方 能否 接收自己发送的消息,因此至少需要 三次握手。
第 2 次握手传回了 ACK,为什么还要传回 SYN?
服务器和客户端都需要 确认对方 能否 接收自己发送的消息- 第 2 次握手 传回 ACK,说明 服务器 能够接收到 客户端 发送的信号。
- 第 2 次握手 传回 SYN,表名 服务器 还需要确认 客户端 能否接收到自己发送的信号。
简单说一下四次挥手?
第一次挥手:客户端 向 服务器 发送 释放连接请求 (FIN报文,seq=u)。第二次挥手:服务器 向 客户端 发送 确认报文 (ACK报文,seq=v、ack=u+1)。第三次挥手:数据传输 结束后, 服务器 向 客户端 发送 释放连接请求(FIN、ACK报文,seq=w、ack=u+1)。第四次挥手:客户端 向 服务器 发送 确认报文 (ACK 报文,seq=u+1、ack=w+1)。
六、其他
URL是什么?由哪些部分组成?
URL是 统一资源定位符,就是指 网络地址。- URL 由4部分组成:
协议、主机号、端口、路径。
URI 和 URL 的区别是什么?
URI:统一资源标志符,可以唯一 标识 一个资源。URL:统一资源定位符,可以提供该资源的 路径。
注:
URI的作用像身份证号 一样,URL的作用更像家庭住址一样。
你了解 RESTful 吗?
RESTful是一种 接口设计风格,RESTful 风格 的主要特点是:
统一接口:软件具有 统一的接口,例如使用 HTTP方法 (GET、POST 等) 进行 操作。资源:每个资源 都有一个唯一的 URL (统一资源定位符)。无状态:服务本身 不保存任何 状态信息,同一个请求 的 多次响应 是 完全一致的。
什么是无状态服务?如何保存用户状态?
无状态服务:服务本身 不保存 状态信息,同一个请求 的 多次响应 是 完全一致的。
HTTP 请求是 无状态请求,提供的服务是 无状态服务。后端需要通过
Token或Session + Cookie的方式 保存用户状态。
什么是跨域请求?
跨域请求:Web页面 向 不同源 的 服务器 发送的 HTTP 请求 就是跨域请求。同源策略:浏览器 默认禁止向 不同源的服务器 发送请求。【协议、域名、端口 不一样都是 不同源】
Session 和 Cookie 有什么区别?
Session保存在 服务器端,Cookie保存在 客户端。Session的 存储容量 比 Cookie 更大,Cookie的 存储容量 很小。- 一般情况下,
Session用于保存一些 用户状态信息,Cookie用来在 客户端 保存 SeesionID。
什么是 Token?怎么使用 Token?
Token令牌是一种用于身份验证的机制,通常用于 服务程序 免受 未经授权的访问。
使用 Token 进行 身份验证 的基本流程如下:
用户登录: 验证用户输入的 用户名 和 密码 是否正确。生成Token: 如果 验证成功,服务器 将生成一个 Token,Token码 包含有关 用户身份 的信息。Token通常包括:用户ID、角色、过期时间、Token签名 等信息。返回Token: 服务器 将生成的 Token 返回给 客户端,客户端 会将 Token 存储在 本地。验证Token: 客户端 的请求要携带 Token码 (通常是 Bearer Token),服务端 会验证 Token码 的 有效性。Token 有效 才会 处理请求。
Session 和 Token 机制的区别?
存储位置: Session 保存在 服务器,而 Token 仅在 客户端 保存一个 Token码。状态维护:由于 Session 保存在 服务器, 所以使用 Session 实现的服务是 有状态的,而使用 Token 实现的服务是 无状态的。
十五、Nginx【重要】
请解释一下什么是 Nginx?
Nginx是一个 高性能 的Web缓存服务器、反向代理服务器、负载均衡服务器。Nginx专注于处理网络请求和数据传输,因此 处理请求 和 传输文件 的效率很高。
Nginx的优缺点?
优点:
高性能:Nginx专注于处理网络请求和数据传输,高性能、 响应快,可实现 高并发连接。多功能:可实现 反向代理、负载均衡、Web缓存 等功能。
缺点:
动态处理差:Nginx擅长处理静态文件,因此前端一般使用 Nginx 来加快 静态资源 的响应速度。
Nginx 有什么功能?
- 1.
Web缓存(html、css、js):Nginx擅长处理静态文件,因此前端一般使用 Nginx 来加快 静态资源 的响应速度。- 2.
反向代理:Nginx 可作为 反向代理 服务,用于转发 客户端 的请求,避免直接访问 真实服务器。- 3.
负载均衡: 将 客户端请求 分发到 不同服务器 上。
Ngnix安装后,默认就可以提供 缓存静态文件 服务,而不需额外的配置。但是如果想要使用 反向代理、负载均衡 的功能,则需要进行一些 配置。
什么是 正向代理 和 反向代理?
正向代理: 代理 客户端,为 客户端 发送请求,对 服务器 隐藏自己的 真实客户端 (可实现科学上网)。反向代理: 用于转发 客户端 的请求,避免直接访问 真实服务器。
反向代理 有什么作用?
隐藏服务器:使用 反向代理 可以 隐藏 服务器地址。负载均衡:将 客户端请求 分发到 不同服务器 上。
为什么要做 动、静分离 (Nginx 和 Tomcat)?
Nginx擅长处理静态文件,因此前端一般使用 Nginx 来加快 静态资源 的响应速度。Tomcat擅长处理动态请求,因此后端一般使用 Tomcat 来加快 动态请求 的响应速度
Ngnix 中常见的 负载均衡 策略?
轮询: 以 轮询的方式被分发 客户端请求。最少连接: 下一个 客户端请求 将被分派到 连接数量最少 的 服务器。IP散列: 使用 Hash算法 分发 客户端请求。
十六、Linux
Linux 常用命令?
cd、ls、pwd、touch、mkdir: 常用命令cat:查看 文件内容grep:在文件中 搜索内容chmod: 修改 权限chown:修改 文件的所有者top:查看 CPU占用情况,可以找出 CPU占用最高 的进程。
Linux 使用 Jar包 启动 Java服务 的流程:
nohup java -jar *** &: 后台运行 jar 包netstat -lnp|grep 8080: 根据 端口 查看这个进程的 网络状态ps [PID]: 查看进程的详细信息kill -9 [PID]: 终止进程
Linux 文件结构中的重要目录有哪几个?
根目录 (/):Linux文件系统 的最顶层。用户主目录 (/home):存储 每个用户 的 个人文件和数据。系统配置目录 (/etc):包含了系统的 配置文件 和 脚本。程序目录 (/bin):存储各种 可执行程序 和 工具。库文件目录 (/lib):存储各种 库文件。
Shell 脚本是什么?
Shell 脚本是一个特殊的 文本文件,包含 一个或多个命令。运行 Shell脚本 会执行里面的所有命令。Shell脚本文件名以.sh结尾,并且文件第一行为#!/bin/bash,告诉系统使用 Bash解释器 执行该脚本。Shell脚本常用的指令有:打印文本、定义变量、条件语句、循环语句。
Linux 如何查看 网络状态?
ifconfig:显示所有 网络接口 的 详细情况。netstat:用于显示 进程 的 网络连接、网络接口 等信息。

本文涵盖了网络协议的基础知识,包括TCP/IP四层模型、HTTP与HTTPS的状态码、GET和POST请求的区别以及加密机制。同时,讨论了WebSocket、TCP与UDP的差异,以及Nginx的反向代理和负载均衡功能。此外,还涉及数据库MySQL、Redis的使用,Linux命令和系统管理,以及用户状态保存的机制如Session、Cookie和Token。


2052

被折叠的 条评论
为什么被折叠?



