网络应用层HTTP协议

news2025/1/10 12:02:23

网络应用层HTTP协议

1. HTTP协议介绍

在互联网世界中,HTTPHyperText Transfer Protocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本(如 HTML 文档)。

HTTP 协议是客户端与服务器之间通信的基础。客户端通过 HTTP 协议向服务器发送请求,服务器收到请求后处理并返回响应。HTTP 协议是一个无连接、无状态的协议,即每次请求都需要建立新的连接,且服务器不会保存客户端的状态信息。

在访问网页时,要获得一个完整的网页,浏览器先要得到 html,根据 html 的标签,检测处我们还要获取其他资源,浏览器会继续发起http 请求。

2. HTTP与TCP关系

虽然说HTTP协议是一个无连接、无状态的协议,但是 HTTP 协议是基于 TCP 的协议。HTTP 本事是一个应用层协议,它的通信是基于请求-响应的模型。当客户端(如浏览器)向服务器发送请求,服务器处理请求并返回响应后,这次通信的连接就结束了。在 HTTP/1.0 和早期的HTTP/1.1实现中,每次请求-响应都会建立和关闭一次TCP连接,HTTP协议在处理请求和响应完成后不保留通信连接。

现代版本的 HTTP/1.1 引入了持久连接(Persistent Connection),允许一个TCP连接进行多次请求-响应。

HTTP/2 引入了多路复用(Multiplexing)HTTP/1.1 持久连接的基础上允许在同一个TCP连接上并发地处理多个请求和响应。

HTTP 的 “无连接” 无状态”和 TCP 并不矛盾,HTTP是一个应用层协议,它运行在 TCP(传输层协议)之上,TCP 负责底层的可靠传输和数据完整性,而HTTP作为应用层协议在TCP的基础上进行数据传输。 HTTP 的 “无连接” 只是在应用层的通信上指的是每个请求独立于连接,而不是指 TCP 连接本身。每个 HTTP 请求可能会复用或重新建立新的 TCP 连接,但HTTP自身不维护这种连接状态。

3. URL

平时我们说的 “网址” 就是 URL。URL 前半部分表示唯一的一台主机,后面表示该主机上的唯一的文件资源,即能表示互联网中唯一的一个文件资源。所以URL称为统一资源定位符Uniform Resource Locator;URL

HTTP1

注意:在实际显示的 URL 中,可能不会包含这么多完整信息。

服务器地址(即域名)其实就是 IP 地址,域名在客户端的应用自动转换成 IP 地址,称为 DNS(地址转换)。所以在 URL 中域名并不是 “点分十进制” 的IP地址。

服务器端口号在 URL 中是必须的,但实际的 URL 中常常不显示。原因是协议名称和端口号是强关联的,协议所使用的端口号总是固定的,所以端口号在 URL 中可能默认被忽略了,当浏览器发起请求时,会默认拼接端口号。

3.1 URL特殊符号含义

URL 定义了一部分特殊字符的含义和用法:

特殊符号含义
+表示空格(URL中不能使用规格的空格)
/分隔目录和子目录
?分隔实际的URL和参数
#表示书签
&表示URL中参数间的分隔符
=表示URL中指定参数的值

3.2 urlencode和urldecode

URL 定义了一部分特殊字符的含义和用法,但在浏览器搜索中的一些字符可能是 URL 的特殊字符。这些特殊字符作为搜索的文本之一时,需要经过转义才能在 URL 中显示,称为 urlencode。urlencode 的逆过程便称为 urldecode。

转义规则如下:

将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式

HTTP2

urlencode转码网站

4. HTTP协议请求与相应格式

HTTP 的请求包含很多内容,协议对其格式进行了规定:

HTTP3

5. HTTP的方法

方法说明支持的HTTP版本
GET获取资源1.1、1.0
POST传输实体主体1.1、1.0
PUT传输文件1.1、1.0
HEAD获取报文首部1.1、1.0
DELETE删除文件1.1、1.0
OPTIONS询问支持的方法1.1
TRACE追钟路径1.1
CONNECT要求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
UNLINK断开连接关系1.0

