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

【一文读懂】HTTP与Websocket协议

HTTP协议

概述

HTTP (Hypertext Transfer Protocol),即超文本传输协议,是一种用于在客户端和服务器之间传输超文本(例如网页、图片、音频、视频等)的通信协议。它是万维网(WWW)的基础,负责在浏览器(客户端)和 web 服务器之间交换信息。HTTP 是一个 应用层 协议,位于 OSI 模型的第七层,通常通过 TCP(传输控制协议)进行通信。

HTTP 是无状态的、面向请求/响应的协议,意思是每一次请求都是独立的,服务器不会保存客户端的状态。每次客户端发起请求,服务器都必须处理并响应,即使是同一个客户端的连续请求,也被视为独立的。

HTTP 请求/响应模型

HTTP 协议基于请求/响应模型,通信流程包括两部分:客户端发送请求,服务器返回响应。

1. HTTP 请求报文(Request Message)

一个 HTTP 请求报文主要由以下几个部分组成:

  • 请求行(Request Line)

    • 请求方法(Request Method)

      :定义了客户端希望进行的操作,常见的 HTTP 请求方法包括:

      • GET:请求指定的资源,通常用于获取网页或文件。
      • POST:将数据提交到服务器,常用于表单提交。
      • PUT:上传数据,通常用于更新服务器上的资源。
      • DELETE:删除指定的资源。
      • HEAD:与 GET 方法类似,但只返回响应头,不返回实际内容。
      • PATCH:用于对已有资源进行部分修改。
    • 请求 URL(Request URL):指定资源的位置,例如 https://www.example.com/index.html

    • 协议版本(HTTP Version):指定使用的 HTTP 协议版本,通常是 HTTP/1.1HTTP/2

    示例

    GET /index.html HTTP/1.1
    
  • 请求头部(Request Headers) 请求头部包含了请求的元信息,描述客户端环境、请求内容类型、认证信息等。例如:

    • User-Agent:指定发起请求的客户端软件信息。
    • Accept:指定客户端能够处理的内容类型(如 text/htmlapplication/json 等)。
    • Host:指定请求目标的主机名(用于虚拟主机的支持)。
    • Cookie:包含发送给服务器的 Cookie 数据。
    • Authorization:包含授权信息,用于身份验证。

    示例

    User-Agent: Mozilla/5.0
    Accept: text/html,application/xhtml+xml
    
  • 请求体(Request Body) 请求体通常在 POSTPUT 等方法中使用,用于传送数据到服务器(例如表单提交的数据、JSON 数据等)。GET 请求一般没有请求体。

    示例(POST 请求提交表单数据):

    name=John&age=30
    
2. HTTP 响应报文(Response Message)

HTTP 响应报文由服务器发送回客户端,通常包含服务器处理请求后的结果。响应报文的组成部分如下:

  • 响应行(Response Line)

    • 协议版本(HTTP Version):指定响应所使用的 HTTP 协议版本。
    • 状态码(Status Code):用于表示请求的处理结果,如成功、失败或错误。
    • 状态短语(Status Phrase):对状态码的简短描述,例如 OKNot Found 等。

    示例

    HTTP/1.1 200 OK
    
  • 响应头部(Response Headers) 响应头部包含关于响应的元信息,描述服务器的状态、返回的数据类型等。例如:

    • Content-Type:响应体的内容类型(如 text/htmlapplication/json 等)。
    • Content-Length:响应体的长度(以字节为单位)。
    • Date:响应的时间戳。
    • Set-Cookie:服务器返回给客户端的 Cookie。

    示例

    Content-Type: text/html; charset=UTF-8
    Content-Length: 1234
    Set-Cookie: sessionid=abcd1234
    
  • 响应体(Response Body) 响应体包含了实际的数据内容,这是服务器返回给客户端的主体部分。对于 GET 请求,响应体通常是请求的网页内容、图片、视频等资源。对于 API 请求,响应体通常是 JSON 或 XML 格式的数据。

    示例(返回 HTML 内容):

    <html><head><title>Welcome</title></head><body><h1>Hello, World!</h1></body>
    </html>
    

