目录
1.什么是认证和授权?
认证:验证访问者是否是系统的合法用户。
授权:给合法用户授予哪些权限。
2.如何设计一个权限认证框架?
基于 RBAC(Role-Based Access Control)实现权限认证
3.什么是CSRF攻击?如何防止?
(1)CSRF攻击:跨域请求伪造攻击。利用了登录用户保存在浏览器的cookie信息,发送恶意请求。
(2)使用Token机制、设置HTTPOnly Cookie、使用HTTPS
4.OSI参考模型、TCP/IP参考模型
(1)应用层协议:
HTTP(超文本传输协议):基于TCP
FTP(文件传输协议):基于TCP
SMTP(简单邮件传输协议):基于TCP
DNS(域名系统):基于UDP,解决域名和IP地址映射
(2)传输层协议:
TCP:面向连接、可靠、时延大、传输效率低
(传输高准确性的文件、邮件)
UDP:无连接、不可靠、时延小、传输效率高
(传输低准确性的语音、视频、直播)
(3)网络层协议:
IP(数据传输协议):数据传输
ARP(地址解析协议):根据IP地址找MAC地址,解决下一跳
5.请描述 TCP 建立连接的三次握手,释放连接的四次挥手
seq(序列号):TCP字节流按序编号,表示本报文段数据的第一个字节的序号
ack(确认号):期待收到下一个报文段的第一个字节的序号
ACK(确认位):ACK=1,表示确认号有效
SYN(同部位):SYN=1,表示请求/接受建立连接
FIN(终止位):FIN=1,表示释放连接
(1)建立连接(三次握手)
(2)释放连接(四次挥手)
6.HTTP 和 HTTPS 有什么区别?
HTTP | HTTPS | |
URL前缀 | http | https |
端口 | 80 | 443 |
安全性 | 内容明文传输,安全性低 | 内容经过SSL加密传输,安全性高 |
7.浏览器发送一个请求到收到响应经历了哪些?
(1)浏览器解析URL
(2)浏览器进行DNS解析:解析域名为IP地址
(3)浏览器向服务端请求建立TCP连接,建立连接后发送HTTP请求
(4)服务端处理请求,走Spring MVC工作流程,响应数据
(5)浏览器解析并渲染响应数据
8.重定向和转发有何区别?
重定向(Redirect) | 转发(Forward) | |
地址栏变化 | 地址栏URL发生变化 | 地址栏URL不变 |
请求次数 | 客户端发送2次请求 | 客户端发送1次请求 |
数据共享 | 无法共享请求中的数据 | 可以共享请求中的数据 |
发生行为 | 是客户端行为,由浏览器执行 | 是服务端行为,由服务器执行 |
9.Cookie和Session有什么区别?
Cookie | Session | |
存储位置 | 客户端(浏览器) | 服务器端 |
存储容量 | 较小 | 较大 |
安全性 | 存储在客户端,安全性较低 | 存储在服务器端,安全性较高 |
使用场景 | 存储少量、不敏感的数据 | 存储大量、敏感的数据(用户登录状态) |