当前位置: 首页 > article >正文

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

一、计算机网络

(一)基本概念

  • 计算机网络 是一种将多台计算机通过硬件和软件互联,以实现资源共享和数据传输的技术。
  • 组成部分:
    • (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) 日志记录和监控,快速发现异常行为。

http://www.kler.cn/a/518739.html

相关文章:

  • 【ComfyUI专栏】ComfyUI 部署Kolors
  • 《CPython Internals》阅读笔记:p360-p377
  • Linux系统之gzip命令的基本使用
  • RDMA 工作原理 | 支持 RDMA 的网络协议
  • openlava/LSF 用户组管理脚本
  • 上位机知识篇---return环境变量.bashrc
  • 一文简单回顾复习Java基础概念
  • InfiniBand客户端注册机制详解:ib_register_client函数的作用与实现
  • DDD架构实战第六讲总结:领域驱动设计中的聚合
  • 近年流行的开发技术
  • 02-AD-绘制原理图(画示意图+添加已有P封装)
  • MySQL核心知识:春招面试数据库要点
  • PyQt6医疗多模态大语言模型(MLLM)实用系统框架构建初探(上.文章部分)
  • 使用 Serilog 在 .NET Core 6.0 中日志记录
  • Linux 部署 Java 项目:Tomcat、Redis、MySQL 教程
  • 速通Docker === Dockerfile
  • 计算机网络 (61)移动IP
  • 电商平台爬虫开发技术分享:多年的实战经验总结
  • Java I/O 流介绍
  • Solon Cloud Gateway 开发:Route 的配置与注册方式
  • (回溯法 子集)leetcode78
  • Lua 环境的安装
  • 【JavaEE进阶】Spring留言板实现
  • 第四届电子信息工程、大数据与计算机技术
  • 14.模型,纹理,着色器
  • Android WebView 中网页被劫持的原因及解决方案