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

一、计算机网络

(一)基本概念

  • 计算机网络 是一种将多台计算机通过硬件和软件互联,以实现资源共享和数据传输的技术。
  • 组成部分:
    • (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) 日志记录和监控,快速发现异常行为。
相关推荐
后台模板学习36 分钟前
2026最新面试真题:到达用英语怎么说背后的逻辑与源码剖析
面试·职场和发展·php
Thomas21431 小时前
mysql 索引面试复习
数据库·mysql·面试
jimmyleeee1 小时前
大模型安全之五:LLM输出安全
人工智能·安全
CoderYanger1 小时前
前端基础——JavaScript(WebAPI)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
ocean21033 小时前
2025-2026年嵌入式开发大厂面试高频问题
面试·秋招·嵌入式开发·rtos·面经·嵌入式面试
敲代码的嘎仔4 小时前
自己设计了一个兑换码算法:自增ID + Base32转码 + 按位加权签名 + 异或混淆,面试被追问细节时终于不用慌了
java·数据库·mysql·算法·微服务·面试·职场和发展
Bruce_Liuxiaowei4 小时前
从两个中危漏洞读懂 CVSS 评分体系:向量拆解、数学计算与实战观察
安全·网络安全·漏洞评级
许彰午5 小时前
34-安全复盘96个问题
前端·vue.js·安全
数据知道6 小时前
AES 加密实战——模式选择(ECB/CBC/GCM)与安全陷阱
前端·网络·安全
科技云报道7 小时前
AI时代重新定义“信任”,瑞数信息发布全新AI安全产品体系
人工智能·安全