其中使用频率最高的是GET方法和POST方法

5.1 GET方法

GET方法用于请求URL指定的资源,指定资源经服务器端解析后返回响应内容。GET一般用来获取静态资源,也可以通过ur向服务器传递参数。

5.2 POST方法

POST方法用于传输实体的主体,通常用于提交表单数据。POST方法可以发送大量的数据给服务器,并且数据包含在请求之中。POST可以通过httprequest的正文来进行参数传递。

5.3 PUT方法

PUT方法用于传输文件,将请求报文主体中的文件保存到请求URL指定的位置。但不太常用,但在某些情况下,如RESTful API 中,用于更新资源。

5…4 HEAD方法

HEAD方法与GET方法类似,但不返回报文主体部分,仅返回响应头。 HEAD方法主要用于确认URL的有效性及资源更新的日期时间等。

5.5 DELETE方法

DELETE用于删除文件,是 PUT 的相反方法。按请求URL删除指定的资源。

5.6 OPTIONS方法

OPTIONS用于查询针对请求 URL 指定的资源支持的方法,会返回允许的方法,如GET、POST等。

6. HTTP状态码

HTTP状态码是用以表示网页服务器超文本传输协议响应状态的3位数字代码。

已定义范围类别原因短语
1xx100-101Information(信息性状态码)接收的请求正在处理
2xx200-206Success(成功状态码)请求正常处理完毕
3xx300-305Redirection(重定向状态码)需要进行附加操作以完成请求
4xx400-415Client Error(客户端错误状态码)服务器无法处理请求
5xx500-505Server Error(服务器错误状态码)服务器处理请求出错

最常见的状态码有:200(OK),404(Not Found),403(Forbidden),302(Redirect),504(Bad Gateway)

6.1 部分状态码详解

6.2 1xx
状态码含义应用示例
100Continue上传大文件时,服务器告诉客户端可以继续上传
6.3 2xx
状态码含义应用示例
200OK访问网站首页,服务器返回网页内容
201Created发布新文章,服务器返回文章创建成功的信息
204No Content删除文章后,服务器返回“无内容”表示操作成功
6.4 3xx
状态码含义应用示例
301Moved Permantly网站换域名后,自动跳转到新域名;搜索引擎更新网站链接时使用
302Found或See Other用户登录成功后,重定向到用户首页
304Not Modified浏览器缓存机制,对未修改的资源返回304状态码
6.5 4xx
状态码含义应用示例
400Bad Request填写表单时,格式不正确导致提交失败
401Unauthorized访问需要登录的页面时,未登录或认证失败
403Forbidden尝试访问你没有权限查看的页面
404Not Found访问不存在的网页链接
6.6 5xx
状态码含义应用示例
500Internal Server Error服务器崩溃或数据库错误导致页面无法加载
502Bad Gateway使用代理服务器时,代理服务器无法从上游服务器获取有效响应
503Service Unavailable服务器维护或过载,暂时无法处理请求

6.7 永久重定向与临时重定向

我们在访问网页,访问一些受限制的视频、文章时,需要我们登录账号或充值会员。这时网页就会把目标网页(视频或文章)重定向到登录界面或充值界面,或在登录、充值成功后将网页重定向到先前的网页或用户首页,这就是临时重定向

当一些网页的域名或IP发生改变后,用户一般不能马上更改访问网页用的域名,这时浏览器或搜索引擎会自动对新域名与旧域名进行绑定,用户访问旧域名会自动跳转到新域名,这就是永久重定向

重定向有关状态码:

状态码含义重定向类型应用示例
301Moved Permantly永久重定向网站换域名后,自动跳转到新域名;搜索引擎更新网站链接时使用
302Found或See Other临时重定向用户登录成功后,重定向到用户首页
307Temporary Redirect临时重定向临时重定向资源到新的位置(较少使用)
308Permanent Redirect永久重定向永久重定向资源到新的位置(较少使用)

