Java Web——HTTP协议

 

目录

1. HTTP协议概述

1.1. HTTP数据传输格式

1.2. HTTP协议特点

2. HTTP 1.0和HTTP 1.1

3. HTTP请求协议

3.1. GET方式请求协议

3.2. POST方式请求协议

3.3. GET请求和POST请求的区别

4. HTTP相应协议

4.1. 响应状态码


如果两个国家进行会晤需要遵守一定的礼节。所以,在浏览器与服务器的交互过程中也要遵守一定的规则,而这个规则就是HTTP协议(HyperText Transfer Protocol 超文本传输协议)

1. HTTP协议概述

HTTP协议是一种请求/响应模型。这种模型的基本工作流程是:

  1. 浏览器(或其他客户端)与服务器建立连接。这个连接可以通过TCP(传输控制协议)或UDP(用户数据报协议)建立,但大多数情况下,HTTP使用TCP连接。
  2. 浏览器向服务器发送HTTP请求。这个请求通常包含请求行(包含HTTP方法,如GET、POST等)、请求头部(包含关于请求的元数据,如User-Agent、Accept-Language等)、以及一个可选的请求主体(通常用于POST或PUT请求,包含要发送到服务器的数据)。
  3. 服务器接收到这个请求后,会处理请求,并生成一个HTTP响应。这个响应包含状态行(包含HTTP状态码,如200、404等)、响应头部(包含关于响应的元数据,如Content-Type、Set-Cookie等)、以及一个响应主体(包含实际的内容,如HTML文件、图片等)。
  4. 服务器将HTTP响应发送回浏览器。
  5. 浏览器接收到响应后,会解析响应并呈现给用户。

这种请求/响应模型是HTTP协议的基础,也是网页浏览、API调用等网络交互的基础。它使得客户端(如浏览器)能够向服务器请求资源,并接收服务器返回的资源。同时,由于HTTP是一种无状态的协议,每个请求都被视为独立的,这有助于提高网络的可伸缩性和性能。


1.1. HTTP数据传输格式

这里是我自己用springboot做的一个简单的请求处理类的测试结果

查看HTTP协议的数据传输格式,可以打开浏览器,点击F12打开开发者工具,点击Network来查看


HTTP请求的摘要信息

  1. 请求 URL: http://localhost:8080/hello - 这表示你的请求发送到了本地计算机上的8080端口,具体的路径是“/hello”。这通常是web服务器运行的位置,"/hello"可能是某个特定的web服务或应用程序。
  2. 请求方法: GET - GET是HTTP协议中的一种请求方法。GET请求用于请求指定的页面信息,并返回实体主体。GET方法是最常用的方法之一,通常用于从服务器获取数据。
  3. 状态代码: 200 OK - 状态代码是服务器返回的响应的一部分,表示请求的成功或失败。在这个例子中,"200 OK"表示请求成功,服务器已经成功地处理了你的GET请求。
  4. 远程地址: [::1]:8080 - 这是服务器的地址和端口号。在这里,"[::1]"是IPv6的本地回环地址,等同于IPv4中的"127.0.0.1",端口号是8080。这表示请求是从本地计算机发送到本地计算机的。
  5. 引用者策略: strict-origin-when-cross-origin - 这是一个Referrer策略,用于控制浏览器在发送跨域请求时如何处理引用者信息(即从哪里来到这个页面的信息)。"strict-origin-when-cross-origin"是一种较为严格的策略,它只在跨域请求的情况下发送引用者信息,并且只发送源信息(即协议、域名和端口),而不发送具体的路径信息。

