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

HTTP/HTTPS ②-Cookie || Session || HTTP报头

这里是Themberfue

上篇文章介绍了HTTP报头的首行信息

本篇我们将更进一步讲解HTTP报头键值对的含义~~~

❤️❤️❤️❤️


报头Header

        ✨再上一篇的学习中,我们了解了HTTP的报头主要是通过键值对的结构存储和表达信息的;我们已经了解了首行的HTTP方法和URL;那么我们继续深入一些其他的键值对含义吧


Host

  • ✨host在英文中有 "主人" "主机" 的意思,所以在HTTP协议中,host的值所存储的就是目标服务器的主机名或IP地址以及可选的端口号。例如:www.bilibili.com[:8086]
  • 它是HTTP/1.1中强制要求的字段,每个HTTP/1.1请求必须包含Host字段,否则服务器会返回400 Bad Request。
  • host的值的内容URL的主题内容大差不差,不过,在传输URL时是不会对URL加密的,被加密的一般是Header和Body的内容,所以服务器在收到请求后,也可以做一个检验,检验host的内容和URL的内容是否发生改变。

作用

1. 支持虚拟主机(Virtual Hosting)

  • 多个网站可以托管在同一台服务器上,使用相同的IP地址。
  • Host字段的值指定客户端希望访问的具体网站。例如:
请求A
GET /index.html HTTP/1.1
Host: www.example1.com请求B
GET /index.html HTTP/1.1
Host: www.example2.com
  • 服务器通过Host字段区分请求,返回对应的网站内容。

2. 支持非标准端口

  • Host字段可以指定端口号,使服务器知道客户端访问的具体服务。例如:
GET /api/data HTTP/1.1
Host: www.example.com:8080
  • 这里的:8080明确了目标服务运行在8080端口,而不是默认的80端口。

3. 增强请求路由能力

  • 在负载均衡或反向代理场景中,Host字段帮助服务器路由请求到对应的后端服务器。

Content-Length

  • 中文直接翻译过来就是:内容长度,Content-Length指代的就是HTTP协议中body正文的内容长度,单位是字节
  • 我们知道,通过HTTP构造的数据包只是在应用层上的,我们还需经过传输层、网络层.....,通过Content-Length,传输层就可以直到这个HTTP数据包的正文内容有多少,读到哪里,知道消息体的预期长度。
  • 若是没有Content-Length,这说明这个请求或者响应就没有body正文,一般读到空行就表示该数据包读完了,若有Content-Length,就按照Content-Length所给定的值来读取body正文的内容。
  • 前面编写TCP代码时,我们使用 hasNext() 方法,也就是在暗指读到空行就结束读取。

作用

1. 消息完整性校验

  • 客户端或服务器通过Content-Length字段知道消息体的预期长度。
  • 如果接收到的数据长度与Content-Length字段的值不符,则认为数据可能丢失或损坏。

2. 分块数据解析

  • 在持久连接中,服务器需要知道消息体的确切长度,以便从流中提取完整的消息。

3. 提高通信效率

  • 通过提前知道消息体长度,可以优化内存分配和处理逻辑。

Content-Type

  • ✨在当今的互联网时代,网络上的数据非常之多,数据类型也非常之多:纯文本、超文本、富文本、图片、视频......
  • 所以,在传输数据时,也需要知道该数据是哪个类型的;那么,Content-Type就充当此角色,Content-Type表示请求的body的数据格式,也提示了接受方如何解析body中的数据。
  • Content-Type用于指示消息体中数据的媒体类型(MIME类型);它告诉接收方(浏览器或服务器),如何解析和处理消息体的数据内容。
  • Content-Type负责标明数据的类型和格式;它在请求和响应中都有广泛的应用,确保了数据的正确传输和解析

携带的数据类型

HTTP可携带的数据类型还是比较全面、比较多的,例如:

  1. HTML:text/html => 浏览器便会解析其中的标签,把标签转换为界面显示
  2. CSS:text/css => 浏览器便会解析其中的选择器以及属性,将这些样式应用到指定的内容上
  3. JS:application/javascript => 浏览器便会通过JS引擎执行这些JS代码的逻辑
  4. JSON:application/json => 浏览器通常不会做处理,由程序员来对这些JSON数据进行操作
  5. 图片:image/png、image/jpg => 浏览器按照图片的二进制格式,解析出来并显示在页面上
  • 文本类型(text):用于传输纯文本数据。
    Content-Type: text/plain; charset=UTF-8
    Content-Type: text/html; charset=UTF-8
    
  • 图片类型(image):用于传输图片数据。

    Content-Type: image/jpeg
    Content-Type: image/png
    
  • 应用类型(application):用于传输二进制数据或特殊格式的数据。

    Content-Type: application/json
    Content-Type: application/xml
    Content-Type: application/pdf
    Content-Type: application/octet-stream
    
  • 多媒体类型(audio、video):用于传输音频或视频文件。

    Content-Type: audio/mpeg
    Content-Type: video/mp4
    
  • 多部分类型(multipart):用于传输多部分数据(如文件上传)。

    Content-Type: multipart/form-data; boundary=------WebKitFormBoundary
    

携带的格式

