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

【前端面试】Http篇

1. HTTPS 概念

  • 加密(Encryption)
    • 防止数据被截获
  • 数据完整性(Data Integrity)
    • 防止数据篡改
  • 身份验证(Authentication)
    • 验证网站的真实性

2. HTTPS 与 HTTP 的区别

  • HTTP 是明文传输,HTTPS 是加密传输
  • HTTP 使用 80 端口,HTTPS 使用 443 端口
  • HTTPS 加密会导致传输稍慢

3. HTTPS 防止的安全威胁

  • 中间人攻击(MITM)
    • 加密避免数据被拦截和篡改
  • 窃听(Eavesdropping)
    • 通过加密防止数据被监听
  • 篡改(Data Tampering)
    • 确保数据在传输过程中不被篡改
  • 假冒网站(Phishing)
    • 证书验证防止访问假冒网站

4. 安全相关话题

  • 前端数据加密
    • 使用 Web Crypto API 加密用户数据
  • XSS(跨站脚本攻击)
    • 输入验证
    • HTML 转义
    • Content Security Policy (CSP)
  • CSRF(跨站请求伪造)
    • 同源策略(Same-Origin Policy)
    • CSRF Token
  • HTTP 安全头(HTTP Headers)
    • Strict-Transport-Security (HSTS)
    • X-Content-Type-Options
    • X-Frame-Options
    • Content-Security-Policy (CSP)
  • 身份验证与授权
    • OAuth
    • JWT(JSON Web Token)

5. 安全存储和传输

  • 密码存储
    • 哈希(bcrypt)
  • 数据加密存储
    • 对称加密和非对称加密

6. HTTP 版本区别(1.0, 2.0, 3.0)

  • HTTP 1.0
    • 请求/响应模型:每个请求都需要建立一个连接
    • 没有管道化和多路复用
    • 缺乏性能优化
  • HTTP 2.0
    • 引入了多路复用,可以在一个连接上同时处理多个请求
    • 数据帧和流的概念,提高了性能
    • 压缩请求和响应头,减少延迟
  • HTTP 3.0
    • 基于 QUIC 协议(UDP),进一步减少延迟
    • 解决了 HTTP 2.0 在高延迟和丢包情况下的性能问题
    • 更好的安全性,内置 TLS 1.3

7. 强缓存与弱缓存

  • 强缓存
    • 浏览器会直接使用缓存的内容,不发请求到服务器
    • 基于 Cache-ControlExpires 头部控制
    • 例如:Cache-Control: max-age=3600
  • 弱缓存
    • 浏览器会先发请求到服务器,检查资源是否变化,如果没有变化则使用缓存
    • 基于 ETagLast-Modified 头部控制
    • 例如:If-None-Match: "etag-value"

8. 相关面试问题及答案

Q1: HTTPS 和 HTTP 的区别是什么?

  • HTTP 是明文传输,HTTPS 在 HTTP 上加入了 SSL/TLS 加密协议,确保数据传输的机密性、完整性和身份验证。HTTPS 使用 443 端口,而 HTTP 使用 80 端口。

Q2: HTTPS 如何防止中间人攻击?

  • HTTPS 使用 SSL/TLS 加密传输,防止了第三方拦截、篡改数据。在通信过程中,双方会验证彼此的身份(通过证书),并通过加密保护数据内容。

Q3: 如何防止 XSS 和 CSRF 攻击?

  • XSS:输入验证、HTML 转义、使用 Content Security Policy (CSP) 防止恶意脚本注入。
  • CSRF:使用 CSRF Token、双重提交 Cookie 或者通过 SameSite 属性限制跨站请求。

Q4: 如何配置浏览器安全性头部?

  • Strict-Transport-Security (HSTS):要求浏览器仅通过 HTTPS 连接。
  • X-Content-Type-Options:防止浏览器根据内容推测 MIME 类型。
  • X-Frame-Options:防止网页被嵌入在 iframe 中,减少点击劫持攻击。
  • Content-Security-Policy (CSP):限制浏览器加载的内容类型,防止 XSS 攻击。

Q5: 前端如何保护用户的敏感信息?

  • 使用 HTTPS 加密传输数据。
  • 在客户端存储时对敏感数据进行加密。
  • 使用 HTTP Only 和 Secure 属性来保护 Cookie。
  • 定期更新和管理认证 token,使用 JWT 进行身份验证。

