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

一、计算机网络

(一)基本概念

  • 计算机网络 是一种将多台计算机通过硬件和软件互联,以实现资源共享和数据传输的技术。
  • 组成部分:
    • (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) 日志记录和监控,快速发现异常行为。
相关推荐
Moment1 小时前
代码都能让 Agent 写了,我们为什么还要学前端?
前端·后端·面试
国科安芯1 小时前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
国科安芯2 小时前
算力上天之后的电与静:星上边缘计算载荷带外管理网络的低功耗调度与辐射容错
网络·人工智能·嵌入式硬件·安全·边缘计算·低轨卫星·商业航天
7177773 小时前
2026 供应链安全用什么:SBOM、SLSA 与制品库的落地选型
安全·gitee
聪明的笨猪猪3 小时前
实际工程问题:AI生成Redis分布式锁的原子性缺陷导致库存超卖
java·经验分享·面试·ai编程
流浪0014 小时前
计算机网络篇23:数据链路层——以太网帧格式与 MAC 地址,MTU 牵住 UDP 和 TCP,ARP 拿 IP 换 MAC
计算机网络·mac·数据链路层·arp·mtu·局域网通信
时间的拾荒人7 小时前
Redis 入门详解:核心特性、重要文件与全局命令实战
开发语言·redis·面试
QXWZ_IA7 小时前
定位数据怎么推给 IoT 平台?消息协议选型与接入准备
网络·人工智能·物联网·安全
不庸.8 小时前
WPScan 实战入门:从 Docker 靶场到弱密码爆破
运维·安全·web安全·docker·容器·安全性测试·wpscan
qq_452396239 小时前
第十篇:《Kafka 安全加固:SASL、SSL、ACL 与多租户隔离》
安全·kafka·ssl