✨Content-Type: <主类型>/<子类型>; <参数>

  • 主类型:数据的大类别,例如textimageapplication等。
  • 子类型:具体的数据格式,例如htmljpegjson等。
  • 参数(可选):附加信息,常见的是字符编码(如charset=UTF-8)。
Content-Type: text/html; charset=UTF-8

作用

1. 明确数据格式

  • 发送方通过Content-Type告知接收方消息体的数据格式。
  • 接收方根据Content-Type正确解析消息体,避免误解。

2. 跨平台兼容

  • 不同的系统、语言或平台都可以通过Content-Type理解数据格式,实现兼容性。

3. 提高效率

  • 客户端或服务器可以快速根据Content-Type选择合适的工具或库处理数据,而不需要额外推断。

User-Agent

  • ✨在2025年的今天,有各式各样的设备都可以访问网页,这些设备的性能不同,屏幕大小不同;为了让用户在不同设备上都有一个良好的浏览体验,提前知道用户访问的设备信息,从而返回不同的响应结果,这是非常重要的。
  • 所以,User-Agent便充当了这么一个角色;User-Agent翻译过来就是用户代理,其描述了用户访问网页时所使用的设备信息。
  • User-Agent用于标识客户端的信息,它告诉服务器发起请求的客户端是什么类型的设备使用什么操作系统运行什么软件(如浏览器)等。

常见结构

典型的User-Agent字符串由多个部分组成,以空格分隔,主要包括:

  1. 产品名称(软件名、浏览器名等)。
  2. 版本号
  3. 操作系统信息
  4. 其他组件
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36
  • Mozilla/5.0

    • 起源于早期的Netscape浏览器,后来成为一种惯例。
    • 表示兼容Mozilla标准。
    • Firefox(火狐浏览器)也是之一
  • (Windows NT 10.0; Win64; x64)

    • 操作系统信息:
      • Windows NT 10.0:Windows 10。
      • Win64:64位版本。
      • x64:基于x64架构。
  • AppleWebKit/537.36

    • 使用的渲染引擎(WebKit)及其版本。
    • 浏览器内核
  • Chrome/96.0.4664.93

    • 浏览器名称和版本。
  • Safari/537.36

    • 表明浏览器兼容Safari。
    • Safari是苹果公司开发的浏览器,用于苹果系统上

常见示例

1. 桌面浏览器

        Chrome:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36

        FireFox:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0

2. 移动浏览器

        Android:

Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Mobile Safari/537.36

        iPhone:

Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1

3. 搜索引擎爬虫

        Googlebot:

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

        Bingbot:

Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

作用

1. 适配响应内容

  • 服务器可以根据客户端的User-Agent信息,返回适合该设备的内容。
  • 根据不同的设备返回呈现不同的样式,不同的排版,这便是响应式编程。
  • 例如,给移动设备返回简化页面,给桌面设备返回完整版页面。

2. 统计与分析

  • 网站通过记录User-Agent分析用户使用的设备、浏览器、操作系统等,优化产品策略。

3. 调试和诊断

  • 开发者通过User-Agent信息了解客户端环境,定位问题。

4. 安全和反爬虫

  • 服务器可以根据User-Agent区分正常用户和爬虫,也可以设置特定策略限制某些类型的访问。

KHTML, like Gecko

  • 这个标识感兴趣的了解即可,不感兴趣可以直接跳过了
  • KHTML, like Gecko用来表明浏览器的渲染引擎及其兼容性;
  • KHTML 是一个开源的浏览器渲染引擎,最初由 KDE 项目为 Konqueror 浏览器开发。解析 HTML 和 CSS,呈现网页内容;处理 JavaScript 的执行。轻量级:设计目标是简洁和高效;灵活性强:为后来的浏览器渲染引擎(如 WebKit)奠定了基础。
  • Gecko 是 Mozilla 开发的浏览器渲染引擎,用于 Firefox 和其他基于 Mozilla 的浏览器。强大的标准兼容性;可扩展性高,支持多种插件和扩展功能;更新迭代快,适应最新的 Web 技术。
  • like Gecko 表明当前浏览器的渲染行为与 Gecko 引擎兼容,尽管它可能并非真正基于 Gecko。这是为了在服务器端解析 User-Agent 时,提高浏览器的兼容性。一些网站或服务会根据 User-Agent 优化内容。如果声明与 Gecko 兼容,则可以避免某些不必要的功能限制。
  • 由于苹果公司在 KHTML 的基础上开发了 WebKit,用于 Safari 浏览器。WebKit 最终成为许多现代浏览器的基础(如 Chrome 的 Blink 引擎)。为了兼容旧版的服务器解析逻辑,WebKit 在 User-Agent 中保留了 KHTML 的标识。like Gecko 则是为了表明 WebKit 的渲染效果类似于 Gecko,从而避免被视为不兼容的浏览器。
  • KHTML, like Gecko 是一种历史遗留标识,最初用于声明浏览器兼容性,避免因 User-Agent 解析引起的兼容性问题。它已经成为现代浏览器中 User-Agent 的惯用格式,即使没有实际功能意义,但可以提高服务器对浏览器的兼容性处理

