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

【网络安全面经】技术性问题3

11. 一次完整的 HTTP 请求过程

  • 域名解析:通过 DNS 将域名转换为 IP 地址,如上述 DNS 的工作原理。
  • 建立 TCP 连接:客户端向服务器发送 SYN 报文段,经过三次握手建立 TCP 连接。
  • 发送 HTTP 请求:客户端向服务器发送 HTTP 请求报文,请求报文包括请求行(包含请求方法,如 GET、POST 等,请求的 URL 和 HTTP 协议版本)、请求头(包含客户端的一些信息,如浏览器类型、语言等)和请求体(对于 POST 请求,请求体中包含要提交的数据)。
  • 服务器处理请求:服务器收到 HTTP 请求后,根据请求的内容进行处理。如果请求的是一个网页,服务器会查找相应的网页文件,并可能执行服务器端脚本(如 PHP、ASP 等)。
  • 发送 HTTP 响应:服务器处理完请求后,向客户端发送 HTTP 响应报文。响应报文包括响应行(包含 HTTP 协议版本、状态码和状态消息,如 200 OK 表示请求成功)、响应头(包含服务器的一些信息,如服务器类型、内容类型等)和响应体(包含实际的响应内容,如网页的 HTML 代码)。
  • 关闭 TCP 连接:客户端收到 HTTP 响应后,根据响应内容进行处理(如在浏览器中显示网页)。然后,客户端和服务器通过四次挥手关闭 TCP 连接。

12. Cookies 和 session 区别

  • Cookies
    • 定义:是由服务器发送给客户端浏览器,并保存在客户端本地的一小段文本信息。
    • 工作机制
      • 当用户第一次访问网站时,服务器可以在响应头中设置一个或多个 Cookies,浏览器收到响应后,会将 Cookies 保存起来。
      • 下次用户再次访问该网站时,浏览器会在请求头中自动带上这些 Cookies,服务器根据收到的 Cookies 来识别用户的身份或获取用户的相关信息。
    • 特点
      • 存储在客户端,容易被篡改。
      • 可以设置过期时间,在过期时间之前,每次访问网站都会带上 Cookies。
  • Session
    • 定义:是服务器端为了维护用户状态而创建的一种机制。
    • 工作机制
      • 当用户第一次访问网站时,服务器会为用户创建一个唯一的会话 ID,并将该会话 ID 通过 Cookies 或 URL 重写等方式传递给客户端。
      • 客户端在后续的请求中带上会话 ID,服务器根据会话 ID 在服务器端找到对应的会话对象,会话对象中存储了用户的相关信息。
    • 特点
      • 会话信息存储在服务器端,相对安全。
      • 通常需要依赖 Cookies 或其他机制来传递会话 ID,如果客户端禁用了 Cookies,可能需要采用其他方式(如 URL 重写)来传递会话 ID。

13. GET 和 POST 的区别(续)

  • 安全性(续)
    • POST:数据在请求体中,相对 GET 更安全一些,但如果没有采用加密传输(如 HTTPS),数据仍然可能被截获。
  • 缓存
    • GET:通常会被浏览器缓存,当用户再次访问相同的 URL 时,浏览器可能直接从缓存中获取数据,而不向服务器发送请求。
    • POST:一般不会被浏览器缓存,每次提交 POST 请求都会向服务器发送数据。
  • 幂等性
    • GET:具有幂等性,多次执行相同的 GET 请求,对服务器资源的影响是相同的,即不会改变服务器资源状态。例如多次查询数据库中的数据,结果是相同的。
    • POST:一般不具有幂等性,多次执行相同的 POST 请求可能会对服务器资源产生不同的影响,如多次提交订单会创建多个订单。

14. HTTPS 和 HTTP 的区别

  • 数据传输安全性
    • HTTP(Hypertext Transfer Protocol):数据以明文形式传输,在传输过程中容易被窃取、篡改。例如,用户在 HTTP 网站上输入的登录密码可能会被网络中的攻击者截获。
    • HTTPS(Hypertext Transfer Protocol Secure):在 HTTP 的基础上加入了 SSL/TLS 协议进行加密传输。它使用公钥 - 私钥对数据进行加密和解密,确保数据在传输过程中的安全性。
  • 端口号
    • HTTP:默认端口号是 80。
    • HTTPS:默认端口号是 443。
  • 证书
    • HTTP:不需要证书。
    • HTTPS:需要 SSL 证书,证书由证书颁发机构(CA)颁发,用于验证网站的身份。当用户访问 HTTPS 网站时,浏览器会检查证书的有效性,如果证书无效或过期,浏览器会提示用户存在安全风险。
  • 搜索引擎优化(SEO)
    • HTTP:随着网络安全的重视,搜索引擎对 HTTP 网站的排名可能会逐渐降低。
    • HTTPS:搜索引擎更倾向于对 HTTPS 网站进行更好的排名,因为它能提供更安全的用户体验。

