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

HTTP 与 HTTPS 协议:从基础到安全强化

引言

互联网的消息是如何传递的?

是在路由器上不断进行跳转

IP的目的是在寻址

HTTP 协议:互联网的基石

定义

HTTP(英文:HyperText Transfer Protocol,缩写:HTTP),即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。它就像是互联网世界的 “快递规则”,规定了从万维网服务器传输超文本到本地浏览器的传送方式,详细定义了客户端和服务器之间数据交互的格式和规则。正是有了 HTTP 协议,我们才能顺畅地从服务器获取网页内容,让丰富多彩的网页呈现在我们眼前。

工作原理

  1. 连接建立:当我们在浏览器地址栏输入一个网址并按下回车键,客户端(浏览器)就会向服务器发送请求,尝试建立连接。这个过程就如同打电话时先拨号码等待对方接听。
  2. 发送请求:客户端通过 HTTP 协议发送请求消息,其中包含请求方法(常见的有 GET、POST 等)、请求头以及可能存在的请求体。请求方法告诉服务器要执行的操作,比如 GET 用于获取资源,POST 用于提交数据。请求头则携带了许多附加信息,例如User - Agent,它会告知服务器我们使用的浏览器类型和版本,就像在快递包裹上贴上寄件人的详细信息。而请求体,对于 POST 请求来说,会存放要提交给服务器的数据,如用户注册时填写的用户名、密码等表单数据。
  3. 服务器响应:服务器接收到请求后,就像快递员收到包裹后进行处理。它会根据请求内容进行一系列操作,然后生成响应消息。响应消息包括响应状态码,比如 200 表示请求成功,服务器成功返回了我们需要的资源;404 则表示未找到请求的资源,就好像快递员找不到收件地址一样。同时,响应消息还包含响应头和响应体。响应头会说明响应数据的类型(如Content - Typetext/html表示返回的是 HTML 网页内容)等信息,而响应体则是服务器返回给我们的实际数据,比如网页的 HTML 代码。
  4. 连接关闭:在数据传输完成后,连接通常会关闭。不过,为了提高效率,在某些情况下,连接也可以保持打开状态,以便客户端能够快速进行后续请求,而无需再次建立连接。

由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

以下是 HTTP 请求/响应的步骤:

  1. 客户端连接到Web服务器
    一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.luffycity.com。

  2. 发送HTTP请求
    通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

  3. 服务器接受请求并返回HTTP响应
    Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

  4. 释放连接TCP连接
    若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

  5. 客户端浏览器解析HTML内容
    客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

特点

  1. 无状态:HTTP 协议本身是无状态的,这意味着服务器不会记住不同请求之间客户端的状态或信息。每一个请求都是独立的个体,就好像快递员每次送快递都不记得上一次给这个地址送过什么。例如,当我们在一个电商网站浏览商品,从一个页面跳转到另一个页面时,服务器并不会自动记住我们之前浏览过哪些商品,除非我们通过其他方式(如 Cookie)来记录这些信息。
  2. 明文传输:数据在传输过程中以明文形式发送,这就好比我们在一个透明的管道中传递信件,任何人都可以轻易地看到信件的内容。这种特性使得数据容易被窃取、篡改或监听。网络中的不法分子可以通过一些手段截获我们传输的数据,获取我们的账号密码、信用卡信息等敏感内容,还可能恶意篡改数据,导致我们获取到错误的信息。
  3. 应用场景:由于其简单高效,HTTP 协议广泛应用于网页浏览、数据获取等场景。我们日常访问新闻网站、查看博客文章等,都是通过 HTTP 协议来实现的。它就像互联网世界的 “通用语言”,让我们能够便捷地获取各种信息。

HTTP请求方法:

GET

向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

HEAD

与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

POST

向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

PUT

向指定资源位置上传其最新内容。

DELETE

请求服务器删除Request-URI所标识的资源。

TRACE

回显服务器收到的请求,主要用于测试或诊断。

OPTIONS

这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用’*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

HTTP 协议:互联网的基石

定义

HTTP,即超文本传输协议,它就像是互联网世界的 “快递规则”,规定了从万维网服务器传输超文本到本地浏览器的传送方式,详细定义了客户端和服务器之间数据交互的格式和规则。正是有了 HTTP 协议,我们才能顺畅地从服务器获取网页内容,让丰富多彩的网页呈现在我们眼前。

