超文本传送协议HTTP

news2024/12/30 1:54:42

目录

HTTP简介:

URL的格式:

HTTP协议的特点:

HTTP/1.0协议:

HTTP/1.1协议:

HTTP/2:

HTTP代理服务器:

HTTP的报文结构:

请求报文的特点:

响应报文的特点:

Cookie: 

Cookie的工作原理:

万维网的文档:

静态文档:

超文本标记语言HTML

可扩展标记语言XML

可扩展超文本标记语言 XHTML

层叠样式表CSS

动态文档:

活动万维网文档:

搜索引擎:

垂直搜索引擎:

元搜索引擎:


HTTP简介:

HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文音、图像等各种多媒体文件)的重要基础。

注:协议 HTTP 不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本、超文本、声音和图像等。

超媒体与超文本的区别:文档内容不同。

超文本文档仅包含文本信息。

超媒体文档还包含其他信息,如图形、图像、声音、动画,甚至活动视频图像等。

 

每个万维网网点都有一个服务器进程,它不断地监听 TCP 的端口 80,以便发现是否有浏览器(即万维网客户。请注意,浏览器和万维网客户是同义词) 向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。服务器在完成任务后,TCP 连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议 HTTP。

URL的格式:

http(s)://<host>:<port>/<path>?<query>#<frag>

(1)协议名:http 或 https 协议;

(2)<host>:主机名。一个 URL 中,既可以使用域名也可以使用 IP 表示主机地址;

(3)<port>:端口。主机名和端口之间使用冒号分隔。端口是可选的,如果省略将采用默认端口,http 默认端口是 80,https 默认端口 443;

(4)<path>:资源路径。资源在网络主机上的路径,路径也是可选的,缺省访问默认资源;

(5)<query>:查询参数。格式为 key=value,多个参数使用 & 分隔;参数也是可选的;

(6)<frag>:片段。从 # 开始到最后,一般用于定位到资源内的一个片段,比如文档的一个章节;片段也是可选的。

示例:

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

(1)http 为协议;

(2)www.aspxfans.com 为主机域名;

(3)8080 为端口号;

(4)news/index.asp 为资源路径;

(5)boardID=5&ID=24618&page=1 为查询参数;

(6)name 为资源内的一个片段。

HTTP协议的特点:

1.协议 HTTP 本身是无连接的。虽然HTTP使用了TCP连接,但通信的双方在交换HTTP 报文之前不需要先建立HTTP连接。

2.协议 HTTP是无状态的(stateless)。同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同(假定现在服务器还没有把该页面更新),因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP 请求

HTTP/1.0协议:

1.每请求一个文档就要有两倍 RTT 的开销。

2.客户和服务器每一次建立新的 TCP 连接都要分配缓存和变量。

HTTP/1.1协议:

HTTP/1.1使用了持续连接的方式,就是万维网服务器在发送响应后仍然在一段时同内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。这种协议的持续连接有两种工作方式:非流水方式和流水线方式。

非流水线:

客户在收到前一个响应后才能发出下一个请求。因此,在TCP连接建立后,客户每访问一次对象都要用去一个往返时间 RTT。这比非持续连接要用去两倍RTT的开销,节省了建立TCP连接所需的一个RTT 时间。但是因为服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。

流水线:

客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个RTT 时间。流水线工作方式使TCP连中的空闲时间减少,提高了下载文档效率。

HTTP/2:

(1) HTTP/1.1具有流水线的工作方式。这就是在 TCP连接建立后,客户可以连续向服务器发出许多个请求,而不必等到收到一个响应后再发送下一个请求。但服务器发回响应时必须按先后顺序排队,逐个地发送给客户。有时遇到某个响应迟迟不能发回,那么排在后面的一些响应就必须等待很长的时间。HTTP/2把服务器发回的响应变成可以并行地发回(使用同一个TCP连接),这就大大缩短了服务器的响应时间。

(2)使用HTTP/1.1时,当客户收到服务器发回的响应后,原来建立的TCP连接就释放了。如果客户还要继续向该服务器发送新的请求,就必须重新建立TCP连接。HTTP/2允许客户复用TCP连接进行多个请求,这样就节省了TCP连续多次建立和释放连接所花费的时间。