15. session 的工作原理?

  • 创建
    • 当用户第一次访问网站时,服务器会创建一个新的会话(Session),并为该会话生成一个唯一的会话 ID(Session ID)。
  • 存储
    • 服务器会将会话相关的数据(如用户登录信息、购物车数据等)存储在服务器端的内存或其他存储介质(如数据库)中,以会话 ID 作为索引。
  • 传递
    • 服务器将会话 ID 传递给客户端,通常通过以下方式:
      • Cookies:最常见的方式是将会话 ID 放在 Cookies 中发送给客户端,客户端在后续的每次请求中都会自动带上 Cookies 中的会话 ID。
      • URL 重写:如果客户端禁用了 Cookies,服务器可以将会话 ID 附加在 URL 后面,如http://example.com/page.jsp;jsessionid=123456,这种方式需要对网站中的链接进行处理,确保会话 ID 能够正确传递。
  • 检索和使用
    • 当客户端再次发送请求时,服务器根据收到的会话 ID 检索对应的会话数据,根据会话数据来处理用户的请求。例如,如果用户已经登录,服务器可以根据会话中的用户登录信息提供个性化的服务。
  • 销毁
    • 当用户退出登录、会话超时或服务器决定结束会话时,服务器会销毁对应的会话数据,并停止跟踪该用户的会话状态。

16. http 长连接和短连接的区别

  • 短连接(HTTP Short - Connection)
    • 定义:每次 HTTP 请求 / 响应完成后,客户端和服务器之间的 TCP 连接就会立即关闭。
    • 工作过程
      • 客户端向服务器发起 HTTP 请求,先建立 TCP 连接(通过三次握手)。
      • 服务器处理请求并返回 HTTP 响应。
      • 客户端收到响应后,通过四次挥手关闭 TCP 连接。
      • 下次客户端有新的 HTTP 请求时,需要重新建立 TCP 连接。
    • 应用场景:适用于对实时性要求不高、请求频率较低的场景,如简单的网页浏览,用户在不同页面之间切换时,每次重新建立连接对用户体验影响不大。
  • 长连接(HTTP Long - Connection)
    • 定义:在一次 TCP 连接中可以进行多次 HTTP 请求 / 响应,连接在一段时间内保持打开状态,直到达到预定的条件(如空闲时间过长、连接数量达到上限等)才会关闭。
    • 工作过程
      • 客户端向服务器发起 HTTP 请求,建立 TCP 连接。
      • 服务器处理请求并返回 HTTP 响应,但 TCP 连接不关闭。
      • 客户端可以在该连接上继续发起新的 HTTP 请求,服务器继续处理和响应,多次重复此过程。
      • 当满足关闭条件时,通过四次挥手关闭 TCP 连接。
    • 应用场景:适用于对实时性要求高、请求频繁的场景,如在线聊天、网页游戏等,避免了频繁建立和断开 TCP 连接带来的开销,提高了数据传输效率。

相关文章:

【网络安全面经】技术性问题3

11. 一次完整的 HTTP 请求过程 域名解析:通过 DNS 将域名转换为 IP 地址,如上述 DNS 的工作原理。建立 TCP 连接:客户端向服务器发送 SYN 报文段,经过三次握手建立 TCP 连接。发送 HTTP 请求:客户端向服务器发送 HTTP…...

前后端交互之动态列

一. 情景 在做项目时,有时候后会遇到后端使用了聚合函数,导致生成的对象的属性数量或数量不固定,因此无法建立一个与之对应的对象来向前端传递数据,这时可以采用NameDataListVO向前端传递数据。 Data Builder AllArgsConstructo…...