工作原理

  1. 连接建立:当我们在浏览器地址栏输入一个网址并按下回车键,客户端(浏览器)就会向服务器发送请求,尝试建立连接。这个过程就如同打电话时先拨号码等待对方接听。
  2. 发送请求:客户端通过 HTTP 协议发送请求消息,其中包含请求方法(常见的有 GET、POST 等)、请求头以及可能存在的请求体。请求方法告诉服务器要执行的操作,比如 GET 用于获取资源,POST 用于提交数据。请求头则携带了许多附加信息,例如User - Agent,它会告知服务器我们使用的浏览器类型和版本,就像在快递包裹上贴上寄件人的详细信息。而请求体,对于 POST 请求来说,会存放要提交给服务器的数据,如用户注册时填写的用户名、密码等表单数据。
  3. 服务器响应:服务器接收到请求后,就像快递员收到包裹后进行处理。它会根据请求内容进行一系列操作,然后生成响应消息。响应消息包括响应状态码,比如 200 表示请求成功,服务器成功返回了我们需要的资源;404 则表示未找到请求的资源,就好像快递员找不到收件地址一样。同时,响应消息还包含响应头和响应体。响应头会说明响应数据的类型(如Content - Typetext/html表示返回的是 HTML 网页内容)等信息,而响应体则是服务器返回给我们的实际数据,比如网页的 HTML 代码。
  4. 连接关闭:在数据传输完成后,连接通常会关闭。不过,为了提高效率,在某些情况下,连接也可以保持打开状态,以便客户端能够快速进行后续请求,而无需再次建立连接。

特点

  1. 无状态:HTTP 协议本身是无状态的,这意味着服务器不会记住不同请求之间客户端的状态或信息。每一个请求都是独立的个体,就好像快递员每次送快递都不记得上一次给这个地址送过什么。例如,当我们在一个电商网站浏览商品,从一个页面跳转到另一个页面时,服务器并不会自动记住我们之前浏览过哪些商品,除非我们通过其他方式(如 Cookie)来记录这些信息。
  2. 明文传输:数据在传输过程中以明文形式发送,这就好比我们在一个透明的管道中传递信件,任何人都可以轻易地看到信件的内容。这种特性使得数据容易被窃取、篡改或监听。网络中的不法分子可以通过一些手段截获我们传输的数据,获取我们的账号密码、信用卡信息等敏感内容,还可能恶意篡改数据,导致我们获取到错误的信息。
  3. 应用场景:由于其简单高效,HTTP 协议广泛应用于网页浏览、数据获取等场景。我们日常访问新闻网站、查看博客文章等,都是通过 HTTP 协议来实现的。它就像互联网世界的 “通用语言”,让我们能够便捷地获取各种信息。

HTTP 与 HTTPS 的区别

  1. 安全性:HTTP 以明文传输数据,存在安全风险;而 HTTPS 通过加密技术,有效保护数据安全,安全性高。
  2. 端口:HTTP 默认使用 80 端口,而 HTTPS 默认使用 443 端口。端口就像是不同的通道,不同协议通过不同的端口进行数据传输。
  3. 证书:HTTP 不需要数字证书,而 HTTPS 需要服务器拥有数字证书,用于身份验证和加密通信。
  4. 性能:由于 HTTPS 需要进行加密和解密操作,相比 HTTP 会消耗更多的计算资源和时间,性能相对略低。但随着硬件和网络技术的发展,这种性能差异在大多数情况下并不明显。
  5. 兼容性:HTTP 兼容性较好,在各种设备和网络环境中都能广泛使用;HTTPS 在某些旧设备或环境中可能存在兼容性问题,但总体上兼容性也在不断提高。
  6. 成本:HTTP 成本较低,而 HTTPS 需要购买数字证书,增加了一定的成本。

与 HTTP/HTTPS 相关的其他重要概念