(3)HTTP/1.1的请求和响应报文是面向文本的(text-oriented)。当客户连续发送请求并受到响应时,在 TCP连接上传送的 HTTP 报文首部成为不小的开销。在这些首部中有很多段是重复的。为此,HTTP/2 把所有的报文都划分为许多较小的二进制编码的帧,并采用新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。

注:HTTP/2是向后兼容的。当使用HTTP/2的客户向服务器发出请求时,如果服务器仍然使用 HTTP/1.1,那么服务器仍然可以收到请求报文。在发回响应后,客户就改用HTTP/1.1与服务器进行交互。

HTTP代理服务器:

代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache),它代表浏览器发出 HTTP 请求。使用高速缓存可减少访问互联网服务器的时延。代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按 URL 的地址再次去互联网访问该资源。代理服务器可在客户端或服务器端工作,也可在中间系统上工作。下面我们用例子说明它的作用。

如图是校园网不使用代理服务器的情况。这时,校园网中所有的计算机都通过2Mbit/s 专线链路(R1-R2)与互联网上的源点服务器建立 TCP连接。因而校网各计算机访问互联网的通信量往往会使这条2Mbit/s 的链路过载,使得时延大大增加。

校园网使用代理服务器的情况,访问互联网的过程是这样:

(1)校园网的计算机中的浏览器向互联网的服务器请求服务时,就先和校园网的代理服务器建立TCP连接,并向代理服务器发出HTTP请求报文。

(2)若代理服务器已经存放了所请求的对象,代理服务器就把这个对象放入 HTTP 响应报文中返回给计算机的浏览器。

(3)否则,代理服务器就代表发出请求的用户浏览器,与互联网上的源点服务器(originserver)建立TCP连接如图所示,并发送HTTP 请求报文。

(4)源点服务器把所请求的对象放在HTTP 响应报文中返回给校园网的代理服务器。

(5)代理服务器收到这个对象后,先复制在自己的本地存储器中(留待以后用)。然后再把这个对象放在 HTTP 响应报文中,通过已建立的TCP连接,返回给请求该对象的浏览器。

注:代理服务器有时是作为服务器(当接受浏览器的 HTTP 请求时),但有时却作为客户(当向互联网上的源点服务器发送HTTP 请求时)。
在使用代理服务器的情况下,由于有相当大一部分通信量局限在校园网的内部,因此2Mbit/s 专线链路(R1-R2)上的通信量大大减少,因而减小了访问互联网的时延。
 

HTTP的报文结构:

HTTP有两类报文:

(1)请求报文-从客户向服务器发送请求报文

(2)响应报文-从服务器到客户的回答

由于 HTTP 是面向文本的,因此在报文中的每一个字段都是一些 ASCII 码,因而个字段的长度都是不确定的。
HTTP 请求报文和响应报文都是由三个部分组成的。可以看出,这两种报文格式的区别就是开始行不同。
(1)开始行(请求行/状态行),用于区分是请求报文还是响应报文。在请求报文中的开始行叫作请求行(Request-Line),而在响应报文中的开始行叫作状态行(Status-Line)。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。
(2)首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行在结束的地方都要有“回车”和“换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。
(3)实体主体(entity body),在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。

请求报文的特点:

请求报文的第一行“请求行”只有三个内容,即方法,请求资源的URL,以及HTTP的版本。

一些常用的方法如下图所示:

下面是HTTP请求报文的开始行,在GET后面有一个空格,接着是某个完整的URL,其后面又有一个空格,最后是HTTP/1.1

GET http://www.xyz.edu.cn/dir/index.htm HTTP/1.1

 完整的HTTP请求报文:

在请求行使用了相对 URL(即省略了主机的域名)是因为下面的首部行(第2行)给出了主机的域名。第3行是告诉服务器不使用持续连接,表示浏览器希望服务器在传送完所请求的对象后即关闭 TCP 连接。这个请求报文没有实体主体。

响应报文的特点:

每一个请求报文发出后,都能收到一个响应报文。响应报文的第一行就是状态行。

状态行包括三项内容,即HTTP 的版本、状态码,以及解释状态码的简单短语。