3. HTTP 状态码

状态码是服务器返回给客户端的一组三位数字,表示请求的处理状态。常见的状态码包括:

  • 1xx (信息性状态码):请求已接收,继续处理。
    • 100 Continue:表示服务器已收到请求头部,客户端可以继续发送请求体。
    • 101 Switching Protocols:服务器正在切换协议。
  • 2xx (成功状态码):请求已成功处理。
    • 200 OK:请求成功,服务器返回响应数据。
    • 201 Created:请求成功,资源已创建。
    • 204 No Content:请求成功,但没有返回内容。
  • 3xx (重定向状态码):需要客户端进一步操作来完成请求。
    • 301 Moved Permanently:资源已被永久移动到新位置。
    • 302 Found:资源临时移动到新位置。
    • 304 Not Modified:请求的资源未修改,可以使用缓存。
  • 4xx (客户端错误状态码):请求有语法错误或无法完成。
    • 400 Bad Request:请求语法错误,服务器无法理解。
    • 401 Unauthorized:需要用户认证。
    • 403 Forbidden:服务器拒绝访问该资源。
    • 404 Not Found:请求的资源不存在。
  • 5xx (服务器错误状态码):服务器处理请求时发生错误。
    • 500 Internal Server Error:服务器内部错误,无法处理请求。
    • 502 Bad Gateway:网关或代理服务器收到无效响应。
    • 503 Service Unavailable:服务器暂时不可用。

4. HTTP 协议的版本

  • HTTP/1.0:最初的 HTTP 协议版本,支持基本的请求和响应机制,但性能较低,缺乏多路复用等特性。
  • HTTP/1.1:相比 HTTP/1.0,HTTP/1.1 增强了持久连接、管道化、分块传输等特性,减少了建立连接的次数。
  • HTTP/2:引入了二进制协议、流的多路复用、头部压缩等技术,大大提高了性能,尤其是减少了页面加载时间。
  • HTTP/3:基于 QUIC(Quick UDP Internet Connections)协议,旨在进一步提高性能,尤其在高延迟或丢包的网络环境中表现更佳。

5. HTTP 与 HTTPS

  • HTTP:在客户端和服务器之间传输数据时,数据是明文的,容易受到中间人攻击。
  • HTTPS:即 HTTP over SSL/TLS,数据在传输过程中会进行加密,确保通信的机密性和完整性。现代 web 应用普遍推荐使用 HTTPS 来保证安全性。

WebSocket

概述

WebSocket 是一种计算机通信协议,属于 应用层协议,它为客户端和服务器之间提供了一个 全双工、双向通信 的通道。WebSocket 通过建立在 TCP 之上的连接,允许客户端和服务器进行实时、低延迟的消息交换。WebSocket 由 IETF(Internet Engineering Task Force)发布,是一种适用于需要持续交换数据的应用的技术。

WebSocket 协议的引入,主要是为了解决传统的 HTTP 协议在实时通信中的不足,尤其是在高频率消息交互、双向通信等场景中。

特点

  1. 全双工通信(Full-Duplex)
    • WebSocket 是一种 全双工(Full-Duplex)协议,意味着客户端和服务器可以同时发送和接收数据。这与传统的 HTTP 协议(单向请求-响应模式)不同。
  2. 实时性(Low Latency)
    • 一旦 WebSocket 连接建立,客户端和服务器之间就可以在没有建立新的连接的情况下持续发送和接收数据。避免了频繁的连接与断开,极大减少了延迟。
  3. 持久连接
    • WebSocket 连接在创建后保持持久性,直到显式关闭。不同于 HTTP 请求-响应模型,WebSocket 不需要每次通信都重新建立连接,这使得通信更加高效。
  4. 低开销
    • WebSocket 数据帧结构非常简洁,不像 HTTP 那样包含冗余的头信息,因此每次传输的开销非常小,适合需要频繁数据交换的应用场景。
  5. 双向通信
    • WebSocket 支持 双向通信,这意味着服务器可以主动向客户端推送数据,而不必等到客户端发起请求。这对于需要实时推送数据的应用(如在线聊天、实时股票价格、游戏等)至关重要。