GET 和 POST 请求

  1. GET 请求
    • 用途:主要用于从服务器获取数据,例如我们在浏览器中输入网址访问网页,就是通过 GET 请求获取网页内容;在搜索引擎中输入关键词进行搜索,也是使用 GET 请求将关键词发送给服务器,获取搜索结果。
    • 特点:请求参数会附加在 URL 后面,以问号分隔,多个参数之间用 & 连接,如https://example.com?param1=value1&param2=value2。由于受限于 URL 的长度(不同浏览器对 URL 长度限制不同,一般在 2KB 到 8KB 左右),GET 请求的数据长度有限制。并且,因为参数暴露在 URL 中,安全性相对较低,容易被缓存、记录或窃取。比如,我们在浏览一些网站时,可能会发现浏览器地址栏中显示了我们搜索的关键词等参数,如果这些信息被不法分子获取,可能会导致隐私泄露。
  2. POST 请求
    • 用途:常用于向服务器提交数据,像用户注册、登录、在电商网站中提交订单等操作,都需要使用 POST 请求将用户输入的数据发送给服务器。
    • 特点:请求参数放在请求体中,不会显示在 URL 中,所以对数据长度没有像 GET 那样严格的限制。安全性相对较高,因为参数不直接暴露在 URL 中。但需要注意的是,如果传输过程没有加密(如在 HTTP 协议下),数据仍可能被窃取。

请求头、请求正文、响应头、响应正文

  1. 请求头:客户端向服务器发送请求时,请求头包含了许多附加信息。例如User - Agent用于标识客户端的类型和版本,不同的浏览器(如 Chrome、Firefox)或移动应用在发送请求时,User - Agent的值会有所不同,服务器可以根据这个信息来优化响应内容,以适配不同的客户端。Accept则告知服务器客户端能接受的响应数据类型,比如客户端可以接受text/html格式的网页内容,也可以接受application/json格式的数据。Cookie信息也包含在请求头中,它可以让服务器识别用户身份,记录用户的一些状态信息。
  2. 请求正文:对于 POST 等请求,请求正文用于存放要提交给服务器的数据。比如在用户注册时,用户填写的用户名、密码等表单数据会被放在请求正文中发送给服务器。而 GET 请求一般没有请求正文,即使有也不会被服务器处理。
  3. 响应头:服务器在响应客户端请求时,响应头包含了许多有用的信息。Content - Type说明了响应数据的类型,如text/html表示返回的是 HTML 网页内容,客户端可以根据这个信息正确地解析和显示数据。Set - Cookie用于在客户端设置 Cookie,服务器可以通过这个字段向客户端发送新的 Cookie 信息或更新已有的 Cookie。Content - Length则表示响应数据的长度,客户端可以根据这个信息来判断是否完整接收了数据。
  4. 响应正文:响应正文是服务器返回给客户端的实际数据内容。如果我们访问一个网页,响应正文可能就是网页的 HTML 代码,浏览器会根据这些代码来渲染出我们看到的网页页面。如果是一个数据接口请求,响应正文可能是 JSON 格式的数据,客户端可以根据这些数据进行相应的业务逻辑处理。

Cookie

  1. 定义:Cookie 是由服务器发送到用户浏览器并保存在本地的一小块数据。它就像是服务器给用户发放的一张 “身份卡片”,可以在用户下次访问同一服务器时被发送回服务器,用于识别用户身份、记录用户偏好等。例如,当我们在一个网站上登录后,服务器会通过设置 Cookie 来记住我们的登录状态,这样我们在后续访问该网站的其他页面时,就不需要再次登录。
  2. 获取 Cookie 的方法
    • 客户端获取:在浏览器中,我们可以通过开发者工具的 “Application” 或 “Storage” 选项卡查看当前网站的 Cookie。在 JavaScript 中,可使用document.cookie来获取当前页面相关的 Cookie 字符串,不过这个字符串是经过编码的,需要进一步解析才能获取到具体的 Cookie 信息。
    • 服务器获取:不同的服务器端语言有不同的方法来获取客户端发送过来的 Cookie。例如,在 Python 的 Flask 框架中,可以通过request.cookies来获取;在 Java 的 Servlet 中,可以通过HttpServletRequest对象的getCookies()方法来获取。一般来说,都是从请求对象中获取 Cookie 信息。
  3. Cookie 的优缺点
    • 优点:Cookie 可以用于实现用户登录状态保持,让用户在访问网站的不同页面时无需重复登录,提升用户体验。同时,它还可以记录用户的浏览偏好,比如用户设置的字体大小、页面布局等,下次用户访问时可以直接应用这些设置。此外,将一些用户相关的信息存储在客户端的 Cookie 中,可以减轻服务器的负担。
    • 缺点:Cookie 的存储容量有限,一般单个 Cookie 大小限制在 4KB 左右。并且,由于 Cookie 存储在客户端,存在安全性问题,容易被窃取或篡改。如果没有加密,不法分子获取到 Cookie 后,可能会冒充用户身份进行操作,导致用户信息泄露和安全风险。另外,Cookie 会随着每次请求发送到服务器,可能会增加不必要的网络流量,尤其是当 Cookie 数量较多或内容较大时。