HTTP状态码301(永久重定向)302(临时重定向) 都依赖 Location 选项

对于301(永久重定向)

当服务器返回301状态码时,表示请求的资源已经永久移动到新的位置。在这种情况下,服务器会在响应中添加一个 Location 头部,用于指定资源的新位置。这个 Location 头部包含了新的 URL 地址,浏览器会自动重定向到该地址。

  • 可能会在HTTP响应中看到以下信息:

    HTTP/1.1 301 Moved Permanently\r\n
    Location: https://www.new-url.com\r\n
    

对于302(临时重定向)

当服务器返回302状态码时,表示请求的资源临时被移动到新的位置。同样,服务器会在响应中添加一个Location头部,来指定资源的新位置。浏览器会暂时使用新的URL进行后续的请求,但不会缓存这个重定向。

  • 可能在HTTP响应中看到以下信息:

    HTTP/1.1 302 Found\r\n
    Location: https://www.new-url.com\r\n
    

无论是 HTTP301 还是HTTP 302,重定向都需要依赖Location选项来指定资源的新位置。这个Location选项是一个标准的HTTP响应头部,用于告诉浏览器应该将请求重定向到哪个新的URL地址。

7. HTTP Header

Header内容
Content-Type:数据类型(text/html)等
Content-Length:body的长度
Host:客户端告知服务器,所请求的资源是在哪个主机的哪个端口上
User-Agent:声明用户的操作系统和浏览器的版本信息
referer:当前页面是从哪个页面跳转过来的
Location:搭配3xx重定向状态码使用,告诉客户端接下来要去哪里访问
Cookie:用于在客户端存储少量信息,通常用于实现会话(session)的功能

7.1 connection报头

HTTP中的Connection字段是HTTP报文头的一部分,它主要用于控制和管理客户端与服务器之间的连接状态。HTTP是无连接的,但有时候我们希望与一个网页保持持久连接。Connection字段就用于管理持久连接(也称为长连接)持久连接允许客户端和服务器在请求-响应完成后不立即关闭TCP连接,以便在同一个连接上发送多个请求和接收多个响应。

HTTP/1.1:

  • 在HTTP/1.1协议中,默认使用持久连接。当客户端和服务器都不明确指定关闭连接时,连接将保持打开状态,以便后续的请求和响应可以复用同一个连接。

HTTP/1.0:

  • 在HTTP/1.0协议中,默认连接是非持久的。如果希望在HTTP/1.0上实现持久连接,需要在请求头中显式设置Connection:keep-alive

语法格式:

Connection:keep-alive:表示希望保持连接以复用TCP连接。

Connection:close:表示请求/响应完成后,应该关闭TCP连接。

8. HTTP Cookie

8.1 HTTP Cookie介绍

HTTP Cookie(也称为 Web Cookie、浏览器Cookie或简称Cookie)是服务器发送到用户浏览器并保存在浏览器上的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等。

用途:

  1. 用户认证和会话管理(最重要)。

    一般用于保持用户的登录状态,可设置过期时间。如b站的登录Cookie信息设置了两年,但华为云的Cookie过期非常快。

  2. 跟踪用户行为。

    如记录用户的浏览记录,以便设置个性化推荐。

  3. 缓存用户偏好等。

    如b站缓存用户的播放设置喜好等。

8.2 Cookie工作原理

当用户第一次访问网站时,服务器会在响应的HTTP头中设置Set-Cookie字段,用于发送Cookie到用户的浏览器。浏览器在接收到Cookie后,会将其保存在本地(通常是按照域名进行存储)。 在之后的请求中,浏览器会自动在HTTP请求头中携带Cookie字段,将之前保存的Cookie信息发送给服务器。