状态码(Status-Code)都是三位数字的,分为5大类,原先有33种[RFC 2616],后来又增加了几种[RFC6585,建议标准]。这5大类的状态码都是以不同的数字开头的:

1xx表示通知信息,如请求收到了或正在进行处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成请求还必须采取进一步的行动。

4xx表示客户的差错,如请求中有错误的语法或不能完成。

5xx表示服务器的差错,如服务器失效无法完成请求。

下面三种状态行在响应报文中是经常见到的:

HTTP/1.1 202 Accepted        {接受}
HTTP/1.1 400 Bad Request        {错误的请求}
HTTP/1.1 404 Not Found        {找不到}

若请求的网页从 http://www.ee.xyz.edu/index.html转移到了一个新的地址,则响应报文的状态行和一个首部行就是下面的形式:

Cookie: 

Cookie的工作原理:

当用户A 浏览某个使用Cookie 的网站时,该网站的服务器就为A产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。接着在给A的HTTP响应报文中添加一个叫作 Set-cookie 的首部行。这里的“首部字段名”就是“Set-cookie”,而后面的“值”就是赋予该用户的“识别码”。例如这个首部行是这样的:

Set-cookie:31d4d96e407aad42

当A收到这个响应时,其浏览器就在它管理的特定 Cookie 文件中添加一行,其中包括这个服务器的主机名和Set-cookie 后面给出的识别码。当A继续浏览这个网站时,每发送一个HTTP请求报文,其浏览器就会从其Cookie文件中取出这个网站的识别码,并放到HTTP请求报文的Cookie首部行中:

Cookie:31d4d96e407aad42

于是,这个网站就能够跟踪用户31dd96e407aad42(用户A)在该网站的活动。需要注意的是,服务器并不需要知道这个用户的真实姓名以及其他的信息。但服务器能够知道用户31d4d96e407aad42 在什么时间访问了哪些页面,以及访问这些页面的顺序。如果A是在网上购物,那么这个服务器可以为 A 维护一个所购物品的列表,使 A 在结束这次购物时可以一起付费。

如果A在几天后再次访问这个网站,那么他的浏览器会在其 HTTP 请求报文中继续使用首部行 Cookie:31d4d96e407aad42,而这个网站服务器根据 A 过去的访问记录可以向他推荐商品。如果A 已经在该网站登记过和使用过信用卡付费,那么这个网站就已经保存了A的姓名、电子邮件地址、信用卡号码等信息。这样,当 A 继续在该网站购物时,只要还使用同一个计算机上网,由于浏览器产生的 HTTP 请求报文中都携带了同样的 Cookie 首部行,服务器就可利用 Cookie 来验证出这是用户 A,因此以后A 在这个网站购物时就不"重新在键盘上输入姓名、信用卡号码等信息。这对顾客显然是很方便的。

尽管Cookie 能够简化用户网上购物的过程,但 Cookie 的使用一直引起很多争议。有人以为Cookie 会把计算机病毒带到用户的计算机中。其实这是对 Cookie 的误解。Cookie 只是一个小小的文本文件,不是计算机的可执行程序,因此不可能传播计算机病毒,也不可能用夹获取用户计算机硬盘中的信息。对于 Cookie 的另一个争议,是关于用户隐私的保护问题。例如,网站服务器知道了 A 的一些信息,就有可能把这些信息出卖给第三方。Cookie 还可用来收集用户在万维网网站上的行为。这些都属于用户个人的隐私。有些网站为了使顾客放心,就公开声明他们会保护顾客的隐私,绝对不会把顾客的识别码或个人信息出售或转移给其他厂商。

例如在Microsoft Edge浏览器中可以设置cookie,并且查看cookie。

万维网的文档:

静态文档:

静态文档在文档创作后,就存放在万维网的服务器中,在被用户浏览的过程中,内容不会被改变,用户每次读取的内容都是相同的。

超文本标记语言HTML

HTML语言是一种制作万维网页面的标准语言,他消除了不同计算机之间信息交流的障碍,但是HTML 不是应用层的协议,它只是万维网浏览器使用的一种语言。

•HTML 定义了许多用于排版的命令(即标签)。它把各种标签嵌入到万维网的页面中,构成了所谓的 HTML 文档,例如:

•HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。

•HTML 文档的后缀:.html 或 .htm。