Session 

定义

Session 通常指会话,是在计算机网络通信中,特别是在 Web 应用程序中,用于跟踪用户与服务器之间交互状态的一种机制。它允许服务器在多个请求之间识别同一个用户,并存储与该用户相关的特定数据和状态信息,弥补了 HTTP 协议无状态的不足。

工作原理

  • 创建 Session:当用户首次访问 Web 应用程序时,服务器会为该用户创建一个唯一的 Session 对象,并为其分配一个唯一的标识符(Session ID)。这个 Session ID 通常会通过响应头中的Set-Cookie字段发送给客户端,客户端会将其存储在 Cookie 中,或者也可以通过 URL 重写等方式在后续请求中携带。
  • Session 数据存储:服务器可以在 Session 对象中存储各种与用户相关的数据,例如用户登录信息、购物车内容、浏览历史等。这些数据会在服务器端的内存或其他存储介质中保存,直到 Session 过期或被主动销毁。
  • Session 跟踪:在用户与 Web 应用程序的交互过程中,客户端每次向服务器发送请求时,都会在请求头中包含 Session ID。服务器根据这个 Session ID 来查找对应的 Session 对象,从而获取该用户的相关数据和状态信息,实现对用户会话的跟踪。
  • Session 销毁:Session 有一定的生命周期,当用户长时间不活动(超过设置的超时时间),或者用户主动注销登录,又或者服务器出现故障重启等情况时,服务器会销毁该用户的 Session 对象,释放相关资源。

实现方式

  • 基于 Cookie:这是最常见的方式。服务器通过Set-Cookie响应头将 Session ID 发送给客户端,客户端将其存储在 Cookie 中。后续请求时,浏览器会自动在请求头中带上这个 Cookie,服务器据此识别用户的 Session。
  • URL 重写:将 Session ID 附加在 URL 后面,例如http://example.com/page?sessionId=12345。当用户点击链接或提交表单时,Session ID 会随着请求发送到服务器,服务器通过解析 URL 获取 Session ID 来识别用户。
  • 隐藏表单字段:在 HTML 表单中添加一个隐藏字段,用于存储 Session ID。当表单提交时,Session ID 会作为表单数据一起发送到服务器。

与 Cookie 的区别

  • 存储位置:Cookie 数据存储在客户端浏览器中,而 Session 数据存储在服务器端。
  • 安全性:由于 Session 数据在服务器端,相对来说比 Cookie 更安全,不容易被客户端篡改。而 Cookie 存储在客户端,存在被恶意篡改或窃取的风险。
  • 存储容量:Cookie 通常有大小限制,一般单个 Cookie 不超过 4KB,而 Session 存储在服务器端,理论上可以存储更多的数据,具体限制取决于服务器的配置和存储方式。
  • 作用:Cookie 主要用于存储一些简单的用户偏好、登录状态等信息,并且可以在不同域名之间根据设置进行共享。Session 主要用于在服务器端跟踪用户的会话状态,存储与用户相关的复杂数据和状态信息,一般只在同一个 Web 应用程序内有效。

对称加密和非对称加密

  1. 对称加密原理
    • 定义:对称加密是指加密和解密使用相同的密钥。就好像两个人使用同一把钥匙来锁和开一个箱子。
    • 过程:发送方使用密钥对明文进行加密,将明文转换为密文,然后将密文发送给接收方。接收方收到密文后,使用相同的密钥对密文进行解密,还原出明文。常见的对称加密算法有 DES、AES 等。对称加密的优点是加密和解密速度快,效率高,适用于大量数据的加密。但它的缺点也很明显,就是密钥管理困难。因为通信双方需要安全地共享密钥,如果密钥在传输过程中泄露,那么数据就不安全了。例如,在一个团队中,如果大家都使用对称加密进行通信,那么如何安全地将密钥分发给每一个成员就是一个难题。
  2. 非对称加密原理
    • 定义:非对称加密使用一对密钥,即公钥和私钥。公钥可以公开分发,就像我们可以将自己的邮箱地址公开给任何人一样;而私钥由用户自己妥善保存,就像我们要保管好自己的家门钥匙。
    • 过程:发送方使用接收方的公钥对明文进行加密,生成密文,然后将密文发送给接收方。接收方使用自己的私钥对密文进行解密,得到明文。常见的非对称加密算法有 RSA、ECC 等。非对称加密的优势在于密钥管理相对简单,因为公钥可以公开分发,不需要像对称加密那样严格保密。但它的加密和解密速度相对较慢,一般用于对少量关键数据的加密,如数字证书、密钥交换等场景。例如,在 HTTPS 协议中,服务器会将自己的公钥放在数字证书中发送给客户端,客户端使用公钥对数据进行加密后发送给服务器,服务器再用私钥进行解密。