服务器向浏览器发送的响应标头:

  1. Connection: keep-alive - 这个字段表示服务器希望客户端保持连接,以便在未来可以重用这个连接发送更多的请求。这样可以提高网站的加载速度,因为建立新连接的开销通常比重用现有连接要大。
  2. Content-Length: 12 - 这个字段表示响应主体的长度,单位是字节。在这个例子中,响应主体的长度是12字节。
  3. Content-Type: text/html;charset=UTF-8 - 这个字段表示响应主体的MIME类型,即响应主体的格式。在这个例子中,响应主体是HTML文档,字符集是UTF-8。这意味着响应主体包含的是用UTF-8编码的HTML代码。
  4. Date: Fri, 10 Nov 2023 03:44:54 GMT - 这个字段表示响应生成的日期和时间。在这个例子中,响应是在2023年11月10日的03:44:54 GMT生成的。
  5. Keep-Alive: timeout=60 - 这个字段是对于"Connection: keep-alive"的补充,表示服务器希望客户端在60秒的空闲时间后,才关闭保持的连接。如果在这60秒内,客户端有新的请求,它将使用这个已经存在的连接,而不是创建一个新的连接。

浏览器向服务器发送的请求标头:

它包含了浏览器或其他客户端在与服务器交互时发送的各种属性和配置信息。这些信息有助于服务器了解客户端的能力、偏好和请求细节,以便更好地响应客户端的请求。

  1. Accept: 客户端支持的内容类型,如 HTML、XML、图片等。这告诉服务器客户端可以处理和显示哪些类型的数据。
  2. Accept-Encoding: 客户端支持的内容编码,如 gzip、deflate 和 br。这允许服务器选择最佳的方式来压缩响应数据。
  3. Accept-Language: 客户端偏好的自然语言版本,如中文(zh-CN)和英文(en)。这用于国际化和本地化设置。
  4. Cache-Control: 客户端的缓存策略,如“max-age=0”表示客户端希望每次都重新获取数据,而不是从缓存中读取。
  5. Connection: 客户端的连接策略,如“keep-alive”表示客户端希望保持连接,以便后续请求。
  6. Cookie: 客户端存储的会话或持久性数据,通常用于身份验证和个性化设置。
  7. Host: 客户端请求的目标服务器地址和端口。
  8. Sec-Ch-Ua: 客户端的用户代理字符串,描述了浏览器的类型和版本。
  9. Sec-Ch-Ua-Mobile: 表示客户端是否为移动设备。
  10. Sec-Ch-Ua-Platform: 描述客户端运行的操作系统平台。
  11. Sec-Fetch-Dest: 请求的目标类型,如“document”表示请求的是一个文档。
  12. Sec-Fetch-Mode: 请求的模式,如“navigate”表示这是一个导航请求。
  13. Sec-Fetch-Site: 请求的来源类型,如“none”表示请求来自同一站点。
  14. Sec-Fetch-User: 表示请求是否与用户操作相关。
  15. Upgrade-Insecure-Requests: 表示客户端支持升级不安全的请求,通常用于将 HTTP 请求升级为 HTTPS。
  16. User-Agent: 客户端的用户代理字符串,通常包含浏览器类型、版本和操作系统信息。

这些信息对于开发人员和服务器管理员来说是很重要的,因为它们可以帮助理解和调试客户端与服务器之间的交互,确保内容的正确传送和显示,以及确保应用程序的正常运行。


1.2. HTTP协议特点

  1. 基于TCP协议:
    • HTTP使用TCP作为其传输层协议,确保数据可靠传输。
    • TCP保证数据按顺序到达,不会有丢失或重复。
    • 要使用HTTP通信,首先得确保TCP连接已建立。
  1. 基于请求-响应模型:
    • 客户端发出请求,服务器给予响应。
    • 每次请求都是独立的,不受其他请求影响。
    • 这种模型简单、明了,便于实现和扩展。
  1. 无状态协议:
    • 服务器处理完请求后,不会保留任何关于该请求的信息。
    • 每个请求对服务器来说都是新的,与前一个请求无关。
    • 这种设计让HTTP协议更容易扩展,但像身份验证这样的操作需要在每次请求中重新验证。

简而言之,HTTP依赖于TCP来确保数据的可靠传输,它遵循简单的请求-响应模型,并且是无状态的,这意味着服务器不保留请求之间的任何历史数据。


2. HTTP 1.0和HTTP 1.1