8.3 Cookie分类

  • Seesion Cookie:会话Cookie,在浏览器关闭时失效。(内存级)

  • Persistent Cookie:持久Cookie,带有明确的过期日期或持续时间,可以跨多个浏览器会话存在。(文件级)

如果cookie是一个持久性的cookie,那么它其实就是浏览器进程生成的,特定目录下的一个文件。但cookie文件不能直接查看,因为cookie文件通常以二进制或sqlite格式储。 但浏览器一般设置了在浏览器下查看特定网页的Cookie的方式:

HTTP4

8.4 Cookie设置

HTTP存在一个报头选项:Set-Cookie用来在浏览器中设置Cookie的值。客户端(浏览器)在接收到响应头后,会自动获取Set-Cookie并自行设置并保存Cookie

设置格式
Set-Cookie: <name>=<value>
示例:
Set-Cookie: username=peter; expires=Thu, 18 Dec 2024 12:00:00
UTC; path=/; domain=.example.com; secure; HttpOnly

含义:

<name>=<value>:name为Cookie的名称,value为Cookie的值。

expires=<date>:设置Cookie的过期时间,设置了expires则代表Cookie是一个Persistent CookieCookie的时间必须遵从RFC 1123 标准,即 [星期], [d] [m] [y] [hour]:[min]:[second] UTCThu, 18 Dec 2024 12:00:00

注意星期和月份为首字母大写的英文单词缩写。UTC为计算时间的一种方式,还有如GMT,但推荐使用UTC(更精准)。

path=<some_path>:是Cookie在网页的web目录中有效的范围,如果设置为/表示这条cookie在这个域名的web根目录下所有路径都有效。

domain=<domain_name>:指定哪些主机可以接受该Cookie。默认为设置它的主机。设置中的.前缀表示包含所有子域名。

secure:仅当使用HTTPS协议时才发送Cookie。这有助于防止Cookie在不安全的HTTP连接中被截获。

HttpOnly:标记Cookie为HttpOnly,意味着该Cookie不能被客户端脚本(如JavaScript)访问。这有助于防止跨站脚本攻击(XSS)。

注意事项:

  1. 每个Cookie属性之间用; (空格) 分隔。
  2. 名称和值之间使用=分隔。
  3. 如果Cookie的名称或值包含特殊字符(如空格、分号、逗号等),则需要进行URL编码。

Cookie的安全性

使用secure标志可以确保Cookie仅在HTTPS连接上发送,从而提高安全性。使用HttpOnly标志可以防止客户端脚本(如JavaScript)访问Cookie,从而防止XSS攻击。

但由于Cookie经常需要写入一些用户的敏感信息,而HTTP的请求和响应是可以被拦截的,单独使用Cookie非常不安全。所以一般Cookie还会配合Session使用。

9. HTTP Session

9.1 Session介绍

Session与Cookie类似,但Session是存储在服务器端的,服务器用来跟踪用户与服务器交互期间用户状态的机制。Cookie是客户端(浏览器)记录用户信息的机制,但同样的服务器端有时也需要记录用户的信息,所以就需要Session来做这个工作(因为HTTP协议是无状态的)。

9.2 Session工作原理

当用户首次访问网站时, 服务器会为用户创建一个唯一的 Session ID, 并通过Cookie 将其发送到客户端。客户端在之后的请求中会携带这个 Session ID, 服务器通过 Session ID 来识别用户, 从而获取用户的会话信息。服务器通常会将 Session 信息存储在内存、 数据库或缓存中。

9.3 Session的特点

安全性:

  • Cookie 相似, 由于 Session ID 是在客户端和服务器之间传递的, 因此也存在被窃取的风险。但是由于Session的具体内容存储在服务器,Cookie被盗时只是泄漏了Session ID,私密的信息没有泄漏。所以说使用Session是相对安全的。

  • Session ID还用于服务端进行客户端有效性的管理, 比如检测异地登录并做出一定的处理(如要求短信验证敏感操作)。

  • Session也可以通过 HTTPS 和设置合适的 Cookie 属性(如 HttpOnlySecure) 来增强安全性。