HTTP 协议不安全原因及 HTTPS 中的安全套接字

  1. HTTP 协议不安全原因:由于 HTTP 协议的数据是以明文传输的,这就好比在一个没有任何防护的道路上运输贵重物品,网络中的攻击者可以轻易地截取、监听传输的内容。他们可以获取用户的账号密码、信用卡信息等敏感数据,给用户带来巨大的损失。同时,攻击者还可以篡改数据内容,比如将一个商品的价格从 100 元篡改为 1 元,导致数据的完整性和真实性无法保证,影响正常的业务流程。
  2. HTTPS 协议中的安全套接字:HTTPS 是在 HTTP 基础上通过 SSL/TLS 协议来实现加密传输和身份认证等功能。SSL/TLS 协议中的安全套接字层就像是一个安全的通道,负责在客户端和服务器之间建立安全的连接,进行数据的加密和解密。它使用了对称加密和非对称加密等技术,在保证数据传输安全的同时,也提高了通信的效率。例如,在 SSL/TLS 握手过程中,会使用非对称加密来交换密钥,然后在后续的数据传输中使用对称加密来提高加密和解密的速度,确保数据能够安全、高效地传输。

相关文章:

HTTP 与 HTTPS 协议:从基础到安全强化

引言 互联网的消息是如何传递的? 是在路由器上不断进行跳转 IP的目的是在寻址 HTTP 协议:互联网的基石 定义 HTTP(英文:HyperText Transfer Protocol,缩写:HTTP),即超文本传输协…...

Scrapy爬虫框架介绍

目录 什么是Scrapy Scrapy核心组件 Scrapy扩展组件 组件交互流程 安装Scrapy Scrapy项目目录结构说明 创建Scrapy项目 创建爬虫 运行爬虫 配置请求头 全局配置请求头 指定爬虫配置请求头 配置管道pipeline 全局配置pipeline 方式一:指定爬虫配置pipe…...

Stable Diffusion模型高清算法模型类详解

Stable Diffusion模型高清算法模型类详细对比表 模型名称核心原理适用场景参数建议显存消耗细节增强度优缺点4x-UltraSharp残差密集块(RDB)结构优化纹理生成真实人像/建筑摄影重绘幅度0.3-0.4,分块尺寸768px★★★★★☆皮肤纹理细腻,但高对比场景易出现…...

软考网络安全口诀

首先,我们来看第一个口诀 “防御为先,安全无小事”。这个口诀强调了网络安全中的防御意识。在软考备考过程中,我们需要深刻理解网络安全不仅仅是技术层面的问题,更是一种全面的防御思维。从网络架构设计到日常运维管理&#xff0…...

Baklib内容中台赋能企业智管

内容中台构建全场景智管 现代企业数字化运营中,全域内容管理能力已成为核心竞争力。通过智能知识引擎驱动的内容中台架构,企业能够实现跨部门、多形态数据的统一归集与动态调度。以某制造企业为例,其利用中台系统将分散在CRM、ERP及内部文档…...

vscode+vue前端开发环境配置

目录 一、安装Vue二、使用vue新建项目 一、安装Vue 在node.js安装好之后, npm config set registry https://registry.npmmirror.com# 安装vue相关工具,webpack用来项目构建、打包、资源整合等。 npm install webpack -g# 安装vue-cli脚手架 npm insta…...

Python项目-基于深度学习的校园人脸识别考勤系统

引言 随着人工智能技术的快速发展,深度学习在计算机视觉领域的应用日益广泛。人脸识别作为其中的一个重要分支,已经在安防、金融、教育等多个领域展现出巨大的应用价值。本文将详细介绍如何使用Python和深度学习技术构建一个校园人脸识别考勤系统&#…...