HTTP 1.0

  1. 连接方式:HTTP 1.0采用的是“非持久连接”。这意味着每次请求都需要与服务器建立一个新的TCP连接,请求处理完毕之后立即断开连接。这样的连接方式在处理大量请求时会造成一定的开销,因为每次连接都需要进行握手和挥手的过程。
  2. 请求管道化:在HTTP 1.0中,请求管道化是不被支持的。这意味着在同一TCP连接中,不能同时发送多个HTTP请求,每个请求都必须等待上一个请求处理完毕后才能发送。
  3. 缓存机制:HTTP 1.0的缓存机制相对简单,没有提供丰富的缓存控制选项。


HTTP 1.1

  1. 连接方式:与HTTP 1.0不同,HTTP 1.1默认采用“持久连接”(HTTP keep-alive)。持久连接会在一段时间内保持打开状态,允许在同一个TCP连接中发送多个HTTP请求和接收多个响应。这样的连接方式可以减少连接的建立和断开开销,提高传输效率。
  2. 请求管道化:HTTP 1.1支持请求管道化。这意味着在同一个TCP连接中,可以同时发送多个HTTP请求,而不需要等待每个请求的响应。这样可以减少请求的延迟,并提高整体的传输效率。
  3. 缓存机制:HTTP 1.1对缓存机制进行了增强。引入了一些新的请求和响应头字段,如Cache-Control、ETag等。这些字段提供了更精细的缓存控制,使得客户端可以更加智能地缓存资源,并减少不必要的网络请求。同时,这也改善了Web性能和减轻了服务器的负担


3. HTTP请求协议

HTTP协议主要分为请求协议和响应协议两部分。

请求协议:浏览器向服务器发送数据时使用的请求格式。它包括以下部分:

  1. 请求行:包括HTTP方法(如GET、POST、PUT、DELETE等)、请求的URI和HTTP版本。
  2. 请求头:包含关于请求的元数据,如浏览器类型、接受的数据类型等。
  3. 请求体:包含实际发送给服务器的数据,通常在POST或PUT请求中使用。

响应协议:服务器返回数据给浏览器时使用的响应格式。它包括以下部分:

  1. 响应行:包括HTTP版本、状态码(表示请求是成功还是失败)和原因短语(解释状态码)。
  2. 响应头:包含关于响应的元数据,如服务器类型、返回的数据类型等。
  3. 响应体:包含实际返回给浏览器的数据,如HTML文件、图片、JSON数据等。

在实际应用中,GET和POST是最常用的HTTP请求方法。

  • GET方法通常用于请求数据。当我们需要从服务器获取某些信息时,我们使用GET请求。例如,当你在浏览器中输入一个URL并按下回车时,你的浏览器就会向服务器发送一个GET请求。此外,GET请求也可以用于发送少量数据到服务器,但这些数据通常会被编码到URL中(查询字符串)。
  • POST方法通常用于提交数据。当你需要向服务器发送大量数据(比如上传文件)或者发送敏感数据时(例如,用户的密码),你会使用POST请求。与GET请求不同,POST请求的数据不会显示在URL中,而是包含在请求体中,这样更安全,也能发送更多的数据。

其他的HTTP方法(如PUT、DELETE、OPTIONS等)在某些特定的应用场景中也会用到,但是相对于GET和POST来说,它们的使用频率要低得多。


3.1. GET方式请求协议

以我刚开始的Springboot的hello例子

  • 请求行:HTTP请求中的第一行数据。
GET /hello HTTP/1.1
  1. 请求方法(HTTP Method):这个请求使用的是“GET”方法。GET方法通常用于请求从服务器检索特定信息或资源。
  2. 请求的资源(URI):请求的资源是“/hello”。这是服务器上的某个资源路径,它表示客户端希望获取服务器上“/hello”这个资源的内容。
  3. HTTP协议版本:这个请求使用的是“HTTP/1.1”版本。这意味着它遵循HTTP/1.1版本的规范和语义。