Q6: HTTP 1.0 和 HTTP 2.0 有哪些主要区别?

  • HTTP 1.0 使用每个请求一个连接,而 HTTP 2.0 引入了多路复用技术,允许在一个连接上同时发送多个请求和响应,从而减少延迟和提高性能。

Q7: 什么是强缓存和弱缓存,如何配置?

  • 强缓存:在资源有效期内,浏览器不会向服务器发送请求,直接使用缓存。
    • 配置:Cache-Control: max-age=3600
  • 弱缓存:浏览器会检查缓存是否过期,如果过期则向服务器请求新的资源。
    • 配置:ETagLast-Modified

Q8: 如何避免 CSRF 攻击?

  • 使用 CSRF Token:为每个请求生成唯一的 Token,服务器验证 Token 来确保请求来自合法的用户。
  • 使用 SameSite Cookie 属性:限制第三方网站发送跨站请求。

相关文章:

【前端面试】Http篇

1. HTTPS 概念 加密(Encryption) 防止数据被截获 数据完整性(Data Integrity) 防止数据篡改 身份验证(Authentication) 验证网站的真实性 2. HTTPS 与 HTTP 的区别 HTTP 是明文传输,HTTPS 是…...

ZZCMS2023存在跨站脚本漏洞(CNVD-2024-44822、CVE-2024-44818)

ZZCMS是一款用于搭建招商网站的CMS系统,由PHP语言开发,可快速搭建:医药招商、保健品招商、化妆品招商、农资招商、孕婴童招商、酒类副食类等招商网站。 国家信息安全漏洞共享平台于2024-11-14公布其存在跨站脚本漏洞。 漏洞编号&#xff1a…...

Android 15 前台服务类型的变更

在 Android 15 中对前台服务类型做出以下更改。 仍在处理中的媒体内容 要在其清单中声明的前台服务类型 android:foregroundServiceType mediaProcessing在清单中声明的权限 FOREGROUND_SERVICE_MEDIA_PROCESSING要传递给 startForeground() 的常量 FOREGROUND_SERVICE_TYPE_ME…...

微信小程序开发简易教程