工作原理

  1. 连接建立

    • WebSocket 连接是通过HTTP 握手(HTTP Handshake)来建立的,但一旦建立连接,HTTP 连接就会升级为 WebSocket 连接。这一过程包括:
      • 客户端发起一个 HTTP 请求,带有 Upgrade 头字段,向服务器请求从 HTTP 协议升级到 WebSocket 协议。
      • 服务器响应请求并发送一个 101 Switching Protocols 的状态码,表示协议升级成功。

    例如,客户端请求:

    GET /chat HTTP/1.1
    Host: example.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
    Sec-WebSocket-Version: 13
    

    服务器响应:

    HTTP/1.1 101 Switching Protocols
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Accept: x3JJHMbDL1EzLkh9WcR+Kk0M9L+Y=
    
  2. 数据传输

    • 一旦建立 WebSocket 连接,客户端和服务器可以通过 WebSocket 数据帧 交换数据。这些数据帧的传输是非常高效的,并且可以支持不同类型的消息:文本、二进制数据等。
  3. 连接关闭

    • 当通信结束时,任一方(客户端或服务器)可以发起连接关闭请求,关闭时发送一个 Close 数据帧,另一方确认后连接关闭。

数据帧格式

WebSocket 数据帧的结构相对简单,通常包括以下部分:

  1. FIN、RSV、OpCode:标识数据帧的类型和一些控制信息。
  2. 掩码标志(Mask):指示数据是否经过掩码处理(客户端发送的数据必须加掩码,服务器数据通常不需要掩码)。
  3. 负载长度(Payload Length):表示数据负载的长度。
  4. 掩码密钥(Mask Key):如果数据有掩码,则包括掩码密钥。
  5. 负载数据(Payload Data):实际的传输数据(如文本、二进制数据)。

使用场景

  1. 实时聊天应用:WebSocket 使得服务器能够即时向客户端推送消息,特别适合即时聊天应用。
  2. 在线游戏:实时互动和低延迟是 WebSocket 在在线游戏中的应用亮点。
  3. 股票、金融数据传输:WebSocket 适用于需要实时更新的数据流传输,如金融市场数据、股票价格更新等。
  4. 物联网(IoT)设备通信:WebSocket 可以用于物联网设备与云端服务器之间的实时通信,实时传输传感器数据或设备状态。
  5. 协作应用:在协作编辑应用中(例如 Google Docs),WebSocket 可以帮助多用户实时同步内容。

总结

HTTP 协议

  • 是一种 无状态单向 的协议,客户端通过请求与服务器进行交互,适用于请求-响应模型的通信,如浏览网页、下载文件等。
  • 每次请求都需要重新建立连接,并且包含一定的头部信息,造成了较高的延迟和开销。
  • 不适合需要 实时数据交换 的应用。

WebSocket 协议

  • 提供了 持久连接,支持 双向全双工 的通信,适用于实时性要求高、需要低延迟和高频繁数据交换的应用,如实时聊天、在线游戏、实时数据流(如股票行情、直播视频等)。
  • 一旦连接建立,客户端和服务器可以随时发送和接收数据,避免了频繁建立连接的开销,提高了通信效率。