所以,综合这些信息,这个请求行的意思是:客户端使用HTTP/1.1协议,向服务器发送一个GET请求,希望获取服务器上“/hello”这个资源的内容。

  • 请求头 :第二行开始,格式为key: value形式 。
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
Cookie: Webstorm-8ace942c=eb2b103b-83d2-4a18-8252-b9f5dd1e9609
Host: localhost:8080
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0
sec-ch-ua: "Microsoft Edge";v="119", "Chromium";v="119", "Not?A_Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
  • Accept: 告诉服务器客户端可以处理哪些媒体类型。例如,text/html表示客户端可以处理HTML文档。这个头部的值是一个权重列表,允许客户端指定它的偏好。
  • Accept-Encoding: 客户端告诉服务器它可以接受哪些编码方式。在这里,客户端表示它可以处理gzip、deflate和br压缩。
  • Accept-Language: 客户端偏好的语言设置。例如,zh-CN表示中文(简体)。数字是权重值,表示偏好程度。
  • Cache-Control: 用于定义缓存行为。max-age=0表示客户端希望资源是新鲜的,不愿意接受缓存的资源。
  • Connection: 控制网络连接的持久性。keep-alive意味着客户端希望保持连接,以便发送多个请求。
  • Cookie: 发送到服务器的cookie。在这里,它发送了一个名为Webstorm-8ace942c的cookie。
  • Host: 服务器的主机名和端口号。在这里,目标是本地机器上的8080端口。
  • Sec-Fetch-: 这一系列头部是浏览器用来增强网站安全的,它们提供了关于请求的额外详细信息。
  • Sec-Fetch-Dest: 请求的目标类型。
  • Sec-Fetch-Mode: 请求的模式(如navigate、cors等)。
  • Sec-Fetch-Site: 请求与网站的关系(如同源、跨域等)。
  • Sec-Fetch-User: 表示请求是否与用户的操作有关。
  • Upgrade-Insecure-Requests: 表示客户端优先使用加密和更安全的协议。
  • User-Agent: 客户端的详细信息,通常包括浏览器类型、版本、操作系统等。这里表示的是一个基于Windows 10的Microsoft Edge浏览器。
  • sec-ch-ua: 是另一个表示客户端(尤其是Chromium浏览器)详细信息的头部。
  • 它提供了关于浏览器品牌、版本等信息。
  • 在这里,它表示这是一个Microsoft Edge浏览器,基于Chromium,并给出了版本号。
  • sec-ch-ua-mobile: 表示浏览器是否是移动设备上的浏览器。?0表示这不是一个移动设备的浏览器。
  • sec-ch-ua-platform: 表示客户端的操作系统平台。在这里,它是Windows。

服务端可以根据请求头中的内容来获取客户端的相关信息,这些信息可以帮助服务端处理不同的业务需求。通过解析请求头中的字段,服务端可以了解客户端的能力、偏好、身份验证状态以及其他上下文信息。这使得服务端能够根据客户端的特定需求来定制响应,并提供更好的用户体验。

例如,服务端可以根据User-Agent字段了解客户端所使用的浏览器类型和版本,从而可以针对不同的浏览器提供兼容性的内容和格式。如果服务端知道客户端支持特定的数据压缩算法,可以通过Accept-Encoding字段协商使用压缩传输,以减少网络带宽的消耗。

请求头中的Cookie字段可以用于识别客户端的身份,实现会话跟踪和个性化设置等。服务端可以通过读取Cookie值来恢复客户端之前的状态,例如购物车中的商品、登录状态等。

  • 请求体 :存储请求参数
    • GET请求的请求参数在请求行中,故不需要设置请求体

3.2. POST方式请求协议

示例:

POST请求示例,用于提交登录表单,其中包含用户名和密码

POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache

username=admin&password=123456
  1. 请求行
POST /login HTTP/1.1

方法:POST。表示这是一个提交数据或发送表单的请求。

路径:/login。这是请求的资源路径,表示客户端希望登录。

协议版本:HTTP/1.1。表示使用HTTP版本1.1的协议。

  1. 请求头
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache

Host:www.example.com。表示目标服务器的地址。

Content-Type:application/x-www-form-urlencoded。这是POST请求发送数据的格式,表示发送的数据是URL编码后的表单数据。