可扩展标记语言XML

它和 HTML 很相似,但XML的设计宗旨是传输数据,而不是显示数据(HTML 是为了在浏览器上显示数据)。

XML用于标记电子文件,使其具有结构性的标记语言,可用来标记数据、定义数据类型。是一种允许用户对自己的标记语言进行定义的源语言。XML 是一种简单、与平台无关并被一泛采用的标准XML相对于HTML 的优点是它将用户界面与结构化数据分隔开来。这种数据与显示的分离使得集成来自不同源的数据成为可能。客户信息、订单、研究结果、账单付款、病历、目录数据及其他信息都可以转换为 XML。XML 不是要替换 HTML、而是对HTML的补充。XML 标记由文档的作者定义,并且是无限制的。HTML 标记则是预定义的:HTML作者只能使用当前 HTML 标准所支持的标记。

可扩展超文本标记语言 XHTML

XHTML是更为严格的HTML,是作为一种XML应用被重新定义的HTML,但是在实际开发中,由于xHTML语法比较复杂,需要花费更多时间和精力去书写和调试,因此在一些小型项目或者对标准要求不高的项目中,还是会选择HTML。

层叠样式表CSS

CSS是一种样式表语言,用于为 HTML 文档定义布局。CSS和HTML的区别在于,HTML用于结构化内容,而CSS用于格式化结构化的内容。例如:精确规定在浏览器上显示的字体、颜色、边距、高度、宽度、背景图像等。

动态文档:

动态文档(dynamicdocument)是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建的。当浏览器请求到达时,万维网服务器要运行另一个应用程序,并把控制转移到此应用程序。接着,该应用程序对浏览器发来的数据进行处理,并输出HTML格式的文档,万维网服务器把应用程序的输出作为对浏览器的响应。由于浏览器每次请求的响应都是临时生成的,因此用户通过动态文档所看到的内容是不断变化的,动态文档的主要优具有报告当前最新信息的能力。

例如,动态文档可用来报告股市行情、天气预报或民航情况等内容。但动态文档的创建难度比静态文档的高,因为动态文档的开发不是直接编写档本身,而是编写用于生成文档的应用程序,这就要求动态文档的开发人员必须会编程所编写的程序还要通过大范围的测试,以保证输入的有效性。

动态文档与静态文档的区别:

动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成法不同。而从浏览器的角度看,这两种文档并没有区别。动态文档和静态文档的内容都遵循 HTML 所规定的格式,浏览器仅根据在屏幕上看到的内容无法判定服务器送来的是哪一种文档,只有文档的开发者才知道。
要实现动态文档就必须在以下两个方面对万维网服务器的功能进行扩充:

(1)应增加另一个应用程序,用来处理浏览器发来的数据,并创建动态文档。

(2)应增加一个机制,用来使万维网服务器将浏览器发来的数据传送给这个应用程序,然后万维网服务器能够解释这个应用程序的输出,并向浏览器返回HTML文档。

下图是扩充了功能的万维网服务器。这里增加了一个机制,叫作通用网关接口CGI(Common Gateway Interface)。CGI是一种标准,它定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。

想更加详细的了解,可看:

http://t.csdnimg.cn/gCWNQ

活动万维网文档:

动态文档一旦建立,它所包含的信息内容也就固定下来而无法及时刷新屏幕。另外,像动画之类的显示效果,动态文档也无法提供。

有两种技术可用于浏览器屏幕显示的连续更新:

一种技术称为服务器推送(server push),这种技术是将所有的工作都交给服务器。服务器不断地运行与动态文档相关联的应用程序。定期更新信息,并发送更新过的文档。
尽管从用户的角度看,这样做可达到连续更新的目的,但这也有很大的缺点。首先,为了满足很多客户的请求,服务器就要运行很多服务器推送程序。这将造成过多的服务器开销。其次,服务器推送技术要求服务器为每一个浏览器客户维持一个不释放的 TCP连接随着TCP连接的数目增加,每一个连接所能分配到的网络带宽就下降,这就导致网络传输时延的增大。
另一种提供屏幕连续更新的技术是活动文档(active document)。这种技术是把所有的工作都转移给浏览器端。每当浏览器请求一个活动文档时,服务器就返回一段活动文档程序副本,使该程序副本在浏览器端运行。这时,活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。只要用户运行活动文档程序,活动文档的内容就可以连续地改变。由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高。
从传送的角度看,浏览器和服务器都把活动文档看成是静态文档。在服务器上的活动文档的内容是不变的,这点和动态文档是不同的。浏览器可在本地缓存一份活动文档的副本。活动文档还可处理成压缩形式,以便于存储和传送。另一点要注意的是,活动文档本身并不包括其运行所需的全部软件,大部分的支持软件是事先存放在浏览器中的。