特性HTTP 协议WebSocket 协议
协议类型无状态协议,基于请求-响应模型双向全双工协议,基于持久连接
连接模式每次通信都需要建立新的连接(无连接)一旦建立连接,通信会保持持续开放
通信方式客户端发起请求,服务器响应客户端和服务器都可以随时发送和接收数据
数据传输基于请求-响应,每次请求/响应时都需要传输头信息传输数据时不需要额外的头部信息,开销更小
传输效率相对较低,频繁建立和断开连接带来高开销高效,数据传输时无额外的连接建立和断开开销
连接生命周期每次请求响应后连接关闭,短暂连接保持打开状态,直到主动关闭
实时性请求和响应之间的延迟较高实时双向通信,适合实时应用(如在线聊天、游戏)
数据格式主要为文本/HTML,二进制数据需要转换支持文本(如 JSON)和二进制(如二进制流)
状态管理无状态,每次请求相互独立有状态,连接状态保持直到主动关闭
协议使用场景网页加载、文件传输、浏览器与服务器的通信实时通信应用,如即时消息、在线游戏、实时数据流
安全性可以通过 HTTPS 进行加密传输可以通过 WSS(WebSocket Secure)加密传输
头部信息每次请求都会有冗长的头部信息只有握手阶段需要头部信息,之后没有头部开销
协议设计基于请求-响应的客户端-服务器模型基于持久连接的双向通信模型
连接模式无连接:每个请求/响应都需要建立连接持久连接:连接建立后可以进行持续的双向通信

相关文章:

【一文读懂】HTTP与Websocket协议

HTTP协议 概述 HTTP (Hypertext Transfer Protocol)&#xff0c;即超文本传输协议&#xff0c;是一种用于在客户端和服务器之间传输超文本&#xff08;例如网页、图片、音频、视频等&#xff09;的通信协议。它是万维网&#xff08;WWW&#xff09;的基础&#xff0c;负责在浏…...

SpringBoot+微信小程序+数据可视化的宠物到家喂宠服务(程序+论文+讲解+安装+调试+售后等)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统介绍 在经济高速发展、物质生活极大丰富的当下&#xff0c;人们的精神需求愈发凸显&#xff0…...

Windows逆向工程入门之堆栈结构与信息获取

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 1. 堆栈结构基础 堆栈的主要操作&#xff1a; 2. 代码功能解析 2.1 加载 ntdll.dll 2.2 获取 NtQueryInformationThread 函数指针 2.3 调用 NtQueryInformationThread 获取线程信息…...

springboot项目如何部署到tomcat中

1、使用springboot内部嵌入的tomcat 可以改一些tomcat的参数 2、可以把springboot项目打包为war包&#xff0c;然后部署到tomcat中去 Spring Boot 默认使用嵌入式 Tomcat 作为其 Web 容器&#xff0c;这使得 Spring Boot 应用可以作为一个独立的 JAR 文件运行。这种嵌入式服务…...

C语言之easyX

目录 概要 easyX整体架构 图形绘制 画布宽高 圆形 图片的贴图 加载图像 游戏框架 概要 easyX是一个轻量级的图形库&#xff0c;用于在Windows平台上进行简单的2D图形绘制。它提供了一组简单易用的函数&#xff0c;可以方便地绘制基本的图形元素&#xff0c;如线条、矩形、圆形…...

es6箭头函数和普通函数的区别

在JavaScript中&#xff0c;函数是执行特定任务的代码块。函数可以被定义并且随后被调用。JavaScript中有两种主要的函数定义方式&#xff1a;普通函数声明和箭头函数表达式。下面是这两种函数的定义方式及其区别和使用场景&#xff1a; 普通函数声明 普通函数可以通过函数声明…...

DeepSeek R1 32B 本地部署实战

#DeepSeek# DeepSeek是一款基于人工智能的智能助手&#xff0c;专为提升工作效率和信息获取能力而设计。它结合了自然语言处理、机器学习和大数据技术&#xff0c;能够快速理解用户需求并提供精准的答案或解决方案。 DeepSeek的核心功能 智能问答 DeepSeek可以回答各种问题&…...

八、SPI读写XT25数据

8.1 SPI 简介 SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;是一种同步串行通信协议&#xff0c;广泛用于嵌入式系统中连接微控制器与外围设备&#xff0c;如传感器、存储器、显示屏等。 主要特点 1. 全双工通信&#xff1a;支持同时发送…...