Cache-Control:no-cache。表示客户端不希望使用缓存,要求服务器返回最新的内容。

  1. 请求体
username=admin&password=123456

username=admin&password=123456。这是POST请求的实际数据,通常称为payload。在此示例中,我们发送了两个字段:用户名和密码。这些数据通常是不希望在URL中公开的,因此我们使用POST方法发送。


3.3. GET请求和POST请求的区别

区别方式

GET请求

POST请求

请求参数

请求参数在请求行中。例:/hello

请求参数在请求体中

请求参数长度

请求参数长度有限制(浏览器不同限制也不同)

请求参数长度没有限制

安全性

安全性低。原因:请求参数暴露在浏览器地址栏中。

安全性相对高

  • 请求参数:您正确地指出了GET请求的参数是附在URL之后的,并在请求行中显示,而POST请求的参数则是包含在请求体中。这是一个基本的,但非常重要的区别。
  • 请求参数长度:确实,GET请求的参数长度是有限制的,这是因为浏览器对URL的长度有限制。相反,POST请求的参数长度则没有这样的限制,因为它通过请求体发送数据,这使得POST更适合发送大量数据。
  • 安全性:这也是一个重要的区别。由于GET请求的参数暴露在URL中,因此它们会被保存在浏览器的历史记录、服务器日志等地方,这可能导致敏感信息的泄露。相比之下,POST请求的参数不会显示在URL中,因此相对更安全。

4. HTTP相应协议

与HTTP的请求一样,HTTP响应的数据也分为3部分:响应行响应头响应体


示例

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 123

<html>
  <head>
    <title>简单的HTTP响应</title>
  </head>
  <body>
    <h1>欢迎!</h1>
    <p>这是一个简单的HTTP响应。</p>
  </body>
</html>

  1. 响应行
HTTP/1.1 200 OK
    • 协议版本:HTTP/1.1。表示该响应使用HTTP/1.1协议。
    • 状态码:200。表示请求成功。
    • 原因短语:OK。对状态码的简单解释。

  1. 响应头
Content-Type: text/html; charset=UTF-8
Content-Length: 123
    • Content-Type:text/html; charset=UTF-8。指定响应正文的MIME类型,这里为HTML文档,并使用UTF-8字符集。
    • Content-Length:123。响应正文的长度,以字节为单位。

  1. 响应体
<html>
  <head>
    <title>简单的HTTP响应</title>
  </head>
  <body>
    <h1>欢迎!</h1>
    <p>这是一个简单的HTTP响应。</p>
  </body>
</html>

响应体包含了实际的HTML内容,即要展示给客户端的内容。在此示例中,它是一个简单的HTML文档,包含标题和段落。


注意:

上面讲到的HTTP请求协议和响应协议只是一个实例,并没有举例完全,实际开发中可能包含更多的响应头和更复杂的响应体内容,以实际为准。


4.1. 响应状态码

状态码分类

说明

1xx

响应中 --- 临时状态码。表示请求已经接受,告诉客户端应该继续请求或者如果已经完成则忽略

2xx

成功 --- 表示请求已经被成功接收,处理已完成

3xx

重定向 --- 重定向到其它地方,让客户端再发起一个请求以完成整个处理

4xx

客户端错误 --- 处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等

5xx

服务器端错误 --- 处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持等

但首先,要认识一下3个响应状态码,其余的可以放在后期在学:

  • 200 OK
    • 意义:表示客户端的请求成功,服务器已经成功地处理了请求。
    • 使用场景:无论是获取数据、提交表单还是其他操作,只要服务器正常处理并返回了预期的结果,都会使用这个状态码。
    • 客户端处理:通常,客户端在收到200 OK响应后会根据响应的内容更新页面或执行其他相关操作。
  • 404 Not Found
    • 意义:表示客户端请求的资源不存在。
    • 使用场景:当用户尝试访问一个不存在的页面或资源时,服务器会返回这个状态码。
    • 客户端处理:客户端在收到404响应后,通常会显示一个错误页面,告知用户请求的资源不存在。
  • 500 Internal Server Error
    • 意义:表示服务器端发生了一个不可预期的错误。
    • 使用场景:当服务器在尝试处理请求时遇到内部错误或异常时,会返回这个状态码。这通常表示服务器的程序或配置有问题。
    • 客户端处理:客户端在收到500响应时,通常会显示一个通用的错误页面,告知用户服务器发生了错误。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ConcurrentHashMap详解

