话说~~ HTTP协议请求的工作流程 (Web服务请求过程)最细详解

news2024/12/28 6:00:45

目录

文章导入 : 

概述 : 

详解过程   : 

DNS域名解析 : 

          DNS 域名解析过程分析 : 

TCP连接搭建  :

               等待TCP队列

               建立TCP连接

发起 HTTP 请求  : 

   #    哪是如何进行 HTTP 请求的呢 ??

服务器响应 HTTP 请求  :

返回请求  :

 浏览器解析  : 

 浏览器进行页面渲染 :

服务器关闭 TCP 连接  : 

 总结 : 


文章导入 : 

      本文呢~ 您只看标题就晓得了文章内容,没错,是关于 Web服务篇--Http 协议的内容 。

 

      咱直接开门见山 ,您平时上网,逛网页那是必不可少的了; 

      您肯定有过下面操作 : 在浏览器地址栏里输入  www.baidu.com  ,然后页面就跳转到 您所需

      要的页面。

      那换言之,您在地址栏里输入内容,这个简简单单的操作能够执行,以至于给您带来您想要的

      网页页面呈现在眼前, 这个操作的背后就是我们要讲的内容  ~!!

        ===>>>

              这中间发生的过程,这 您上网,打开浏览器,网页从无到有的过程即是 文章核心~!!

概述 : 

        