搜索引擎:

垂直搜索引擎:

针对某一特定领域、特定人群或某一特定需求提供搜索服务。也是提供关键字来进行搜索,但被放到一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等,目前热门的垂直搜索行业有: 购物、旅游、汽车、求职、房产等。

元搜索引擎:

把用户提交的检索请求发送到多个独立的搜索引擎上去搜索,并把检索结果集中统一处理,以统一的格式提供给用户,因此是搜索引擎之上的搜索引擎。主要精力放在提高搜索速度、智能化处理搜索结果、个性化搜索功能的设置和用户检索界面的友好性上。其查全率和查准率都比较高。

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

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

相关文章

eNSP小实验---(简单混合)

实验目的&#xff1a;实现vlan10 vlan20 172网段用户互访 1.拓扑图 2.配置 PC1 其它同理 SW4 <Huawei> <Huawei>u t m Info: Current terminal monitor is off. <Huawei>sys <Huawei>sys Enter system view, return user view with CtrlZ. [Hua…

idea第一次提交到git(码云)

1.先创建一个仓库 2.将idea和仓库地址绑定 2.将idea和仓库地址绑定

升华 RabbitMQ:解锁一致性哈希交换机的奥秘【RabbitMQ 十】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 升华 RabbitMQ&#xff1a;解锁一致性哈希交换机的奥秘【RabbitMQ 十】 前言第一&#xff1a;该插件需求为什么需要一种更智能的消息路由方式&#xff1f;一致性哈希的基本概念&#xff1a; 第二&…

Vue学习计划-Vue2--VueCLi(七)nextTick、、浏览器本地缓存、脚手架配置代理

1. nextTick 语法&#xff1a; this.$nextTick(回调函数)作用&#xff1a;在下一次DOM更新结束后执行其指定的回调什么时候用&#xff1a; 当改变数据后&#xff0c;要基于更新后的新DOM进行某些操作时&#xff0c;要在nextTick所指定的回调函数中执行 **举个栗子&#xff1a;…

nodejs+vue+微信小程序+python+PHP运动项目推荐系统-计算机毕业设计推荐

运动项目推荐系统的整体架构确定以后&#xff0c;再来看运动项目推荐系统的主要功能模块图。整体的功能模块包括前台和后台&#xff0c;前台只要实现了注册用户功能&#xff0c;主要的页面&#xff0c;包括首页&#xff0c;体育资讯&#xff0c;体育项目&#xff0c;公告信息等…

机器学习 高维数据可视化:t-SNE 降维算法

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

NSSCTF靶场练习[HUBUCTF 2022 新生赛]

[HUBUCTF 2022 新生赛]simple_RE 签到题 一个base64编码&#xff0c;自定义了码表、 [HUBUCTF 2022 新生赛]ezPython py逆向&#xff0c;用在线网站反编译一下 先解一次base64&#xff0c;再解一次base58 接着再把 password转换成 bytes的形式做一次md5加密就好 from Crypto…

基于ASF-YOLO融合空间特征和尺度特征的新型注意力尺度序列融合模型开发构建医学场景下细胞分割检测识别系统,以【BCC、DSB2018数据集为基准】

作者提出了一种新的基于注意尺度序列融合的YOLO框架&#xff08;ASF-YOLO&#xff09;&#xff0c;该框架结合了空间和尺度特征&#xff0c;实现了准确快速的细胞实例分割。基于YOLO分割框架&#xff0c;我们使用尺度序列特征融合&#xff08;SSFF&#xff09;模块来增强网络的…

【Java代码审计】XSS篇