要避免 HashMap 的线程安全问题&#xff0c;有多个解决方法&#xff0c;比如改用 HashTable 或者 Collections.synchronizedMap() 方法。 但是这两者都有一个问题&#xff0c;就是性能&#xff0c;无论读还是写&#xff0c;他们两个都会给整个集合加锁&#xff0c;导致同一时间…

顺序图——画法详解

百度百科的定义&#xff1a; 顺序图是将交互关系表示为一个二维图。纵向是时间轴&#xff0c;时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时&#xff0c;角色用一条虚线表示&#xff0c;当对象的过程处于激活状态时&…

逐步学习 Swagger enum:从入门到精通

enum 是 Swagger 规范中用来定义枚举类型的一种方式。它允许开发者在 API 文档中明确列出该接口的参数、返回值或请求体中可接受的枚举值。通过使用 Swagger enum&#xff0c;开发者可以更清晰地描述 API 的输入和输出&#xff0c;提高 API 文档的可读性和可维护性。 enum 使用…

ROS 多级tf坐标转换

题目 现有一移动机器人&#xff0c;该机器人的基坐标系为“base_link”&#xff0c;机器人包含3个子坐标系分别为“joint1”&#xff0c;“joint2”&#xff0c;“joint3”。 要求&#xff1a;利用多坐标转换&#xff0c;实现joint1下的坐标向joint2下的坐标转换&#xff0c;…

YOLOv8-seg改进:复现HIC-YOLOv5,HIC-YOLOv8-seg助力小目标分割

🚀🚀🚀本文改进:HIC-YOLOv8-seg:1)添加一个针对小物体的额外预测头,以提供更高分辨率的特征图2)在backbone和neck之间采用involution block来增加特征图的通道信息;3)在主干网末端加入 CBAM 的注意力机制; 🚀🚀🚀HIC-YOLOv8-seg小目标分割检测&复杂场景…

find和grep命令的简单使用

find和grep命令的简单使用 一、find例子--不同条件查找 二、grep正则表达式的简单说明例子--简单文本查找例子--结合管道进行查找 一、find find 命令在指定的目录下查找对应的文件。 find [path] [expression]● path 是要查找的目录路径&#xff0c;可以是一个目录或文件名…

Vue3-组合式API下的父传子和子传父

组合式API下的父传子 基本思想&#xff1a; 1.父组件中给子组件绑定组件 2.子组件内部通过props选项接收 const propsdefineProps({属性名:类型}) 由于script上写了setup&#xff0c;所以无法直接配置props选项&#xff0c;所以需要借助于“编译器宏”函数接收传递的数据 …

GPT4 Turbo 究竟更新了什么

GPT4 Turbo 究竟更新了什么 记忆力和上下文理解能力增强 现在的GPT4可以理解128K的文本&#xff0c;相当于几百页的内容&#xff0c;你的GPT4再也不会忘记你之前说的什么了&#xff0c;换句话说之前他只能记住一篇文章&#xff0c;而现在可以记住一整本书的内容了 API降价 输入…

基于FANUC工业机器人的坐标系转换、多视角拼接与三维重建

0.简介 总体任务&#xff1a;机械臂末端安装三维相机&#xff0c;绕着工件进行拍摄&#xff0c;并在计算机中将每次拍摄的点云合并在同一个坐标系下&#xff0c;从而获得更加完整全面的点云。机械臂&#xff1a;FANAUC相机&#xff1a;梅卡曼德技术方案&#xff1a;使用相机外…

零代码+分布式微服务架构打造新一代一站式服务集成平台

目 录 01 项目背景 02 普元ESB产品介绍 03 新版本功能特性 04 应用案例‍‍‍‍ 05 展望与发展 01 项目背景 企业在实现数字化转型的过程中&#xff0c;随着信息化程度的提高&#xff0c;越来越多的企业开始采用微服务架构来构建自己的业务系统,各种系统之间的集成、数据共享…