微信小程序文件结构详解 1. 项目配置文件 project.config.json 项目的配置文件包含项目名称、appid、编译选项等配置示例: {"description": "项目配置文件","packOptions": {"ignore": []},"setting": {&quo…...

树莓派 发那科 Fanuc Linux跨平台CNC数控数据采集协议,TCP协议包

市面上的数控基本都支持了跨平台通讯,下面以发那科为列讲解跨平台协议如何通讯,无需任何DLL,适配任何开发语言,纯Socket通讯 先上采集图 握手包:a0 a0 a0 a0 00 01 01 01 00 02 00 02 释放包:a0 a0 a0 a…...

Ubuntu中安装配置交叉编译工具并进行测试

01-下载获取交叉编译工具的源码 按照博文 https://blog.csdn.net/wenhao_ir/article/details/144325141的方法,把imx6ull的BSP下载好后,其中就有交叉编译工具。 当然,为了将来使用方便,我已经把它压缩并传到了百度网盘&#xff…...

C++核心day3作业

作业: 1.整理思维导图 2.整理课上代码 3.把课上类的三个练习题的构造函数写出来 函数全部类内声明,类外定义 定义一个矩形类Rec,包含私有属性length、width,包含公有成员方法: void set_length(int l); //设置长度v…...

socket UDP 环路回显的服务端

基于socket通讯的方式&#xff0c;无论用http或者udp或者自定义的协议&#xff0c;程序结构都是类似的。这个以UDP协议为例简要说明。 #include <stdio.h> // 标准输入输出库 #include <sys/types.h> // 提供了一些数据类型&#xff0c;如ssize_t #include <sy…...

springboot/ssm车辆违章信息管理系统Java代码web项目汽车违章处罚源码

基于springboot(可改ssm)htmlvue项目 springboot/ssm车辆违章信息管理系统Java代码web项目汽车违章处罚源码 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&…...

5G模组AT命令脚本-关闭模组的IP过滤功能

关闭模组的IP过滤功能 关闭模组的IP过滤功能 5G 模组通常使用nat方式为 下挂设备或上位机提供上网服务&#xff0c;默认情况&#xff0c;不做NAt的包无法经由 模组转发&#xff0c;如果禁掉这个限制 &#xff0c;可使用本文中的配置命令本脚本用于关闭模组的IP过滤功能&#xf…...

STM32:实现ping命令(lwip)

目录 0.协议介绍ICMP数据包格式ping指令发送的ICMP回声请求消息ping指令接收的ICMP回声应答消息1.实现步骤2.源码分析2.1 初始化函数2.2 发送函数2.3 回调函数2.3.1 函数定义:2.3.2 解析数据包:2.3.3.处理ICMP数据包:2.3.4 资源释放:2.3.5 返回值:3.源码展示4.源码链接5.问…...

nvm安装指定版本显示不存在及nvm ls-remote 列表只出现 iojs 而没有 node.js 解决办法

在使用 nvm install 18.20.3 安装 node 时会发现一直显示不存在此版本 Version 18.20.3 not found - try nvm ls-remote to browse available versions.使用 nvm ls-remote 查看可安装列表时发现&#xff0c;列表中只有 iojs 解决方法&#xff1a; 可以使用以下命令查看可安装…...

Spring Boot 中 WebClient 的实践详解

在现代微服务架构中&#xff0c;服务之间的通信至关重要。Spring Boot 提供了 WebClient&#xff0c;作为 RestTemplate 的替代方案&#xff0c;用于执行非阻塞式的 HTTP 请求。本文将详细讲解 WebClient 的实践&#xff0c;包括配置、使用场景以及常见的优化策略&#xff0c;帮…...

在GITHUB上传本地文件指南(详细图文版)

这份笔记简述了如何在GITHUB上上传文件夹的详细策略。 既是对自己未来的一个参考&#xff0c;又希望能给各位读者带来帮助。 详细步骤 打开目标文件夹&#xff08;想要上传的文件夹&#xff09; 右击点击git bash打开 GitHub创立新的仓库后&#xff0c;点击右上方CODE绿色按…...

【大模型系列篇】LLaMA-Factory大模型微调实践 - 从零开始

前一次我们使用了NVIDIA TensorRT-LLM 大模型推理框架对智谱chatglm3-6b模型格式进行了转换和量化压缩&#xff0c;并成功部署了推理服务&#xff0c;有兴趣的同学可以翻阅《NVIDIA TensorRT-LLM 大模型推理框架实践》&#xff0c;今天我们来实践如何通过LLaMA-Factory对大模型…...

30天学会Go--第7天 GO语言 Redis 学习与实践

30天学会Go–第7天 GO语言 Redis 学习与实践 文章目录 30天学会Go--第7天 GO语言 Redis 学习与实践前言一、Redis 基础知识1.1 Redis 的核心特性1.2 Redis 常见使用场景 二、安装 Redis2.1 在 Linux 上安装2.2 在 Windows 上安装2.3 使用 Docker 安装 Redis 三、Redis 常用命令…...

java 使用JSqlParser和CCJSqlParser 解析sql

maven <dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>4.9</version> </dependency>解析SQL String sql "select aa,bb from b"; Statement statementCCJSq…...

基于spring boot的高校专业实习管理系统的设计与实现

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 设计题目&#xff1a;基于spring boot的高校专业实习管理系统的设计与实现 摘 要 随着国内市场经济这几十年来的蓬勃发展&#xff0c;突然遇到了从国外传入国内的互联网技术&#xff0c;互联网产业从开…...

OpenCV相机标定与3D重建(11)机器人世界手眼标定函数calibrateRobotWorldHandEye()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算机器人世界/手眼标定&#xff1a; w T b _{}^{w}\textrm{T}_b w​Tb​ 和 c T g _{}^{c}\textrm{T}_g c​Tg​。 cv::calibrateRobotWorldHa…...

计算机网络ENSP课设--三层架构企业网络

本课程设计搭建一个小型互联网&#xff0c;并模拟Internet的典型Web服务过程。通过此次课程设计&#xff0c;可以进一步理解Internet的工作原理和协议过程&#xff0c;并提高综合知识的运用能力和分析能力。具体目标包括&#xff1a; &#xff08;1&#xff09;掌握网络拓扑的…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...