超时和失效:

  • Session 可以设置超时时间, 当超过这个时间后, Session 会自动失效。
  • 服务器也可以主动使 Session 失效, 例如让Session在当用户登出时失效。

用途:

  • 用户认证和会话管理。

  • 存储用户的临时数据(如购物车内容)。

  • 实现分布式系统的会话共享(通过将会话数据存储在共享数据库或缓存中)。

10. HTTP历史版本介绍

10.1 HTTP/0.9

1991年,HTTP/0.9版本作为HTTP协议的最初版本,用于传输基本的超文本HTML内容。当时的互联网还处于起步阶段,网页内容相对简单,主要以文本为主。

特点:

  1. 仅支持GET请求方法。
  2. 仅支持纯文本传输,主要是HTML格式。
  3. 无请求和响应头信息。

10.2 HTTP/1.0

1996年,随着互联网的快速发展,网页内容逐渐丰富,HTTP/1.0版本应运而生。为了满足日益增长的网络应用需求,HTTP/1.0增加了更多的功能和灵活性。然而,HTTP/1.0的工作方式是每次TCP连接只能发送一个请求,性能上存在一定局限。

特点:

  1. 引入了POSTHEAD请求方法。
  2. 添加了请求和响应头信息,支持多种数据格式(MIME)。
  3. 支持缓存(cache)。
  4. 添加了状态码(status code),支持多字符集。

10.3 HTTP/1.1

1999年,随着网页加载的外部资源越来越多,HTTP/1.0的性能问题愈发突出。HTTP/1.1通过引入持久连接和管道化等技术,有效提高了数据传输效率。同时,互联网应用开始呈现出多元化、复杂化的趋势,HTTP/1.1的出现满足了这些需求。

特点:

  1. 引入持久连接(persistent connection),支持管道化(pipelining)。
  2. 允许在单个TCP连接上进行多个请求和响应,提高了性能。
  3. 引入分块传输编码(chunked transfer encoding )。
  4. 支持Host头,允许在一个IP地址上部署多个Web站点。

10.4 HTTP/2.0

2015年,随着移动互联网的兴起和云计算技术的发展,网络应用对性能的要求越来越高。HTTP/2.0通过多路复用、二进制帧格式等技术,显著提高了数据传输效率和网络性能。同时,HTTP/2.0还支持加密传输(HTTPS),提高了数据传输的安全性。

特点:

  1. 支持多路复用(multiplexing),一个TCP连接允许多个HTTP请求。
  2. 支持二进制帧格式(binary framing),优化数据传输。
  3. 支持头部压缩(header compression),减少传输开销。
  4. 支持服务器推送(server push),提前发送资源到客户端。

10.5 HTTP/3.0

2022年,随着5G、物联网等技术的快速发展,网络应用对实时性、可靠性的要求越来越高。HTTP/3.0通过使用QUIC协议,提高了连接建立速度和数据传输效率,满足了这些需求。同时,HTTP/3.0还支持加密传输(HTTPS),保证了数据传输的安全性。

特点:

  1. 使用QUIC协议替代TCP协议,基于UDP构建的多路复用传输协议。
  2. 减少了TCP三次握手及TLS握手时间,提高了连接建立速度。

11. Fiddler

fiddler在启动之后,会劫持浏览器的请求,再由fiddler向服务器端发送请求。同时服务器端向浏览器发送应答时,fiddler也会劫持应答,之后再转交给浏览器。所以fiddler可以获取请求的端口号和IP地址。

12. 相关命令

连接并向网页发送请求方法的命令:

telnet [IP] [port]
ctrl+]
GET /HTTP/1.1

快速测试网页连接命令:

curl [IP] [port]

测试目标网页延迟命令:

ping [IP]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2274319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

B+树的原理及实现