Referer

  • ✨我们知道,当今的网页已经不仅仅局限于一个网页(虽然也有SPA);在某些情况下,我们需要知道当前网页是从哪个网页跳转来的;所以,Referer 便充当了这么个角色。
  • Referer翻译过来就是 "来路",其用于标识当前请求的来源页面。它的主要作用是告诉服务器,该请求是从哪个 URL 链接点击跳转过来的

作用

1. 统计与分析

  • 服务器可以通过 Referer 头字段了解流量来源,例如某个用户是从搜索引擎、广告链接还是其他页面访问了当前页面。
  • 便于网站管理员优化流量入口。

2. 追踪导航路径

  • Referer 记录了用户从哪个页面跳转而来,方便了解用户的访问路径。

3. 防盗链

  • 某些网站通过 Referer 检查请求来源,防止其他网站未经授权直接引用其资源(如图片、视频等)。

4. 广告投放效果评估

  • 广告主可以通过 Referer 数据统计广告链接的点击率和效果。

Referer对广告系统的作用

  • ✨广告系统的计费方式很多,其中一个比较有名的就是 CPC(点击计费),也就是按用户的点击量来计费,例如点击一次就5分钱。
  • 所以需要统计某个投放的广告点击了多少次;比如按一个月来算:一个月后,需要浏览器开发商和广告主都统计点击量,然后核对数据是否一致,随后由广告主支付相应的广告费用。
  • 浏览器开发商统计点击量就比较方便了,只需要在点击时先访问该开发商的 "计费服务器" ,再访问该广告;计费服务器通过记录日志从而生成相应的数据。
  • 而广告主就比较麻烦了,因为广告主可能向不止一家浏览器开发商投放广告,所以就需要知道该广告是从哪个浏览器点击来的,那么通过 Referer 就可以很快的知道是从哪个浏览器点击来的,从而对各个浏览器的点击量分别统计。
  • 但由于 HTTP协议 最初是明文传输的,所以再传输时,Referer 可能会被别人篡改,如果被篡改了,统计的数据就变少了,这造成的损失就大了啊。运营商(ISP)劫持就是当时比较常见的,所有互联网服务都要经过运营商的设备,所以运营商就有机会对这里面的数据进行修改,运营商也要恰钱的啊,运营商当然也会投放广告,运营商便更改成了运营商的 Referer,从而运营商这边的点击量就 "多" 了。
  • 当时的法律明文对这些的判处还是比较模糊的,为了解决这个问题,国内的大厂就开始纷纷使用 HTTPS协议,HTTPS协议 可以对 Referer 进行加密,这样运营商就不能轻易更改了,随后愈来愈多的互联网厂商都纷纷跟进使用 HTTPS协议。在2025的今天,想要看到使用 HTTP协议 的网站是很难的。

Referer 的改进:Referrer Policy

  • ✨为了解决 Referer 的隐私问题,现代浏览器引入了 Referrer Policy,它允许开发者控制 Referer 信息的发送方式。常见的 Referrer Policy 选项:
  • no-referrer

    • 不发送任何 Referer 信息。
  • no-referrer-when-downgrade

    • 仅在跨协议从 HTTPS 跳转到 HTTP 时不发送 Referer(默认行为)。
  • origin

    • 只发送来源的主域名,例如 https://example.com
  • strict-origin-when-cross-origin

    • 同源请求发送完整 Referer,跨域请求只发送来源的主域名。
  • origin-when-cross-origin

    • 同源请求发送完整 URL,跨域请求只发送主域名。