递归(3)----力扣40组合数2,力扣473火柴拼正方形

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示例 1: 输入: candidates [10,1,2,7,6,1…...

十一:HTTP 状态码详解:解读每一个响应背后的意义

HTTP(超文本传输协议)是网络通信的基石之一,主要用于客户端(例如浏览器)和服务器之间的通信。为了让服务器能准确地向客户端反馈请求的处理状态,HTTP设计了一套标准的状态码。每一个状态码代表了特定的含义,指示了请求的状态、潜在的问题或成功的信息。 1. 信息响应 (1…...

《译文》2024年11月数维杯国际大学生数学建模挑战赛题目

# 赛题正式发布 2024年第十届数维杯国际大学生数学建模挑战赛顺利开赛,竞赛开始时间为北京时间2024年11月15日09:00至北京时间2024年11月19日09:00,共计4天,竞赛题目正式发布,快来一起围观,你认为今年的哪个题目更具有…...

shell命令统计文件行数之和

你可以使用以下 shell 命令来统计每个 .txt 文件的行数,并将其加和在一起: find . -name "*.txt" -not -name "*.json" -exec wc -l {} + | awk {sum += $1} END {print sum} 解释: find . -name "*.txt" -not -name "*.json": f…...

第02章 CentOS基本操作

2.文件基本操作【文件操作(一)】 目标 理解Linux下路径的表示方法能够使用命令(mkdir和touch)在指定位置创建目录和文件能够使用命令(rm)删除指定的目录和文件能够使用命令(ls)列出目录里的文件能够使用命令(cat,head,tail,less,more)查看文件内容理解标…...

241113.学习日志——[CSDIY] [ByteDance] 后端训练营 [02]

CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!&…...

【HOT100第三天】和为K的子数组,最大子数组和,合并区间,轮转数组

今天练的是子串和子数组专题 ~ (前缀和那里差点学死了) 560.和为K的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 先写个暴力法,用昨天刚学…...

设计模式-Adapter(适配器模式)GO语言版本

前言 个人感觉Adapter模式核心就在于接口之间的转换。将已有的一些接口转换成其他接口形式。并且一般用于对象上,而不是系统上 问题 就用一个简单的问题,懂数据结构的同学可能知道双端队列。那么就用双端队列实现一个栈(stack)或…...

SAM_Med2D 训练完成后boxes_prompt没有生成mask的问题

之前对着这这篇文章去微调SAM_Med2D(windows环境),发现boxes_prompt空空如也。查找了好长时间问题SAM-Med2D 大模型学习笔记(续):训练自己数据集_sam训练自己数据集-CSDN博客 今天在看label2image_test.json文件的时候发现了一些端倪: 官方…...

游戏引擎学习第18天

clang-format 相关的配置可以参考下面 .clang-format 是用来配置代码格式化规则的文件,主要用于 Clang-Format 工具。以下是 .clang-format 文件中的一些常用设置: 1. 基础设置 Language: Cpp # 指定语言 (C, C, Java, JavaScript, etc…...

Kotlin return与return@forEachIndexed

Kotlin return与returnforEachIndexed fun main() {val data arrayOf(0, 1, 2, 3, 4)println("a")data.forEachIndexed { index, v ->if (v 2) {//类似while循环中的continue//跳过,继续下一个forEachIndexed迭代returnforEachIndexed}println("…...

基于Canny边缘检测和轮廓检测

这段代码实现了基于Canny边缘检测和轮廓检测,从图像中筛选出面积较大的矩形,并使用OpenCV和Matplotlib显示结果。主要流程如下: 步骤详解: 读取图像: img cv2.imread(U:/1.png)使用cv2.imread()加载图像。 转换为灰…...

力扣题目解析--合并k个升序链表

题目 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下…...

Linux:调试器-gdb/cgdb

文章目录 一、编译成debug1、-g 选项 二、gdb调试命令1、在CentOS系统下检查安装gdb2、进入gdb模式3、quit 退出gdb4、list (简写 l)显示文件内容5、b 打断点6、 r / run运行程序7、c 让程序直接运行完 三、cgdb1、info b查看打的所有断点2、d 删除断点3…...

『VUE』30. 生命周期的介绍(详细图文注释)

目录 生命周期生命周期的8阶段生命周期小例子总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 生命周期 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板&#xf…...

Python 人脸检测:使用 Dlib 和 OpenCV

简介 本文用Python、Dlib 和 OpenCV 库来检测图像中的人脸,并在人脸上绘制矩形框进行窗口显示。 环境准备 在开始之前,请确保您的计算机上已安装 Python。此外,您还需要安装以下库: dlib:一个包含多种机器学习算法…...

【大数据学习 | flume】flume的概述与组件的介绍

1. flume概述 Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到HDFS、Hbase,简单来说flume就是收集日志的。 Flume两个版本区别: ​ 1&…...

torch.is_storage()

torch.is_storage() 判断给定的对象是否是一个 PyTorch 存储对象 PyTorch 存储对象:PyTorch 中,存储对象(Storage)是一个低级别的对象,它表示一个存储数据的连续内存块。存储对象不包含任何关于数据如何解释的信息&a…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

GitHub 趋势日报 (2025年06月08日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

如何在网页里填写 PDF 表格?

有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据&#xff…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键&#xff…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...