文章目录 B树的原理及实现一、引言二、B树的特性1、结构特点2、节点类型3、阶数 三、B树的Java实现1、节点实现2、B树操作2.1、搜索2.2、插入2.3、删除2.4、遍历 3、B树的Java实现示例 四、总结 B树的原理及实现 一、引言 B树是一种基于B树的树形数据结构&#xff0c;它在数据…

在 macOS 中,设置自动将文件夹排在最前

文章目录 1、第一步访达设置2、第二步排序方式 需要两步设置 1、第一步访达设置 按名称排序的窗口中 2、第二步排序方式 选择名称

【数据库】Unity 使用 Sqlite 数据库

1.找到需要三个 DLL Mono.Data.Sqlite.dllSystem.Data.dllsqlite3.dll 上面两个dll可在本地unity安装目录找到&#xff1a; C:\Program Files\Unity\Hub\Editor\2022.3.xxf1c1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit-win32 下面dll可在sqlite官网下载到&#xff…

国内使用博查SearchAPI进行智能搜索,通过API获取搜索引擎的天气、日历、百科、手机、火车票等信息

在现代开发中&#xff0c;网络资源搜索是关键且常见的需求。博查SearchAPI作为国内领先的智能搜索解决方案&#xff0c;已服务超过2000家企业和16000名开发者&#xff0c;获得腾讯元器、字节扣子、阿里钉钉等官方推荐。该API提供近百亿网页内容及多样的生态合作内容&#xff0c…

免费网站源码下载指南:如何安全获取并降低开发成本

许多开发者或是需要建立网站的人&#xff0c;可以方便地获取免费网站源码。这样的下载能帮助他们降低开发费用&#xff0c;迅速构建起基本框架。但在此过程中&#xff0c;仍有许多需要注意的事项。 许多开发者或是需要建立网站的人&#xff0c;可以方便地获取免费网站源码。这…

colnames看似简单,却能优化数据处理流程

引言 在数据处理和分析中&#xff0c;变量名称是至关重要的&#xff0c;它们决定了数据的可读性和操作的简便性。在R语言中&#xff0c;colnames 函数以其简单的语法设计&#xff0c;提供了高效管理数据框列名的能力&#xff0c;尤其是在复杂的爬虫任务中显得尤为重要。本篇文…

计算机网络例题

IP地址分类&#xff1a; A类&#xff1a;网络号范围&#xff1a; 1~126 &#xff08;0000 0001 ~ 0111 1110&#xff09; B类&#xff1a;网络号范围&#xff1a;128.1 ~ 191.255 &#xff08;可用范围&#xff09; C类&#xff1a;网络号段范围&#xff1a;192.0.1 ~ 223.2…

腾讯云AI代码助手编程挑战赛 - 使用 JavaScript 构建一个简易日历

功能简介&#xff1a; 动态年份选择&#xff1a;用户可以通过下拉框选择从 2000 年到 2050 年的任意年份。全年日历生成&#xff1a;根据用户选择的年份&#xff0c;动态生成该年份的所有 12 个月份的日历。直观的 UI 设计&#xff1a;使用 CSS 美化日历外观&#xff0c;使日历…

hive迁移后修复分区慢,怎么办?

我有1个30TB的分区表&#xff0c;客户给的带宽只有600MB&#xff0c;按照150%的耗时来算&#xff0c;大概要迁移17小时。 使用hive自带的修复分区命令&#xff08;一般修复分区比迁移时间长一点&#xff09;&#xff0c;可能要花24小时。于是打算用前面黄大佬的牛B方案。 Hive增…

java-方法详解

目录​​​​​​​ 一、方法的定义 二、方法的调用 1.对于非静态方法&#xff1a; 2.对于静态方法&#xff1a; 3.类名.什么情况下可以省略 三、方法的参数传递 (1).实参和形参 形参 实参 (2).基本数据类型参数传递&#xff1a; (3).引用数据类型参数传递&#xff…

第二十八周机器学习笔记:PINN求正反解求PDE文献阅读——反问题、动手深度学习