浅谈C++函数特性

C的函数特性 前言 在C中,函数加入了许多特性,例如:a、函数缺省参数 b、函数重载 c、内联函数 等等……,这里我会和大家详细去探讨这些特性。以及探讨这些特性的一些细节,同时在内联部分,我们还会把C语言的…...

Python----数据分析(Matplotlib三:绘图二:箱图,散点图,饼图,热力图,3D图)

一、箱图 箱图(Box Plot),又称为箱形图、箱线图、盒式图、盒状图或盒须图,是一种用于展示数据分布情况的统计图表 箱图通过显示数据的中位数、上下四分位数(Q1和Q3)、异常值和数据的分布范围,提…...

高性能PHP框架webman爬虫引擎插件,如何爬取数据

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

【2025年后端开发终极指南:云原生、AI融合与性能优化实战】

一、2025年后端开发的五大核心趋势 1. 云原生架构的全面普及 云原生(Cloud Native)已经成为企业级应用的核心底座。通过容器化技术(DockerKubernetes)和微服务架构,开发者能够实现应用的快速部署、弹性伸缩和故障自愈…...

健康养生:开启活力人生的钥匙

在这个瞬息万变的时代,人们愈发珍视健康。健康养生,宛如一把神奇的钥匙,为我们打开通往活力人生的大门,全方位呵护身心,提升生活品质。 从饮食层面看,均衡膳食是核心。每餐力求包含碳水化合物、蛋白质、脂…...

vue2+ele-ui实践

前言:真理先于实践,实践发现真理,再实践检验真理 环境:vue2 & element-ui 正片: Select 选择器 简称 下拉框 下拉框完整的使用循环 下拉框 → 点击下拉框 → 展示数据 → 选择数据 → 下拉框显示数据 核心具有…...

三维重建(十五)——多尺度(coarse-to-fine)

文章目录 一、多尺度与图像金字塔:从全局结构到局部细节二、特征提取与匹配2.1 从数据采集的角度2.2 从数据增强的角度2.3 从特征提取的方式三、以多尺度的方式使用特征3.1 特征提取与匹配3.1.1 多尺度特征检测3.1.2 金字塔匹配3.2 深度估计与立体匹配3.2.1 多尺度立体匹配3.2…...

SparkStreaming之04:调优

SparkStreaming调优 一 、要点 4.1 SparkStreaming运行原理 深入理解 4.2 调优策略 4.2.1 调整BlockReceiver的数量 案例演示: object MultiReceiverNetworkWordCount {def main(args: Array[String]) {val sparkConf new SparkConf().setAppName("Networ…...

勿以危小而为之勿以避率而不为

《故事汇之:所见/所闻/所历/所想》:《公园散步与小雨遇记》(二) 就差一点到山顶了,路上碰到一阿姨,她说等会儿要下大雨了,让我不要往上走了,我犹豫了一会儿,还是听劝地返…...

JavaWeb后端基础(4)

这一篇就开始是做一个项目了,在项目里学习,我主要记录在学习过程中遇到的问题,以及一些知识点 Restful风格 一种软件架构风格 在REST风格的URL中,通过四种请求方式,来操作数据的增删改查。 GET : 查询 …...

SpringBoot调用DeepSeek

引入依赖 <dependency><groupId>io.github.pig-mesh.ai</groupId><artifactId>deepseek-spring-boot-starter</artifactId><version>1.4.5</version> </dependency>配置 deepseek:api-key: sk-******base-url: https://api.…...

记录一下本地部署Dify的坑

1. 截止2025-3-4为止&#xff0c;请注意&#xff0c;不要直接拉Dify的1.0.0版本。请先试用0.15.3版本。1.0.0有一个bug需要解决。[PANIC]failed to init dify plugin db: failed to connect to hostdb userpostgres databasepostgres Issue #14707 langgenius/dify GitHub …...

LC109. 有序链表转换平衡二叉搜索树

LC109. 有序链表转换平衡二叉搜索树 题目要求(一)快慢指针1. 理解问题2. 解决思路3. 具体步骤4. 代码实现5. 复杂度分析6. 示例解释7. 总结 LC109. 有序链表转换平衡二叉搜索树 题目要求 (一)快慢指针 要将一个按升序排列的单链表转换为平衡的二叉搜索树&#xff08;BST&…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...