Cookie

  • ✨Cookie 翻译就是 "曲奇" (bushiCookie 是一种存储在用户浏览器中的小型数据文件,用于在客户端和服务器之间共享状态信息。它由服务器通过 HTTP 响应发送,并由浏览器在后续请求中回传给服务器。
  • 浏览器在展示页面的过程中,是通过 JS 代码来执行一些操作,当时 JS 无法直接访问你电脑的文件系统,这是浏览器给 JS 做的一个限制,这么做是为了防止某些不法分子直接读取你的文件系统然后做些不可描述的事情。
  • 因此浏览器引入了 Cookie机制,Cookie就是浏览器允许网页在本地硬盘存储数据的一种机制;并非通过 JS 代码直接访问文件系统,而是做了一层抽象,浏览器的 Cookie提供了键值对存储机制。

作用

1. 会话管理

  • 维持用户登录状态,例如购物车内容、用户偏好等。

2. 个性化设置

  • 保存用户的语言偏好、主题颜色等设置,以便在下次访问时自动应用。

3. 跟踪与分析

  • 用于统计用户行为数据,例如记录访问次数、来源等。

  • Cookie可以通过浏览器自带的开发者工具查看,我们以 bilibili 的Cookie 为例:
  • ✨这Cookie里的键值对是什么意思?我们当然不知道,因为这是程序员自定义的,只有写这些代码才能看懂这是些是什么含义。

Cookie的结构

✨虽然 Cookie 的内容是由程序员定义的,但其结构和格式是由 HTTP 协议统一规定的,以保证不同的浏览器和服务器可以正确解析和传输数据。程序员可以在键值和属性的设置上自由发挥,但必须遵循协议规范来实现一致性和可操作性。

Set-Cookie: key=value; Attribute1=Value1; Attribute2=Value2Set-Cookie: session_id=abc123; Path=/; HttpOnly; Secure; Max-Age=3600
  • session_id=abc123:键值对,表示存储的具体数据。
  • Path=/:Cookie 作用范围,指定在该路径下的请求会附带该 Cookie。
  • HttpOnly:限制 Cookie 只能通过 HTTP 请求访问,防止 JavaScript 操作,增强安全性。
  • Secure:要求仅在 HTTPS 连接中发送。
  • Max-Age=3600:设置 Cookie 的存活时间(秒)。
  • Domain:指定该 Cookie 可用的域名。
  • .........

Cookie 的生命周期

会话 Cookie

  • 默认情况下,Cookie 是临时的,仅在浏览器会话期间有效(关闭浏览器即删除)。

持久化 Cookie

  • 使用 Max-AgeExpires 属性设置过期时间,使其在浏览器关闭后仍有效。

Cookie 的特性与限制

大小限制

  • 每个 Cookie 的大小通常限制在 4KB。

数量限制

  • 每个域名下的 Cookie 数量有限(通常为 20-50 个)。

同源限制

  • Cookie 只能在设置它的域及其子域中使用。

Cookie 的安全性问题

劫持风险

  • 未加密的 Cookie 在传输过程中容易被拦截(可通过 Secure 属性缓解)。

跨站脚本攻击 (XSS)

  • 恶意脚本可能窃取 Cookie(可通过 HttpOnly 属性避免)。

跨站请求伪造 (CSRF)

  • 恶意网站可能利用用户的 Cookie 发起伪造请求(可结合 Token 验证抵御)。

Cookie 与现代替代方案

随着隐私需求的提升和浏览器技术的发展,Cookie 在某些场景中正逐渐被其他技术取代:

LocalStorage/SessionStorage

  • 更适合存储客户端数据,不会自动发送到服务器。

Token-Based Authentication

  • 使用 JWT(JSON Web Token)替代 Cookie 来存储用户认证信息。

SameSite 属性

  • 限制跨站点请求时发送 Cookie,有效缓解 CSRF 攻击。

Session

  • Session 翻译过来就是 "会话",是一种在服务器端保存用户状态信息的机制,用于跟踪和管理用户的会话。它通过一种唯一标识符(Session ID)将用户的请求与服务器上的状态关联起来,通常与 Cookie 一起使用。
  • Session可以用来在用户与服务器之间维持状态信息,它解决了 HTTP 协议本身是无状态协议的问题。在 HTTP 的通信中,服务器无法直接知道两次请求是否来自同一个用户,而 Session 提供了这样一个机制,可以让服务器“记住”用户的状态。
  • 简单来说就是保存用户的一些信息,但是在服务器端存着,因为这些数据通常较为隐私。而 Cookie 通常保存在客户端。
  • Cookie 中的 Session-id 通常是会过期的,这由开发人员自己设定,根据不同的业务场景设置不同的过期时间。
  • 在某些视频网站、论坛网站等用户信息不敏感的场景下,例如:B站、抖音、贴吧、知乎等平台,其过期时间通常比较长。
  • 在某些银行App、网银等用户信息敏感的场景下,其过期时间通常非常短,短到你关闭了App就可能需要重新登录。

Session 的基本原理

在绝大多数网站都有 登录和用户认证功能,而这里便是 Session 的一个经典使用场景

1. 客户端发起请求

  • 用户首次访问服务器时,服务器会为该用户创建一个唯一的 Session 对象。

2. 生成 Session ID

  • 服务器生成一个唯一的 Session ID,用于标识用户会话,并将该 ID 返回给客户端。

3. 客户端存储 Session ID

  • Session ID 通常通过 Cookie 存储在客户端,或直接附加在 URL 参数中。

4. 服务器存储会话信息

  • 服务器将用户的状态信息(如登录状态、购物车内容等)存储在服务器的内存、数据库或文件系统中。

5. 后续请求

  • 每次客户端发送请求时,会附带 Session ID,服务器通过 Session ID 查找到对应的会话信息。

特点

  1. 存储在服务器端:用户的具体数据存储在服务器中,比 Cookie 更加安全。
  2. 支持大规模信息:Session 可以存储复杂、较大规模的数据结构,而 Cookie 的容量较小(约 4KB)。
  3. 短期存储:Session 通常与用户的会话周期一致(用户关闭浏览器或会话超时后失效)。

生命周期

  • 创建:当用户第一次访问应用时,服务器创建 Session。

  • 访问:每次用户请求时,服务器会根据 Session ID 获取用户的会话信息。

  • 销毁:Session 可以通过以下方式销毁:

        主动调用销毁方法(如用户注销)。

        达到超时时间(通常默认 30 分钟)。

        服务器重启或存储 Session 的媒介被清空。

优点

  1. 数据存储在服务器,安全性更高。
  2. 支持更复杂、更大规模的数据存储。
  3. 易于扩展和管理。

缺点

  1. 会增加服务器的存储压力,尤其是高并发场景下。
  2. 如果依赖 Cookie 保存 Session ID,可能受到 Cookie 限制。
  3. 在分布式系统中需要额外机制(如共享存储或会话粘性)保持一致性。

​​​​​​​​​​​​​​实际场景中的应用

  • 用户登录:用户登录成功后,服务器生成 Session,保存用户的登录状态及相关信息。
  • 电商购物车:用户未登录时的购物车信息可以保存在 Session 中,登录后与数据库中的购物车合并。
  • 跨页面的数据传递:当用户在多步操作(如填写表单)中需要保持上下文状态时,可以将数据存储在 Session 中。

这边还有一个小例子,可以更好的说明 Session 的重要性:

  • 去医院看病通常需要挂号,挂完号之后就给你办理个就诊卡,办理就诊卡通常需要你填写一些你的个人信息,而医生将这些个人信息存入到电脑;这些个人信息就好比 Session,而就诊卡就好比 Session-id。
  • 比方说你去看儿科,刷一下就诊卡,医生电脑上就显示出了这个患者的全部信息,随后医生作了一些检查,叫你去检验科,刚刚做过的检查存入到Session中。
  • 你来到了检验科,重复上诉操作,就叫你去影像科拍片
  • 你来到了影像科,重复上诉操作,就叫回到儿科
  • 你回到了儿科,再刷一遍就诊卡,就显示出了你刚刚就诊的一些情况,医生根据这些情况做进一步判断你的病情。

在这个过程中,都是通过就诊卡 Sesson-id 来确认你的个人信息的,就不需要额外更多的信息了,你的隐私信息都在医院那边"安全"存储着。


今天的内容到这就结束了,下节我们将讲解HTTP状态码HTTPS加密那些事儿~~

毕竟不知后事如何,且听下回分解 

❤️❤️❤️❤️❤️❤️❤️

相关文章:

HTTP/HTTPS ②-Cookie || Session || HTTP报头

这里是Themberfue 上篇文章介绍了HTTP报头的首行信息 本篇我们将更进一步讲解HTTP报头键值对的含义~~~ ❤️❤️❤️❤️ 报头Header ✨再上一篇的学习中&#xff0c;我们了解了HTTP的报头主要是通过键值对的结构存储和表达信息的&#xff1b;我们已经了解了首行的HTTP方法和UR…...

前端 动图方案

1、vue3lottie 解析使用Bodymovin导出为json格式的Adobe After Effects动画 vue3lottie的使用神器&#xff1a;vue3-lottie (electron也适用)-CSDN博客 2、MP4文件 //template部分 <video class"header-bg" src"../../assets/images/screen/layout/heade…...

C#语言的字符串处理

C#语言的字符串处理 引言 在现代编程中&#xff0c;字符串处理是一项重要的技能&#xff0c;几乎在所有编程语言中都有应用。C#语言作为一种强类型的、面向对象的编程语言&#xff0c;提供了丰富的字符串处理功能。这使得开发人员能够方便地进行文本操作&#xff0c;比如字符…...

【shell编程】报错信息:bash: bad file descriptor(包含6种解决方法)

大家好&#xff0c;我是摇光~ 在运行 Shell 脚本时&#xff0c;遇到 bash: bad file descriptor 错误通常意味着脚本尝试对一个无效或不可用的文件描述符&#xff08;file descriptor&#xff09;执行了读写操作。 以下是一些可能导致这个问题的原因、详细案例以及相应的解决…...

vscode 配置c/c++环境 中文乱码

D:\MIscrobingDownload\mingw64\binmingw配置到环境变量中 测试一下&#xff0c;按winr输入cmd打开终端 gcc -v g -v安装插件 一 二 run code 因为run code 插件配置实质上是用它提供的指令进行编译执行&#xff0c;因此无法直接使用断点调试功能&#xff0c;需要对配置进行…...

leetcode 面试经典 150 题:两数之和

链接两数之和题序号1题型数组解题方法1. 哈希表&#xff0c;2. 暴力法难度简单熟练度✅✅✅✅✅ 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输…...

【Unity报错】error Cs0103: The name ‘keyCode‘ does not exist in the current context

报错提示&#xff1a; 解决方法&#xff1a; KeyCode K大写...

家用万兆网络实践:紧凑型家用服务器静音化改造(二)

大家好&#xff0c;这篇文章我们继续分享家里网络设备的万兆升级和静音改造经验&#xff0c;希望对有类似需求的朋友有所帮助。 写在前面 在上一篇《家用网络升级实践&#xff1a;低成本实现局部万兆&#xff08;一&#xff09;》中&#xff0c;我们留下了一些待解决的问题。…...

“AI智能实训系统:让学习更高效、更轻松!

大家好&#xff0c;作为一名资深产品经理&#xff0c;今天我来跟大家聊聊一款备受瞩目的产品——AI智能实训系统。在这个人工智能技术飞速发展的时代&#xff0c;AI智能实训系统应运而生&#xff0c;为广大学习者提供了全新的学习体验。那么&#xff0c;这款产品究竟有哪些亮点…...

【Linux 之一 】Linux常用命令汇总

Linux常用命令 ./catcd 命令chmodclearcphistoryhtoplnmkdirmvpwdrmtailunamewcwhoami 我从2021年4月份开始才开始真正意义上接触Linux&#xff0c;最初学习时是一脸蒙圈&#xff0c;啥也不会&#xff0c;啥也不懂&#xff0c;做了很多乱七八糟&#xff0c;没有条理的笔记。不知…...

Git 从入门到精通

一、环境配置 下载地址&#xff1a;https://git-scm.com/downloads/ 二、用户配置 找到git bash git --version 查看当前版本 git config --global user.name szhipeng625 设置用户名 git config --global user.email szhipeng625gmail.com 设置邮箱 git config --global …...

【Uniapp-Vue3】创建自定义页面模板

大多数情况下我们都使用的是默认模板&#xff0c;但是默认模板是Vue2格式的&#xff0c;如果我们想要定义一个Vue3模板的页面就需要自定义。 一、我们先复制下面的模板代码&#xff08;可根据自身需要进行修改&#xff09;&#xff1a; <template><view class"…...

Ansible之批量管理服务器

文章目录 背景第一步、安装第二步、配置免密登录2.1 生成密钥2.2 分发公钥2.3 测试无密连接 背景 Ansible是Python强大的服务器批量管理 第一步、安装 首先要拉取epel数据源&#xff0c;执行以下命令 yum -y install epel-release安装完毕如下所示。 使用 yum 命令安装 an…...

android compose 串口通信

1.添加依赖 implementation("io.github.xmaihh:serialport:2.1.1") 2.添加SerialHelper派生类 class SerialPortHelper(portName:String,baudRate:Int): SerialHelper(portName,baudRate) {var receivedDataBuffer mutableListOf<Byte>()override fun onDa…...

ios脚本巨魔商店多巴胺越狱基本操作教程

准备工作 确认设备兼容性&#xff1a;A9-A11&#xff08;iPhone6s&#xff0d;X&#xff09;&#xff1a;iOS15.0-16.6.1&#xff1b;A12-A14&#xff08;iPhoneXR&#xff0d;12PM&#xff09;&#xff1a;iOS15.0-16.5.1&#xff1b;A15-A16&#xff08;iPhone13&#xff0d…...

NLP项目实战——基于Bert模型的多情感评论分类(附数据集和源码)

在当今数字化的时代&#xff0c;分析用户评论中的情感倾向对于了解产品、服务的口碑等方面有着重要意义。而基于强大的预训练语言模型如 Bert 来进行评论情感分析&#xff0c;能够取得较好的效果。 在本次项目中&#xff0c;我们将展示如何利用 Python 语言结合transformers库&…...

.NET framework、Core和Standard都是什么?

对于这些概念一直没有深入去理解&#xff0c;以至于经过.net这几年的发展进化&#xff0c;概念越来越多&#xff0c;越来越梳理不容易理解了。内心深处存在思想上的懒惰&#xff0c;以为自己专注于Unity开发就好&#xff0c;这些并不属于核心范畴&#xff0c;所以对这些概念总是…...

Mybatis原理简介

看到Mybatis的框架图&#xff0c;可以清晰的看到Mybatis的整体核心对象&#xff0c;我更喜欢用自己的图来表达Mybatis的整个的执行流程。如下图所示&#xff1a; 原理详解&#xff1a; MyBatis应用程序根据XML配置文件创建SqlSessionFactory&#xff0c;SqlSessionFactory在根…...

腾讯云AI代码助手-公司职位分析AI助手

作品简介 腾讯云AI代码助手是一款智能工具&#xff0c;专注于为公司提供职位分析服务。通过自然语言处理和机器学习技术&#xff0c;它能快速解析职位描述&#xff0c;提取关键信息&#xff0c;并提供数据驱动的洞察&#xff0c;帮助公司优化招聘流程和职位设计。 技术架构 …...

腾讯云AI代码助手编程挑战赛-解忧助手

作品简介 何以解忧,唯有杜康。而随着Ai的发展,解忧不再只有杜康还有Ai,使用的是腾讯云AI代码助手来生成的所有代码&#xff0c;使用方便&#xff0c;快捷&#xff0c;高效。 技术架构 采用了全后端分离的架构&#xff0c;前端使用Vue.js&#xff0c;腾讯云的AI服务处理自然语…...

Sentinel服务保护 + Seata分布式事务

服务保护 【雪崩问题】微服务调用链路中某个服务&#xff0c;引起整个链路中所有微服务都不可用。 【原因】&#xff1a; 微服务相互调用&#xff0c;服务提供者出现故障。服务调用这没有做好异常处理&#xff0c;导致自身故障。调用链中所有服务级联失败&#xff0c;导致整个…...

【Leetcode·中等·数组】59. 螺旋矩阵 II(spiral matrix ii)

题目描述 英文版描述 Given a positive integer n, generate an n x n matrix filled with elements from 1 to n(2) in spiral order. Example 1: Input: n 3 Output: [[1,2,3],[8,9,4],[7,6,5]] 提示&#xff1a; 1 < n < 20 英文版地址 https://leetcode.com…...

WebSocket 扩展生态:协议与框架

在前七篇文章中,我们深入探讨了 WebSocket 的基础原理、开发实践和实战案例。今天,让我们把视野扩展到 WebSocket 的生态系统,看看有哪些扩展协议和框架可以帮助我们更好地开发 WebSocket 应用。我曾在一个大型即时通讯项目中,通过合理使用这些工具,将开发效率提升了 50%。 扩…...

MySQL —— 在CentOS9下安装MySQL

MySQL —— 在CentOS9下安装MySQL 1.查看自己操作系统的版本2.找到对应的安装源3.上传我们在windows下&#xff0c;下载的文件&#xff0c;解压4.执行rpm命令&#xff0c;启用MySQL8仓库5.执行dnf install -y mysql-community-server6.设置开机自启动7.获得初始密码8.登录MySQL…...

用VS C#构建Windows服务【纯操作版,附带项目地址】

1.点击“创建新项目”,选择“Windows 服务(.NET Framework)” 2、给项目命名 3、双击“Service1.cs”,右键,选择“添加安装程序”,就会生成一个“ProjectInstaller.cs”文件 4、双击“ProjectInstaller.cs”文件,右键“serviceProcessInstaller1”,选择“属性…...

1.UGUI相关

1.这一种UIcanvas下的组件,会显示在3d物体之前 2.可以设置3d物体在UI界面之前。选中第二个模式。这时候会指定一个摄像机。一般情况下&#xff0c;不用主摄像机。需要新建一个专门给UI的摄像机。相当于设置距离摄像机的远近。两个layer 可以理解成 章节&#xff0c;关卡。相同…...

大语言模型训练的数据集从哪里来?

继续上篇文章的内容说说大语言模型预训练的数据集从哪里来以及为什么互联网上的数据已经被耗尽这个说法并不专业&#xff0c;再谈谈大语言模型预训练数据集的优化思路。 1. GPT2使用的数据集是WebText&#xff0c;该数据集大概40GB&#xff0c;由OpenAI创建&#xff0c;主要内…...

Android 来电白名单 只允许联系人呼入电话

客户需求只允许通讯录中联系人可以呼入电话。参考自带的黑名单实现 CallsManager.java类中的onSuccessfulIncomingCall方法有一些过滤器&#xff0c;可以仿照黑名单的方式添加自己的过滤器。 packages/services/Telecomm/src/com/android/server/telecom/CallsManager.java …...

StarRocks Awards 2024 年度贡献人物

在过去一年&#xff0c;StarRocks 在 Lakehouse 与 AI 等关键领域取得了显著进步&#xff0c;其卓越的产品功能极大地简化和提升了数据分析的效率&#xff0c;使得"One Data&#xff0c;All Analytics" 的愿景变得更加触手可及。 虽然实现这一目标的道路充满挑战且漫…...

plane开源的自托管项目

Plane 是一个开源的自托管项目规划解决方案&#xff0c;专注于问题管理、里程碑跟踪以及产品路线图的设计。作为一款开源软件&#xff0c;Plane 的代码托管在 GitHub 平台上&#xff0c;允许任何人查看和贡献代码。它为用户提供了便捷的项目创建与管理手段&#xff0c;并配备了…...

WebLogic安全基线

WebLogic安全基线 一、 用户权限1 、检查weblogic 的启动用户2 、用户权限整改3 、使用普通用户重启weblogic 二、账户共用1 、检查weblogic 控制台的账户2 、账户共用整改3 、测试登录weblogic 控制台新账户 三、 账户清理1 、检查weblogic 控制台的账户2 、帐户清理整改 四、…...

复杂园区网基本分支的构建

目录 1、各主机进行网络配置。2、交换机配置。3、配置路由交换&#xff0c;进行测试。4、配置路由器接口和静态路由&#xff0c;进行测试。5、最后测试任意两台主机通信情况 模拟环境链接 拓扑结构 说明&#xff1a; VLAN标签在上面的一定是GigabitEthernet接口的&#xff0c…...

设计模式-结构型-组合模式

1. 什么是组合模式&#xff1f; 组合模式&#xff08;Composite Pattern&#xff09; 是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端对单个对象和组合对象的使用具有一致性。换句话说&#xff0c;组合模式允…...

32单片机从入门到精通之用户界面——用户界面(十四)

不论你现在处于什么样的困境和挑战&#xff0c;不要放弃希望和努力。成功之路不会一帆风顺&#xff0c;但是只要你坚定信念&#xff0c;勇敢面对困难&#xff0c;努力奋斗&#xff0c;就一定能够战胜困难&#xff0c;迈向成功的道路。困难和挫折只是暂时的&#xff0c;而坚持和…...

Redis 优化秒杀(异步秒杀)

目录 为什么需要异步秒杀 异步优化的核心逻辑是什么&#xff1f; 阻塞队列的特点是什么&#xff1f; Lua脚本在这里的作用是什么&#xff1f; 异步调用创建订单的具体逻辑是什么&#xff1f; 为什么要用代理对象proxy调用createVoucherOrder方法&#xff1f; 对于代码的详细…...

NFS 组件容器化部署实战指南

文章目录 前言部署NFS服务器K8S部署NFS问题记录 前言 使用nfs-client-provisioner这个应用&#xff0c;利用nfs server给kubernets提供作为持久化后端&#xff0c;并且动态提供pv。所有节点需要安装nfs-utils组件&#xff0c;并且nfs服务器与kubernets worker节点都能网络连通…...

LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异

LCE&#xff08;Local Cascade Ensemble&#xff09;预测模型和LSTM&#xff08;Long Short-Term Memory&#xff09;模型在效果和特点上存在显著差异。以下是对两者的比较&#xff1a; 一、效果比较 LCE模型&#xff1a; 优势&#xff1a;LCE结合了随机森林和XGBoost的优势&a…...

rk3568平台Buildroot编译实践:内核rootfs定制 及常见编译问题

目录 编译前准备常规编译流程定制内核修改内核 参数并增量 保存修改rootfs并增量 保存修改rootfs包下载源rootfs软件包增删refBuildroot 是一个用于自动化构建嵌入式 Linux 系统的工具。它通过使用简单的配置文件和 Makefile,能够从源代码开始交叉编译出一个完整的、可以运行在…...

头歌python实验:网络安全应用实践-恶意流量检测

第1关:re 库的使用 本关任务:编写一个能正则匹配出 ip 地址的小程序。 re 的主要功能函数 常用的功能函数包括: compile、search、match、split、findall(finditer)、sub(subn)。 re.search 函数 re.search 扫描整个字符串并返回第一个成功的匹配。 函数语法: re…...

Linux内核编程(二十一)USB应用及驱动开发

一、基础知识 1. USB接口是什么&#xff1f; USB接口&#xff08;Universal Serial Bus&#xff09;是一种通用串行总线&#xff0c;广泛使用的接口标准&#xff0c;主要用于连接计算机与外围设备&#xff08;如键盘、鼠标、打印机、存储设备等&#xff09;之间的数据传输和电…...

机器学习实战——决策树:从原理到应用的深度解析

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​ ​​ 决策树&#xff08;Decision Tree&#xff09;是一种简单而直观的分类与回归模型&#xff0c;在机器学习中广泛应用。它的…...

计算机网络的定义与发展历程

计算机网络的定义 计算机网络是指通过通信设备和传输介质将分布在不同地点的计算机及其相关设备&#xff08;如打印机、服务器等&#xff09;连接起来&#xff0c;按照一定的通信协议进行数据交换与资源共享的系统。计算机网络的基本功能包括&#xff1a;信息的传输、资源共享…...

什么是Kafka?有什么主要用途?

大家好&#xff0c;我是锋哥。今天分享关于【什么是Kafka&#xff1f;有什么主要用途&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么是Kafka&#xff1f;有什么主要用途&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka 是一个分布式流…...

Ubuntu 24.04 LTS系统安装Docker踩的坑

一开始我跟着Docker给出的官网文档 Ubuntu | Docker Docs 流程走&#xff0c;倒腾了两个多小时&#xff0c;遇到了各种坑&#xff0c;最后放弃了。在我们使用脚本安装Docker命令前&#xff0c;我们先把已经安装的Docker全部卸载掉。 卸载Docker 1.删除docker及安装时自动安装…...

算法基础 - 冒泡排序

文章目录 1、原理演示2、示例一 冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。重复进行直到没有再需要交换的元素&#xff0c;这意味着数列已经排序完成。 冒泡排序法采用…...

为答疑机器人扩展问题分类与路由功能

1.意图识别 2. 构建路由模块 简单的意图识别 from chatbot import llmfrom config.load_key import load_key load_key()prompt 【角色背景】 你是一个问题分类路由器&#xff0c;需要识别问题的类型。 --- 【任务要求】 问题的类型目前有&#xff1a;公司内部文档查询、内…...

如何解决 /proc/sys/net/bridge/bridge-nf-call-iptables 文件缺失的问题

在使用 Linux 系统&#xff0c;尤其是在容器化环境&#xff08;如 Docker、Kubernetes&#xff09;中时&#xff0c;我们可能会遇到如下错误信息&#xff1a; [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptabl…...

道品科技智慧农业与云平台:未来农业的变革之路

随着全球人口的不断增长&#xff0c;农业面临着前所未有的挑战。如何在有限的土地和资源上提高农业生产效率&#xff0c;成为了各国政府和农业从业者亟待解决的问题。智慧农业的兴起&#xff0c;结合云平台的应用&#xff0c;为农业的可持续发展提供了新的解决方案。 ## 一、智…...

芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU

目录 芯片的概念结构 芯片的派系划分 通用芯片&#xff08;CPU&#xff0c;MPU&#xff0c;GPU&#xff0c;DSP&#xff09; 定制芯片&#xff08;FPGA&#xff0c;ASIC&#xff09; 芯片之上的集成&#xff08;MCU&#xff0c;SOC&#xff0c;ECU&#xff09; 软硬件的匹…...

2025年01月09日Github流行趋势

1. 项目名称&#xff1a;khoj 项目地址url&#xff1a;https://github.com/khoj-ai/khoj项目语言&#xff1a;Python历史star数&#xff1a;22750今日star数&#xff1a;1272项目维护者&#xff1a;debanjum, sabaimran, MythicalCow, aam-at, eltociear项目简介&#xff1a;你…...