第二十八周周报 一、文献阅读题目信息摘要Abstract网络架构实验——Data-driven discovery of partial differential equations&#xff08;偏微分方程的数据驱动发现&#xff09;1. Continuous time models&#xff08;连续时间模型&#xff09;例子&#xff1a;(Navier–Stok…

IT面试求职系列主题-Jenkins

想成功求职&#xff0c;必要的IT技能一样不能少&#xff0c;先说说Jenkins的必会知识吧。 1) 什么是Jenkins Jenkins 是一个用 Java 编写的开源持续集成工具。它跟踪版本控制系统&#xff0c;并在发生更改时启动和监视构建系统。 2&#xff09;Maven、Ant和Jenkins有什么区别…

【我的 PWN 学习手札】IO_FILE 之 FSOP

FSOP&#xff1a;File Stream Oriented Programming 通过劫持 _IO_list_all 指向伪造的 _IO_FILE_plus&#xff0c;进而调用fake IO_FILE 结构体对象中被伪造的vtable指向的恶意函数。 目录 前言 一、glibc-exit函数浅析 二、FSOP 三、Largebin attack FSOP &#xff08;…

ChatGPT入门之文本情绪识别:先了解LSTM如何处理文字序列

文章目录 0. 首先聊聊什么是RNN1. 理解LSTM&#xff0c;从数据如何喂给 LSTM开始2. LSTM每个门是如何处理序列数据的&#xff1f;2.1 遗忘门&#xff08;Forget Gate&#xff09;&#xff1a;该忘掉哪些信息&#xff1f;2.2 输入门&#xff08;Input Gate&#xff09;&#xff…

springboot和vue配置https请求

项目场景&#xff1a; 代码发布到线上使用https请求需要配置ssl证书&#xff0c;前后端都需要修改。 问题描述 如图&#xff0c;我们在调用接口时报如下错误&#xff0c;这就是未配置ssl但是用https请求产生的问题。 解决方案&#xff1a; 前端&#xff1a;在vite.config.js文…

软件工程期末整理(二)

快速原型开发模型是&#xff08;适用于客户需求难以清楚定义、规模较小的系统&#xff09;。(编写系统实施计划)不是系统设计阶段的主要活动 解释&#xff1a;系统实施计划”更侧重于后续的实施与部署阶段&#xff0c;属于项目管理层面的内容 协作性不属于构件的特性在类图中…

filebeat、kafka

elk的架构 es数据库&#xff1a;非关系型数据库&#xff0c;json格式 logstash&#xff1a;收集日志 kibana&#xff1a;图形化的工具 ↓ 以上三种结合起来即为日志收集系统 filebeat 作用&#xff1a;filebeat是一款轻量级的日志收集工具&#xff0c;不依赖java环境&…

vue3使用vue3-video-play播放m3u8视频

1.安装vue3-video-play npm install vue3-video-play --save2.在组件中使用 import vue3-video-play/dist/style.css; import VideoPlay from vue3-video-play;// 视频配置项 const options reactive({src: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8, //视频源mute…

项目代码第8讲:Socket和OPC UA客户端通信;数据库的表格内容谁填的?(OPC Client和Web);在Program.cs中单独开启一个线程

一、Socket:用于和OPC UA客户端通信 1、Socket和OPC UA的定义 1>Socket:只是一个API,提供了一个使用 TCP(以及其他协议)的方式,用于在同一台计算机上的进程之间或不同计算机之间的进程通信 一个API Socket 是一种应用程序编程接口(API),它提供了一系列函数…

离线录制激光雷达数据进行建图

目前有一个2D激光雷达&#xff0c;自己控制小车运行一段时间&#xff0c;离线获取到激光雷达数据后运行如下代码进行离线建图。 roslaunch cartographer_ros demo_revo_lds.launch bag_filename:/home/firefly/AutoCar/data/rplidar_s2/2025-01-08-02-08-33.bag实际效果如下 d…