【面试】【程序员基本知识】计算机网络,设计模式,正则,安全

一、计算机网络

(一)基本概念

  • 计算机网络 是一种将多台计算机通过硬件和软件互联,以实现资源共享和数据传输的技术。
  • 组成部分:
    • (1) 硬件:路由器、交换机、网卡、光纤等。
    • (2) 软件:协议栈、操作系统、网络应用等。

(二)网络分层模型

  • OSI 七层模型
    • (1) 物理层:负责数据的物理传输。
    • (2) 数据链路层:提供节点间的数据传输。
    • (3) 网络层:负责路由与寻址(如 IP 协议)。
    • (4) 传输层:提供端到端的通信(如 TCP/UDP)。
    • (5) 会话层:管理会话连接。
    • (6) 表示层:处理数据的表示和加密。
    • (7) 应用层:为用户提供网络服务。
  • TCP/IP 四层模型
    • (1) 网络接口层:等同于 OSI 的物理层和数据链路层。
    • (2) 互联网层:等同于 OSI 的网络层。
    • (3) 传输层:提供可靠或不可靠的数据传输。
    • (4) 应用层:直接为应用程序提供服务。

(三)常见协议

  • HTTP/HTTPS:超文本传输协议,HTTPS 增加了加密。
  • FTP:文件传输协议。
  • DNS:域名解析协议。
  • SMTP/POP3/IMAP:电子邮件协议。
  • WebSocket:实现全双工通信的协议。

二、设计模式

(一)基本概念

  • 设计模式 是一套被反复使用的、代码设计的经验总结,用于解决特定场景中的常见问题。

(二)常见设计模式分类

  • 创建型模式
    • (1) 单例模式:保证一个类仅有一个实例。
    • (2) 工厂方法模式:定义一个创建对象的接口,让子类决定实例化的具体类。
    • (3) 建造者模式:将复杂对象的构建与其表示分离。
  • 结构型模式
    • (1) 适配器模式:将一个接口转换成客户端期望的另一个接口。
    • (2) 装饰器模式:动态地给对象添加功能。
    • (3) 代理模式:为其他对象提供代理以控制访问。
  • 行为型模式
    • (1) 观察者模式:定义对象间的依赖关系。
    • (2) 策略模式:定义一系列算法,将其封装后使其互换。
    • (3) 责任链模式:将请求沿着处理链传递。

(三)应用场景

  • 单例模式:数据库连接池。
  • 装饰器模式:为函数添加日志功能。
  • 观察者模式:实现事件监听机制。

三、正则表达式

(一)基本概念

  • 正则表达式 是一种文本模式匹配的工具,用于字符串的查找、替换、验证等操作。

(二)常见元字符

  • 字符类
    • \d:匹配数字。
    • \w:匹配字母、数字和下划线。
    • .:匹配任意单个字符(换行符除外)。
  • 数量限定符
    • *:匹配前一个字符 0 次或多次。
    • +:匹配前一个字符 1 次或多次。
    • {n,m}:匹配前一个字符 n 到 m 次。
  • 位置锚定
    • ^:匹配字符串的开头。
    • $:匹配字符串的结尾。

(三)常见应用场景

  • 邮箱验证

    • 正则:^[\w-\.]+@[\w-]+\.[a-z]{2,}$
  • URL 验证

    • 正则:https?:\/\/(www\.)?[\w-]+(\.[\w-]+)+([\/\w-]*)*\/?
  • 手机号验证

    (中国大陆)

    • 正则:^1[3-9]\d{9}$

四、安全

(一)常见安全问题

  • SQL 注入
    • 问题:通过插入恶意 SQL 语句来攻击数据库。
    • 防范措施:
      • (1) 使用参数化查询。
      • (2) 检查输入的合法性。
  • XSS(跨站脚本攻击)
    • 问题:攻击者在网页中插入恶意脚本,劫持用户信息。
    • 防范措施:
      • (1) 对用户输入进行转义。
      • (2) 设置内容安全策略(CSP)。
  • CSRF(跨站请求伪造)
    • 问题:攻击者通过伪造用户请求来完成未授权的操作。
    • 防范措施:
      • (1) 验证请求来源。
      • (2) 使用 CSRF Token。

(二)安全加密

  • 对称加密
    • 特点:加密和解密使用相同的密钥。
    • 常见算法:AES、DES。
  • 非对称加密
    • 特点:加密和解密使用不同的密钥(公钥与私钥)。
    • 常见算法:RSA、ECC。
  • 哈希算法
    • 特点:将任意长度数据映射为固定长度值,不可逆。
    • 常见算法:MD5、SHA-256。

(三)安全开发实践

  • (1) 使用 HTTPS 保护数据传输。
  • (2) 定期更新依赖库,避免已知漏洞。
  • (3) 实施最小权限原则,限制用户权限。
  • (4) 日志记录和监控,快速发现异常行为。
相关推荐
野生技术架构师2 小时前
一线大厂Java面试八股文全栈通关手册(含源码级详解)
java·开发语言·面试
kali-Myon5 小时前
CTFshow-Pwn142-Off-by-One(堆块重叠)
c语言·数据结构·安全·gdb·pwn·ctf·
Lee川7 小时前
🔍 React 面试官眼中的“秘密武器”:深度剖析 useRef
前端·react.js·面试
一目Leizi8 小时前
Burp Suite实战:利用不同响应进行用户名枚举与密码爆破
运维·服务器·安全
大大打打8 小时前
7. 军用涡扇发动机全流程核心边界保护与异常工况处置
安全·涡扇发动机·发动机工作原理·军用涡扇发动机·战斗机
宇擎智脑科技8 小时前
Claude Code 源码分析(二):Shell 命令安全体系 —— AI Agent 执行终端命令的纵深防御设计
人工智能·安全·claude code
Daiyaosei9 小时前
紧急安全警报:Axios npm 包被投毒事件详解与防护指南
前端·javascript·安全
青槿吖9 小时前
第一篇:Redis集群从入门到踩坑:3主3从保姆级搭建+核心原理一次性讲透|面试必看
前端·redis·后端·面试·职场和发展·bootstrap·html
运维行者_9 小时前
通过 OpManager 集成 Firewall Analyzer 插件,释放统一网络管理与安全的强大能力
大数据·运维·服务器·网络·数据库·安全