*  终端客户在 Web 浏览器地址栏 输入 访问地址 ( eg : http://www.ceshi.com:80/index.html)

*  Web 浏览器请求 DNS 服务器把域名 www.ceshi.com 解析成 Web 服务器的 IP 地址   

*  Web 浏览器 将端口号( 默认是 80 ) 从访问地址 URL 中解析出来 

*  Web 浏览器通过解析后的IP 地址 及端口号 与 Web 服务器之间建立一条 TCP 连接 

*  建立 TCP 连接后,Web 浏览器向 Web 服务器发送一条 HTTP 请求报文

*  Web 服务器响应并读取浏览器的请求信息,然后返回一条 HTTP 响应报文 

* Web 服务器关闭 HTTP 连接,关闭 TCP 连接,Web浏览器显示访问的网站内容 到 屏幕上 ~!

详解过程   : 

      您在浏览器地址栏输入 域名( 网址 )

     上面这个简单的操作,为了更好的理解其背后的原因,我们就得把 DNS域名解析服务 再掰扯掰

     扯了~!

     

DNS域名解析 : 

     那你在浏览器地址栏输入了一个 域名( 网址 ),那浏览器接受到后,它怎么弄呢 ? 

     且听咱家给你分析分析 

     直接告诉你,浏览器(也即 计算机 )一看你输入的东东( 网址 ),

     浏览器直接懵逼,这是啥啊? ?  浏览器直接一个蒙圈,恩??  问我浏览器为啥懵逼啊??

     ===>>>

                来来来,我且问你,你输入的那些 域名 ( 网址 ),你肯定知道是啥意思,

                www.baidu.com,那势必是百度的网站嘛,你光看那网址的表面意思就直接清楚了!

                是啊 ~! 当然清楚,这话没错~!  你一看这域名你知道是 百度,我也知道是百度,

                张三肯定也知道, 那浏览器它知不知道呢 ????  

                它是不知道的~!!!!     

                我们最早学计算机的时候,就清楚,这些计算机 ,机器,它们是压根就读不懂人话的,

                它们喜欢什么 ??  

                ===>>>

                           它们喜欢 二进制 ~!!   是数字 ~!!  是 01 ~!!  

                ===>>> 

                           诶 ? 这问题不就来了 , 你明明给浏览器地址栏输入的是 www.baidu.com 

                           那也不是 数字啊??  那为啥 浏览器 还能知道他要做啥呢?? 

                           当你发现这个矛盾的时候, DNS域名解析服务 就该登场了 ~!! 

                           因为 DNS 就是解决这个问题的~!!!!  

             那根据上面所述,您在清楚了这个问题的矛盾点之后,您觉得这个矛盾应该怎么解决呢?

             我的想法是 : 

                                 既然,浏览器要的是数字,你地址栏输入的内容,它有没有对应的数字呢?

                                 废话~!!  当然有了, 除了域名,您是不是应该还清楚一个概念叫做 IP 啊?

                                 ===>>>

                                 当然知道了, IP地址 谁不知道啊????  

                                 那不就得了,你所输入的 域名 ( 网址 ) 它对应的 IP 地址是多少啊 ?? 

                                 ===>>>

                                 那怎么着??  啥意思 ??  是让您在地址栏输入 IP 地址嘛 ??? 

                                 非也~!! 不是 ,那啥意思 ??? 

                                 ===>>>

                                 您这么想,首先,您知道 www.baidu.com  对应的 IP 地址是多少嘛??

                                 其次,还有一个问题就是 ,

                                 那全世界就只有 www.baidu.com 这一个网址嘛 ?? 

                                全世界这么多 网址,数不清的网址,啥意思 ??? 

                                 我还得一个一个 记它们网址对应的 IP  ???  

                                 这不纯纯胡扯呢嘛 ~!!!!! 

                    ( 没错,我要是在浏览器输入 IP - 数字, 浏览器是轻松了,那我呢?累死我嘛? ) 

                      ===>>> 

                                所以,我们说,面对这个矛盾,这时候,DNS 服务就登场了,

                                DNS服务,它的全称是 DNS域名解析服务 ,就是解析您在浏览器地址栏输入

                                的内容( 即你输入的那些域名-网址 )

                                那既然是解析,那解析成什么呢 ??

                               ===>>> 

                                              即解析成 浏览器(计算机) 能够读懂的数字,也即 IP 地址。

                                              DNS服务(负责把域名和IP地址做 一 一 映射关系)

                                              这不就正好解决了 ‘ 矛盾 ’   

          DNS 域名解析过程分析 : 

          浏览器首先看一下自己的DNS缓存里有没有(缓存时间比较短,大概只有1分钟,且只能容

          纳1000条缓存)

         如果没有就向操作系统的DNS缓存要,还没有就检查本机域名解析文件 hosts

       

         在前面三个过程都没获取到的情况下,就会向 DNS 服务器进行查询

         浏览器就会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器(一般是电信运营

         商提供的,也可以使用像Google提供的DNS服务器)发起域名解析请求(通过的是UDP协议

         向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供

         给我们该域名的IP地址)

          下面,结合图示,来分析整个 DNS 服务的过程 : 

           

 

                   

                    

  1. 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
  2. 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我www.server.com的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。
  3. 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址,你去问问它吧。”
  4. 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”
  5. 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
  6. 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
  7. 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
  8. 本地 DNS 再将 IP 地址返回客户端。 

         如此,浏览器便得到了,您要访问的网页的 IP 地址。

         OK ,那现在我们已经拿到了 要访问网页的 IP 地址了,那我们是不是直接就可以浏览到 网

         页里的内容了 ??

         ===>>> 

               答案是否定的,因为,现在才只是 Web服务往里长征的第一步 ~!!!!

         ===>>> 

                那现在拿到 IP 后,还要干嘛啊 ?? 

                现在,只是拿到了 IP , 我们本篇主要的核心 -- HTTP协议  都还没露面呢~!!!

                所以,我们接下来的工作就要为 HTTP 协议做准备了 ~!!

首先,来理一下逻辑思绪 

       ===>>> 

                我们为什么要进行 HTTP 协议 ,是因为,浏览器 要和 Web服务器 进行沟通

                浏览器要向Web服务器进行资源索取,

               而要进行资源索取就必须得两个 端进行连接搭建

                也就是说  浏览器就得和Web服务器进行 连接沟通 

               只有 浏览器和 Web 服务器 进行了 连接沟通 ,你浏览器才可以申请到 你想要访问网站

               的信息, 你才可以浏览 你想要浏览的页面 ( 才能呈现出来 )

               

               而  HTTP 网络请求进行的第一步就是浏览器和服务器 建立TCP连接  ,

            

              所以 在网络请求之前,我们需要先看看 HTTP 和 TCP 两个协议的关系,

              因为浏览器使用 HTTP 协议作为 应用层协议,用来封装请求的文本信息;

             并使用  TCP/IP 作传输层协议将它发到网络上,所以 在 HTTP 协议开始工作之前,浏览器

             需要通过 TCP 与服务器建立连接,也就是说 HTTP 的内容是通过 TCP 的传输数据阶段来

             实现的~!!

TCP连接搭建  :

              那现在就是,我们要进行 TCP连接的搭建

              ===>>>

                        TCP 连接的第一步 就是要准备 IP地址  和  端口号 ~!!

                        显然, IP 地址 我们已经通过 DNS域名解析服务获取到了 

                        那端口号的获取 ???

                        ===>>>

                                      一般情况下,我们是通过 URL 来获取端口号的 ~!

                                      ( URL 就是在浏览器地址栏输入的内容,但大多数情况下,我们输入的都

                                          URL 的简写,就只输入了 域名,没有连着 端口号一起输入)

                                        所以,如果 URL 没有指明 端口号的情况下, 端口号的获取是和协议有

                                        关的, http 协议对应的端口号默认就是 80 端口,

                                        https 协议对应的端口号 是 443 端口 。

               等待TCP队列

               既然IP地址和端口准备好了,那么下一步是不是可以建立TCP连接了呢?

              答案是“不一定可以”。Chrome有个机制,同一个域名同时最多只能建立6个TCP连接,如

             果在同一个域名下同时有10个请求发生,那么其中4个请求会进入排队等待状态,直至进

             行中的请求完成。

             当然,如果当前请求数量少于6,会直接进入下一步,建立TCP连接。

               建立TCP连接

               排队等待结束之后,终于可以快乐地和服务器握手了,在HTTP工作开始之前,浏览器通

               过TCP与服务器建立连接。


              

                            

               首先,发送方会发送连接请求,带上SYN = 1 seq= x的字段信息,此时发送方状态为同

               步已发送。其次,接收方接受请求后,回复连接请求,带上SYN = 1 ACK = 1 seq = y

    ack = x + 1的字段信息,此时接收方的状态为同步已接收

              最后,发送方接受响应后,回复带上ACK = 1 seq = x + 1 ack = y + 1的字段信息,

              时,发送方的状态为建立连接状态,而接收方的状态得等发送方这时的回复收到后再转为

              建立连接。

              ( 上面整个表述的过程就是我们经常说的  三次握手 ~!!!)

               此时的状态即是  TCP 连接建立 ,浏览器与服务端 可以进行 数据传输了~!!!!

               至此 ,从最开始 到目前为止,我们所有的工作都是为 HTTP 协议做的准备 ~!!

               也即是说,从现在开始,我们才真正开始进行 HTTP 协议服务~!!!!!!

发起 HTTP 请求  : 

       #   我们现在建立了 TCP连接,即是说 浏览器和服务端可以进行通信 ( 数据传输 );

            HTTP 协议中的数据正是在这个通信过程中传输的。

           

   #    哪是如何进行 HTTP 请求的呢 ??

            首先浏览器会向服务器发送请求行,

            它包括了请求方法请求URI(Uniform Resource Identifier)和HTTP版本协议

            发送请求行,就是告诉服务器浏览器需要什么资源,最常用的请求方法是Get。比如,直接

            在浏览器地址栏键入极客时间的域名(http://time.geekbang.org),这就是告诉服务器要

            Get它的首页资源。

           另外一个常用的请求方法是POST,它用于发送一些数据给服务器,比如登录一个网站,就

           需要通过POST方法把用户信息发送给服务器。如果使用POST方法,那么浏览器还要准备

           数据给服务器,这里准备的数据是通过请求体来发送。

           

           在浏览器发送请求行命令之后,还要以请求头形式发送其他一些信息,把浏览器的一些基础

           信息告诉服务器。比如包含了浏览器所使用的操作系统、浏览器内核等信息,以及当前请求

           的域名信息、浏览器端的Cookie信息,等等。

            

               结合上图就可以理解  浏览器是如何发送请求信息给服务器的。

                

               至此, 浏览器到 Web服务器 发送的 HTTP 请求,就到了 Web服务器端 ~!!

               这是 我们整个 Web服务的前半部分,也是 HTTP 服务的前半部分~!!

               接下来就到了,Web服务器 处理 这 HTTP 请求后的事情了 ~!!

               Web服务器 处理完后,还需要再 返回给 浏览器~!!!!

服务器响应 HTTP 请求  :

           接下来,Web服务器则会根据 浏览器发送的请求信息来准备数据 ~!

返回请求  :

             首先服务器会返回响应行包括协议版本和状态码。 

             但并不是所有的请求都可以被服务器处理的,那么一些无法处理或者处理出错的信息,怎

             么办呢?服务器会通过请求行的状态码来告诉浏览器它的处理结果。

             比如 :

             ===>>>

                        最常用的状态码是200,表示处理成功;

                        如果没有找到页面,则会返回404;

              常见状态码 : 

              

              随后,正如浏览器会随同请求发送请求头一样,服务器也会随同响应向浏览器发送响应

             头。响应头包含了服务器自身的一些信息,比如服务器生成返回数据的时间、返回的数据

             类型(JSON、HTML、流媒体等类型),以及服务器要在客户端保存的Cookie等信息。

             发送完响应头后,服务器就可以继续发送响应体的数据,通常,响应体就包含了HTML的

             实际内容。

浏览器解析  : 

            浏览器拿到index.html文件后,就开始解析其中的html代码,遇到js/css/image等静态资源

            时,就向服务器端去请求下载(会使用多线程下载,每个浏览器的线程数不一样),这个

           时候就用上keep-alive特性了,建立一次HTTP连接,可以请求多个资源,下载资源的顺序

           就是按照代码里的顺序,但是由于每个资源大小不一样,而浏览器又多线程请求请求资源。

            浏览器在请求静态资源时(在未过期的情况下),向服务器端发起一个http请求(询问自

            从上一次修改时间到现在有没有对资源进行修改),如果服务器端返回304状态码(告诉

            浏览器服务器端没有修改),那么浏览器会直接读取本地的该资源的缓存文件。

             

 浏览器进行页面渲染

        最后,浏览器利用自己内部的工作机制,把请求的静态资源和html代码进行渲染,渲染之后

        呈现给用户,浏览器是一个边解析边渲染的过程。

      首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成

      后,浏览器开始布局渲染树并将其绘制到屏幕上。

      这个过程比较复杂,涉及到两个概念: reflow(回流)和repain(重绘)。DOM节点中的各个元素都

      是以盒模型的形式存在,这些都需要浏览器去计算其位置和大小等,这个过程称为relow;当盒

     模型的位置,大小以及其他属性,如颜色,字体,等确定下来之后,浏览器便开始绘制内容,这个

     过程称为repain。

    页面在首次加载时必然会经历reflow和repain。reflow和repain过程是非常消耗性能的,尤其是在

    移动设备上,它会破坏用户体验,有时会造成页面卡顿。所以我们应该尽可能少的减少reflow和

    repain。

  JS的解析是由浏览器中的JS解析引擎完成的。JS是单线程运行,JS有可能修改DOM结构,意味

  着JS执行完成前,后续所有资源的下载是没有必要的,所以JS是单线程,会阻塞后续资源下载。

  

服务器关闭 TCP 连接  : 

           通常情况下,一旦服务器向客户端返回了请求数据,它就要关闭 TCP 连接。不过如果浏览

           器或者服务器在其头信息中加入了:

Connection:Keep-Alive 

           那么TCP连接在发送后将仍然保持打开状态,这样浏览器就可以继续通过同一个TCP连接发

           送请求。保持TCP连接可以省去下次请求时需要建立连接的时间,提升资源加载速度。比

           如,一个Web页面中内嵌的图片就都来自同一个Web站点,如果初始化了一个持久连接,

           你就可以复用该连接,以请求其他资源,而不需要重新再建立新的TCP连接。

           那么,关于 TCP 连接的关闭 ,我们需要讲一点 : 

           ===>>>            

                           关闭TCP连接就需要进行四次挥手了。

                           中断连接端可以是客户端,也可以是服务器端。

                           

                               上示即为 四次挥手 的过程 ~!!!

                               上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动

                               关闭的情况,也是通过四次握手。

                               当 TCP 连接断开后,自此一次完整的HTTP事务宣告完成。

 总结 : 

               我们可以以一张图来 大致解释整个过程 : 

               

 

                               

                               至此,我们整个 Web服务响应的过程就介绍完毕了~!!!!

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

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

相关文章

实验架构的部署

目录 实验要求 实验环境 1、部署静态页面 2、部署负载均衡 3、搭建动态网页 4、 nginx反向代理 5、部署NFS 7、mysql 安装mysql 安装mha 准备主从复制 开启mha 架构的部署 实验要求 完成用户访问时虚拟IP由LVS负责高可用,静态交给nginx处理,…

【工具篇】Spring Boot 整合阿里云短信-SMS

短信服务-SMS 短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力,分为国内短信服务和国际/港澳台短信服务。通过 API/SDK、控制台调用短信发送能力,将指定信息发送至国内或境外手机号码。 应…

<数据结构>NO1.算法的时空复杂度

文章目录🚩算法效率算法复杂度🪅时间复杂度大O的渐进表示法常见的时间复杂度举例🪅空间复杂度大O的渐进表示法常见的空间复杂度举例🗯️常见复杂度对比🗯️🚩算法效率 算法是一个被设计好的,计…

python 读写txt方法

​​​​​​​ 1. Python支持在程序中读写 txt文件。这里有两种方式: 方式一:使用 python内置函数,该函数将一个字符串的长度转换为与这个字符串长度相关的值。 例如:" readme"("r)。 prin…

数据结构---递归转化为非递归

递归转化为非递归前言快速排序非递归归并排序的非递归前言 为什么要学习非递归写法呢? 当我们在用递归实现一个程序的时候,要考虑一个问题,这个程序用递归去实现,当数据量庞大的时候,会不会造成栈溢出(STACK OVERFLOW…

学习风`宇blog的websocket模块

文章目录后端代码引入依赖WebSocketConfigWebSocketServiceImpl分析tb_chat_record表WebSocketServiceImplChatConfigurator聊天消息ChatTypeEnumsWebsocketMessageDTO后端 代码 引入依赖 仅需引入以下依赖 <!-- websocket依赖 --> <dependency><groupId>…

ACM8629 立体声50W/100W单声道I2S数字输入D类音频功放IC

概述 ACM8629 一款高度集成、高效率的双通道数字输入功放。供电电压范围在4.5V-26.4V,数字接口电源支持3.3V 。在4 欧负载&#xff0c;BTL模式下输出功率可以到250W1%THDN&#xff0c;在2欧负载&#xff0c;PBTL模式下单通道可以输出1100W 1%THDN. ACM8629采用新型PWM脉宽调制架…

全国青少年软件编程(Scratch)等级考试二级考试真题2023年3月——持续更新.....

一、单选题(共25题,共50分) 1. 小猫的程序如图所示,积木块的颜色与球的颜色一致。点击绿旗执行程序后,下列说法正确的是?( ) A.小猫一直在左右移动,嘴里一直说着“抓到了”。 B.小猫会碰到球,然后停止。 C.小猫一直在左右移动,嘴里一直说着“别跑” D.小猫会碰到球,…

2023MatherCup杯三人小队手搓!(C 题 电商物流网络包裹应急调运与结构优化问题)

一个不知名大学生&#xff0c;江湖人称菜狗original author: Jacky LiEmail : 3435673055qq.com Time of completion&#xff1a;2023.4.16 Last edited: 2023.4.16 实际完成时间&#xff1a;2023/4/17 0:52 Mathematical modeling Author: HandSome Wang、BigTall Hu、Jacky L…

一个Email简单高效处理.Net开源库

推荐一个可处理电子邮件消息开源库&#xff0c;可用于消息解析、消息创建、消息修改和消息发送等功能。 项目简介 这是一个基于C#开发的&#xff0c;针对MIME&#xff08;多用途邮件扩展&#xff09;消息创建与解析&#xff0c;该项目简单易用、可用于消息解析、消息创建、消…

【Pytorch】神经网络搭建

在之前我们学习了如何用Pytorch去导入我们的数据和数据集&#xff0c;并且对数据进行预处理。接下来我们就需要学习如何利用Pytorch去构建我们的神经网络了。 目录 基本网络框架Module搭建 卷积层 从conv2d方法了解原理 从Conv2d方法了解使用 池化层 填充层 非线性层 …

Node实现 Socket 通信

socket 通信流程 Socket通信&#xff0c;首先要知道 Socket 是什么&#xff0c;就是网络上的两个程序通过一个双向的通信连接实现数据的交换&#xff0c;这个连接的一端被称为 socket &#xff0c;举一个简单的例子就是两个人在线上进行聊天&#xff0c;即线上通信&#xff0c…

充电桩检测设备TK4860E交流充电桩检定装置

产品特点 充电桩检测设备内置5.28 kW单相交流负载&#xff0c;无需携带额外负载进行测试。 宽动态范围测量技术&#xff0c;避免充电桩输出波动引起的测量风险。 ms级电能刷新速度&#xff0c;减少充电桩与标准仪器在非同步累积电能过程中引入的误差&#xff0c;提高累积电能…

【C++11那些事儿(二)】

文章目录一、新的类功能1.1 默认成员函数1.2 强制生成默认函数的关键字default1.3 禁止生成默认函数的关键字delete二、lambda表达式2.1 语法2.2 捕捉列表说明2.3 函数对象与lambda表达式一、新的类功能 1.1 默认成员函数 原来C类中&#xff0c;有6个默认成员函数&#xff1a…

性能测试总结-根据工作经验总结还比较全面

性能测试总结性能测试理论性能测试的策略基准测试负载测试稳定性测试压力测试并发测试性能测试的指标响应时间并发数吞吐量资源指标性能测试流程性能测试工具JMeter基本使用元件构成线程组jmeter的分布式使用jmeter测试报告常用插件性能测试的计算1.根据请求数明细数据计算满足…

【MySQL】多表查询

文章目录&#x1f389;多表查询&#x1f388;3.1 内连接查询&#x1f388;3.2 外连接查询&#x1f388;3.3 子查询最后说一句&#x1f389;多表查询 &#x1f388;3.1 内连接查询 语法 -- 隐式内连接 SELECT 字段列表 FROM 表1,表2… WHERE 条件;-- 显示内连接 SELECT 字段列…

LeetCode 特训 ---- Week1

目录 LeetCode 特训 --- Week1 两数之和 最长回文子串 删除有序数组中的重复项 删除有序数组中的重复项Ⅱ 删除链表中的重复元素 移动0 旋转链表 分隔链表 快慢指针&#xff08;前后指针&#xff09;用的好&#xff0c;链表&#xff0c;数组起码轻松打十个。 LeetCode…

videoPictureInPicture,视频画中画播放初探

从Chrome 70版本开始video元素开始支持画中画播放&#xff0c;简单写个demo体验一下 简介 在触发画中画之后视频会始终在右下角悬浮&#xff0c;不论是否在当前标签页或者是浏览器是否最小化。 可以在chrome内看任意视频时点击控制条的画中画按钮即可。 API 文档&#xff1…

人工智能机器人技术概述

移动机器人是一种能够在其环境中移动的自主或半自主机器人系统&#xff0c;通常是通过轮子或履带进行移动。这些机器人旨在在各种环境中执行各种任务&#xff0c;包括探索、监视、检查、运输和操作&#xff0c;包括室内和室外空间、危险区域甚至其他星球。 移动机器人配备传感…

日常记录:天梯赛练习集L1-048 矩阵A乘以B

题目&#xff1a; 给定两个矩阵A和B&#xff0c;要求你计算它们的乘积矩阵AB。需要注意的是&#xff0c;只有规模匹配的矩阵才可以相乘。即若A有Ra​行、Ca​列&#xff0c;B有Rb​行、Cb​列&#xff0c;则只有Ca​与Rb​相等时&#xff0c;两个矩阵才能相乘。 输入格式&…