AIP-145 范围

编号145原文链接AIP-145: Ranges状态批准创建日期2020-05-28更新日期2020-05-28 服务通常需要表示具体值或连续值的范围。这些范围的含义存在诸多差异&#xff0c;也存在许多数据类型&#xff1a;整数、浮点数、时间戳等&#xff08;在此仅举几例&#xff09;。根据所讨论范围…...

(学习总结24)Linux 基本命令2

Linux 基本命令2 操作文件或目录命令更改文件或目录访问权限命令 chmod修改文件的所有者和所属组命令 chown修改文件或目录的所属组命令 chgrp更改文件或目录的属性命令 chattr创建文件和目录时的默认权限掩码命令 umask判断文件类型命令 file显示文件或文件系统状态命令 stat树…...

WPF-数据转换器

一、单值转换器 1.不传参数 转换器 当Value值大于100时返回红色 public class DataConverter : IValueConverter{/// <summary>/// 表示从源到目标数据转换/// </summary>/// <param name"value">数据源的值</param>/// <param name&q…...

STM32 I2C通信协议说明

目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况&#xff1a; 异常情况&#xff1a; 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…...

网络工程师 (42)IP地址

一、定义与功能 IP地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xff0c;以此来屏蔽物理地址的差异。这种地址分配方式确保了用户在连网的计算机上操作时&#xff0c;能够高效且方便地从众多计算机中选出自己所需…...

Deepseek实用万能提问模板

一&#xff0c;背景需求约束条件 背景:提供与问题相关的时间、地点、人物、事件等信息&#xff0c;帮助 DeepSeek 更好地理解问题的情境。 需求:清晰明确地阐述你希望 DeepSeek完成的任务或提供的信息。 约束条件:可根据具体情况&#xff0c;对回答的范围、格式、字数等进行…...

强化学习笔记7——DDPG到TD3

前提&#xff1a;基于TD 的方法多少都会有高估问题&#xff0c;即Q值偏大。原因两个&#xff1a;一、TD目标是真实动作的高估。 二&#xff1a;自举法高估。 DDPG 属于AC方法&#xff1a;异策略&#xff0c;适合连续动作空间&#xff0c;因为他的策略网络直接输出的动作&#…...

传统混合专家模型MoE架构详解以及python示例(DeepSeek-V3之基础)

我们已经了解到DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。而DeepSeekMoE架构的底层模型采用了混合专家模型(Mixture of Experts,MoE)架构。所以我们先了解一下传统混合专家模型MoE架构。 一、传统混合专家模…...

开源协议深度解析:理解MIT、GPL、Apache等常见许可证

目录 前言1. MIT协议&#xff1a;自由而宽松的开源许可1.1 MIT协议的主要特点1.2 MIT协议的适用场景 2. GPL协议&#xff1a;自由软件的捍卫者2.1 GPL协议的核心理念2.2 GPL协议的适用场景 3. Apache License 2.0&#xff1a;开源与专利保护的平衡3.1 Apache License 2.0的主要…...

三维重建(十二)——3D先验的使用

文章目录 零、最近感受和前言一、使用能够快速得到重建初始化的方法1.1 Colmap(多视角)1.2 深度估计(单视角)二、已知形状模板2.1 人脸2.2 人体2.3 动物三、刚性与非刚性约束(变形约束)3.1 刚性变形3.2 非刚性变形四、统计(深度学习)先验——从大量(3D)数据中提取信息…...

Java项目《苍穹外卖》BUG修复记录

一、订单详情地址显示为null 原因&#xff1a;查看订单详情接口中&#xff0c;未设置收货地址信息&#xff0c;故地址返回为null。 解决方案&#xff1a; 1、OrderServiceImpl中创建一个私有方法专门获取订单收货地址 /*** 获取订单收获地址* param addressBookId* return*/…...

DockerDesktop更改默认的磁盘镜像地存储位置

DockerDesktop更改默认的磁盘镜像地存储位置 文章目录 DockerDesktop更改默认的磁盘镜像地存储位置1. 默认存储位置2. 新建一个目录3. 将磁盘镜像存储位置改为新建的目录下 1. 默认存储位置 2. 新建一个目录 如&#xff1a;D:\DiskImagelocationData 3. 将磁盘镜像存储位置改为…...

阿里云视频点播,基于thinkphp8上传视频

前端参考官方示例(jQuery版) <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>阿里云 JavaScript上传SDK Demo (使用jquery)</title><script src"__STATIC__/jquery.min.js"></script><sc…...

C# windowForms 的DataGridView控件的使用

C# Windows Forms DataGridView 控件使用详解 DataGridView 是 Windows Forms 中用于显示和编辑表格数据的核心控件。它支持高度自定义的列类型、数据绑定、事件处理和丰富的样式配置。以下是其详细使用方法。 目录 基础使用 数据绑定 列类型与自定义...

【NLP 22、语言模型 language model】

有时候我也想听听&#xff0c;我在你心里&#xff0c;是什么样子 —— 25.1.12 一、什么是语言模型 语言是灵活的&#xff0c;也是有规律的 了解一门语言的人可以判断一句话是否“合理” 通俗来讲&#xff0c;语言模型用来评价一句话(句子可以看作是字的组合)是否“合理”或…...

vtkCamera类的Dolly函数作用及相机拉近拉远

录 1. 预备知识 1.1.相机焦点 2. vtkCamera类的Dolly函数作用 3. 附加说明 1. 预备知识 要理解vtkCamera类的Dolly函数作用,就必须先了解vtkCamera类表示的相机的各种属性。  VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面,如…...

2025 N1CTF crypto 复现

近一个月都没有学习了&#xff0c;一些比赛也没有打&#xff0c;很惭愧自己还是处在刚放假时的水平啊&#xff0c;马上开学了&#xff0c;抓紧做一些训练来康复。 CheckIn import os from Crypto.Util.number import * from secret import FLAGp, q getPrime(512), getPrime…...

大模型开发实战篇5:多模态--文生图模型API

大模型文生图是一种基于人工智能大模型的技术&#xff0c;能够将自然语言文本描述转化为对应的图像。目前非常火的AI大模型赛道&#xff0c;有很多公司在此赛道竞争。详情可看这篇文章。 今天我们来看下如何调用WebAPI来实现文生图功能。我们一般都会将OpenAI的接口&#xff0…...

Jvascript网页设计案例:通过js实现一款密码强度检测,适用于等保测评整改

本文目录 前言功能预览样式特点总结&#xff1a;1. 整体视觉风格2. 密码输入框设计3. 强度指示条4. 结果文本与原因说明 功能特点总结&#xff1a;1. 密码强度检测2. 实时反馈机制3. 详细原因说明4. 视觉提示5. 交互体验优化 密码强度检测逻辑Html代码Javascript代码 前言 能满…...

Macos机器hosts文件便捷修改工具——SwitchHosts

文章目录 SwitchHosts软件下载地址操作添加方案切换方案管理方案快捷键 检测 SwitchHosts SwitchHosts 是一款 Mac 平台上的免费软件&#xff0c;它可以方便地管理和切换 hosts 文件&#xff0c;支持多种 hosts 文件格式。 软件下载地址 SwitchHosts 操作 添加方案 添加 …...

vLLM专题(四)-故障排除

本文件概述了一些您可以考虑的故障排除策略。如果您认为发现了一个 bug,请首先搜索现有的问题,看看是否已经有人报告。如果没有,请提交一个新问题,并尽可能提供相关的详细信息。 注意 一旦您调试完问题,请记得关闭任何已定义的调试环境变量,或者简单地启动一个新 shell,…...

搜广推校招面经十七

滴滴 花小猪 一、算法题1—最小覆盖字串&#xff08;hot100_字串_困难&#xff09; 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 “” 。 ## form collection import Counter …...

滚动弹幕案例

滚动弹幕案例 一、需求 1.页面上漂浮字体大小不一、颜色不一&#xff0c;从左向右滚动的弹幕&#xff1b; 2.底部中间有一个发送功能&#xff0c;可以发送新的弹幕&#xff1b; 3.底部的发送部分可以向下收起和弹出。 二、html <div class"container"><…...

Typora导出word文件详细安装教程

在 Typora 中&#xff0c;部分文件格式&#xff08;包括 docx、odt、rtf、epub、LaTeX 和 wiki&#xff09;的导入和导出功能由第三方软件 Pandoc 提供支持。这些功能需要安装 Pandoc (≥ v2.0)。 一、安装Pandoc 下载地址&#xff1a;通过网盘分享的文件&#xff1a;pandoc 链…...

从短片到长片:王琦携《Mountain》续作迈向新高度

在王琦(Qi Wang)的带领下,广受关注的短片《Mountain》迎来了成长篇续作《Rite of the Mountain》。这一全新长片不仅是她从短片迈向长篇叙事的重要一步,更是一次大胆的艺术挑战。作为制片人的她,将继续以敏锐的视觉风格和深刻的叙事洞察,拓展《Mountain》所触及的情感深度,并构…...

spring boot 对接aws 的S3 服务,实现上传和查询

1.aws S3介绍 AWS S3&#xff08;Amazon Simple Storage Service&#xff09;是亚马逊提供的一种对象存储服务&#xff0c;旨在提供可扩展、高可用性和安全的数据存储解决方案。以下是AWS S3的一些主要特点和功能&#xff1a; 1.1. 对象存储 对象存储模型&#xff1a;S3使用…...

考研操作系统-----外存文件

目录 内存映射文件 ​编辑 文件管理初始&#xff1a; ​编辑 文件的逻辑结构 文件目录 ​编辑 ​编辑 文件的物理结构&#xff08;文件分配方式&#xff09; 文件存储空间管理 文件的基本操作 文件共享 ​编辑​编辑 文件保护&#xff1a; ​编辑 文件系统的全局结构…...

国内外网络安全政策动态(2025年1月)

▶︎ 1.国家互联网信息办公室发布《个人信息出境个人信息保护认证办法&#xff08;征求意见稿&#xff09;》 1月3日&#xff0c;国家互联网信息办公室发布《个人信息出境个人信息保护认证办法&#xff08;征求意见稿&#xff09;》。根据《意见稿》&#xff0c;个人信息出境个…...

跟着 Lua 5.1 官方参考文档学习 Lua (1)

文章目录 1 – Introduction2 – The Language2.1 – Lexical Conventions2.2 – Values and Types2.2.1 – Coercion 1 – Introduction Lua is an extension programming language designed to support general procedural programming with data description facilities. I…...

计算机性能与网络体系结构探讨 —— 基于《计算机网络》谢希仁第八版

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…...

matlab欠驱动船舶模型预测控制

1、内容简介 matlab135-欠驱动船舶模型预测控制 可以交流、咨询、答疑 2、内容说明 略 针对在风 、 浪 、 流时变干扰下欠驱动水面船舶的轨迹跟踪控制问题 &#xff0c; 设计了一种基于模型 预测控制的轨迹跟踪控制器 &#xff0e; 考虑到欠驱动船舶在没有横向驱动力情况下…...

【MySQL常见疑难杂症】常见文件及其所存储的信息

1、MySQL配置文件的读取顺序 &#xff08;非Win&#xff09;/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/mysql/etc/my.cnf、&#xff5e;/.my.cnf 可以通过命令查看MySQL读取配置文件的顺序 [roothadoop01 ~]# mysql --help |grep /etc/my.cnf /etc/my.cnf /etc/mysql/my.c…...

【LeetCode】3.无重复字符的最长字串

目录 题目算法解法解法一 暴力枚举 哈希表&#xff08;判断字符是否重复出现&#xff09; &#xff08;O( n 2 n^{2} n2)&#xff09;解法二 滑动窗口 哈希表&#xff08;判断字符是否重复出现&#xff09; 代码 题目 题目链接&#xff1a;LeetCode-3题 给定一个字符串 s &a…...

李宏毅机器学习笔记:【6.Optimization、Adaptive Learning Rate】

Optimization 1.Adaptive Learning Rate2.不同的参数需要不同的学习率3.Root Mean Square4.RMSProp5.Adam6.learning rate scheduling7.warm up总结 critical point不一定是你在训练一个network时候遇到的最大的障碍。 1.Adaptive Learning Rate 也就是我们要给每个参数不同的…...

计算机组成原理—— 外围设备(十三)

记住&#xff0c;伟大的成就往往诞生于无数次尝试和失败之后。每一次跌倒&#xff0c;都是为了让你学会如何更加坚定地站立&#xff1b;每一次迷茫&#xff0c;都是为了让你找到内心真正的方向。即使前路漫漫&#xff0c;即使困难重重&#xff0c;心中的火焰也不应熄灭。它代表…...

React简介

React简介 A Brief Introduction to React By JacksonML 1. 关于React React是一个知名的Web框架。众所周知&#xff0c;jQuery, Angular, Vue等框架都曾闪亮登场&#xff0c;并且&#xff0c;都仍然在全球市场占有一席之地。React这个颇有担当的新锐&#xff0c;也进入到我…...

Linux-C/C++《七、字符串处理》(字符串输入/输出、C 库中提供的字符串处理函数、正则表达式等)

字符串处理在几乎所有的编程语言中都是一个绕不开的话题&#xff0c;在一些高级语言当中&#xff0c;对字符串的处理支 持度更是完善&#xff0c;譬如 C、 C# 、 Python 等。若在 C 语言中想要对字符串进行相关的处理&#xff0c;譬如将两个字符串进行拼接、字符串查找、两个…...

哈希动态规划dp_5

一.哈希 哈希&#xff08;Hashing&#xff09;是计算机科学中一种非常重要的技术&#xff0c;用于将输入的数据映射到固定大小的值&#xff08;哈希值&#xff09;上。哈希算法和哈希数据结构广泛应用于各种领域&#xff0c;包括数据查找、加密、缓存、数据库索引等。我们来详…...

电商分布式场景中如何保证数据库与缓存的一致性?实战方案与Java代码详解

文章目录 一、缓存一致性问题的本质写后读不一致&#xff1a;更新数据库后&#xff0c;缓存未及时失效并发读写竞争&#xff1a;多个线程同时修改同一数据缓存与数据库事务不同步&#xff1a;部分成功导致数据错乱 二、5大核心解决方案与代码实现方案1&#xff1a;延迟双删策略…...

DeepSeek-R1 大模型本地部署指南

文章目录 一、系统要求硬件要求软件环境 二、部署流程1. 环境准备2. 模型获取3. 推理代码配置4. 启动推理服务 三、优化方案1. 显存优化技术2. 性能加速方案 四、部署验证健康检查脚本预期输出特征 五、常见问题解决1. CUDA内存不足2. 分词器警告处理3. 多GPU部署 六、安全合规…...

【数据结构】 栈和队列

在计算机科学的世界里&#xff0c;数据结构是构建高效算法的基础。栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;作为两种基本且重要的数据结构&#xff0c;在软件开发、算法设计等众多领域都有着广泛的应用。今天&#xff0c;我们就来深入探讨一下栈和…...

用Python构建Mad Libs经典文字游戏

前言 Mad Libs 是一种经典的文字游戏,其中一名玩家向其他玩家询问各种词汇,如名词、动词、形容词等,而不提供任何上下文。然后将这些提示词插入到一个充满空白的故事模板中,从而创造出一个搞笑或荒谬的故事,供玩家大声朗读以获取乐趣。 自1950年代发明以来,Mad Libs 一…...