k8s上对Pod的管理部分详解

目录 一.Pod结构介绍 1.user container 2.pause 二.Pod工作形式介绍 1.自主式pod 2.控制器管理下的pod 三.对Pod的操作介绍 1.run/apply -f/create -f运行pod 2.get查看pod信息 3.exec操作运行中的pod &#xff08;1&#xff09;进入运行中的pod &#xff08;2&…

Linux RPM包安装、卸载和升级

我们以安装 apache 程序为例。因为后续章节还会介绍使用源码包的方式安装 apache 程序&#xff0c;读者可以直观地感受到源码包和 RPM 包的区别。 RPM包默认安装路径 通常情况下&#xff0c;RPM 包采用系统默认的安装路径&#xff0c;所有安装文件会按照类别分散安装到表 1 所…

阿里云付费用户破100万 用户规模亚洲最大

导读阿里巴巴集团公布2018财年第一季度财报&#xff0c;阿里云达到一个重要里程碑&#xff0c;云计算付费用户数量首次超过100万&#xff0c;成为亚洲首家达到百万级用户规模的云计算公司。同时&#xff0c;企业级市场被云计算人工智能等新技术全面激活&#xff0c;推动该季度营…

Stable Diffusion:最先进的文本生成图像模型

稳定扩散 生成式 AI 技术正在迅速发展&#xff0c;现在可以简单地根据文本输入生成文本和图像。Stable Diffusion 是一种文本到图像模型&#xff0c;使您能够创建逼真的应用程序。 扩散模型通过学习去除添加到真实图像中的噪声进行训练。这种降噪过程会产生逼真的图像。这些模…

【研究】Splunk 字段是否被加工过

1: 背景: 最近用户有个疑问,就是有些字段的输出有点问题,不确定是否被加工过。 2: 查找问题: index=abc sourcetype=def123 发现字段: city_shanghai 的输出可能有点问题。 3: 排查问题: 先去这个splunk search head cluster 的页面: server 的查找如下: 登入so1 s…

【Linux系统概念】

Linux系统概念 1 用户1.1 su和sudo1.1.1 /etc/sudoers 1.21.3 2345 1 用户 1.1 su和sudo 为什么会有su和sudo命令&#xff1f; 在实际工作当中需要在Linux不同用户之间进行切换。 root用户权限最高很多时候需要root用户才能执行一些关键命令。所以需要临时切换为root用户。工…

【C++】智能指针(一)

这篇文章介绍下C的智能指针&#xff0c;当然&#xff0c;可能没有你想的那么智能。 为什么需要智能指针1 void remodel(string& str) {string* ps new string(str);str *ps;return; }这里不讨论这个函数有没有意义&#xff0c;在这段代码中&#xff0c;很明显&#xff…

数据分析实战 | SVM算法——病例自动诊断分析

目录 一、数据分析及对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型应用及评价 一、数据分析及对象 CSV文件——“bc_data.csv” 数据集链接&#xff1a;https://download.csdn.net/download/m0_70452407/88…

Linux操作系统下对c语言程序的编译和执行过程gcc,编译链接过程

目录 1.gcc,g,gdb安装 2.gcc分布编译链接 3.编译链接过程 4.执行 4.1 如何执行 4.2 两步执行与一步执行 4.3 多文件的编译执行 1.gcc,g,gdb安装 命令行写gcc,g,gdb根据提示安装:sudo apt install gcc/g/gdb 2.gcc分布编译链接 (1)预编译: gcc -E main.c -o main.i (2)…

关于el-table+el-input+el-propover的封装

一、先放图片便于理解 需求&#xff1a; 1、el-input触发focus事件&#xff0c;弹出el-table(当然也可以为其添加搜索功能、分页) 2、el-table中的复选共能转化成单选共能 3、选择或取消的数据在el-input中动态显示 4、勾选数据后&#xff0c;因为分页过多&#xff0c;原先选好…