【Java代码审计】XSS篇 1.Java中XSS常见触发位置2.反射型XSS3.存储型XSS4.XSS漏洞修复 1.Java中XSS常见触发位置 XSS漏洞产生后必然会有相关的输入/输出&#xff0c;因此我们只需快速找到这些输入/输出点&#xff0c;即可快速地进行跟踪发现漏洞。输入在Java中通常使用“reque…

基于Java SSM框架实现疫情居家办公OA系统项目【项目源码+论文说明】

基于java的SSM框架实现疫情居家办公OA系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识…

基于循环神经网络长短时记忆(RNN-LSTM)的大豆土壤水分预测模型的建立

Development of a Soil Moisture Prediction Model Based on Recurrent Neural Network Long Short-Term Memory in Soybean Cultivation 1、介绍2、方法2.1 数据获取2.2.用于预测土壤湿度的 LSTM 模型2.3.土壤水分预测的RNN-LSTM模型的建立条件2.4.预测土壤水分的RNN-LSTM模型…

微信小程序置顶导航,替代原生导航栏

效果图&#xff1a; 思路&#xff1a;Navigation是小程序的顶部导航组件&#xff0c;当页面配置navigationStyle设置为custom的时候可以使用此组件替代原生导航栏&#xff0c;wx.getSystemInfoSync获取可使用窗口高度 wxml代码&#xff1a; <!-- 头部 --> <view cla…

【docker 】Compose 使用介绍

Docker Compose Docker Compose文档 Docker Compose GitHub地址 Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose&#xff0c;您可以使用 YML 文件来配置应用程序需要的所有服务。然后&#xff0c;使用一个命令&#xff0c;就可以从 YML 文件配…

在React中实现好看的动画Framer Motion(案例:跨DOM元素平滑过渡)

前言 介绍 Framer Motion 是一个适用于 React 网页开发的动画库&#xff0c;它可以让开发者轻松地在他们的项目中添加复杂和高性能的动画效果。该库提供了一整套针对 React 组件的动画、过渡和手势处理功能&#xff0c;使得通过声明式的 API 来创建动画变得简单直观。 接下来…

modbus 通信协议介绍与我的测试经验分享

1、简介 Modbus 协议是一种通信协议&#xff0c;用于工业自动化系统中的设备间通信。该协议最初由 Modicon 公司开发&#xff0c;并于 1979 年发布。 Modbus 协议通过串行通信格式进行通信&#xff0c;在物理层上支持 RS-232、RS-422 和 RS-485 等多种通信方式。在协议层面&am…

YashanDB 携智慧政务方案亮相数字政府建设与数字湾区发展成果博览会

由广东省人民政府主办的第二届数字政府建设峰会暨数字湾区发展成果博览会于 12月8日-10日在广州举办。作为数字政府、智慧城市建设的核心支撑力量&#xff0c;深算院携单机/主备、共享集群、空间数据库等 YashanDB系列产品亮相本次博览会&#xff0c;展示最新的研发成果、场景应…

spring6 基于xml自动装配

目录结构 代码 UserContronller.java package bean.auto.controller;import bean.auto.service.UserService; import bean.auto.service.UserServiceImpl;public class UserContronller {private UserService userService;public void setUserService(UserService userServ…

通过“待办事项列表项目”快速学习Pyqt5的一些特性

Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图&#xff08;Item View&#xff09; 快速弄懂Pyqt5的4种项目部件&#xff08;Item Widget&#xff09; 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…

持续集成交付CICD:Jenkins流水线操作Harbor仓库

目录 一、实验 1.Jenkins主节点安装Docker 2.Jenkins主节点安装Harbor 3.Jenkins从节点安装Docker 4.Jenkins流水线操作Harbor仓库 二、问题 1.Jenkins主节点登录Harbor仓库报错 2.Jenkins流水线里从节点操作docker报错 3.Jenkins流水线里从节点远程登录Harbor仓库报错…

西南科技大学数据库实验二(表数据插入、修改和删除)

一、实验目的 &#xff08;1&#xff09;学会用SQL语句对数据库进行插入、修改和删除数据操作 &#xff08;2&#xff09;掌握insert、update、delete命令实现对表数据插入、修改和删除等更新操作。 二、实验任务 创建数据库&#xff0c;并创建Employees表、Departments表和…