网站访问的基础-HTTP超文本传输协议

BS架构

浏览器Browser⬅➡服务器Server

浏览器和服务器之间通过 IP 地址进行通信,实现数据的请求和传输。

例如,当用户在浏览器中访问一个网站时,浏览器会根据用户输入的网址(通过 DNS 解析得到服务器 IP 地址)向服务器发送 HTTP 请求,服务器收到请求后进行处理,并将处理结果(如网页内容)返回给浏览器,浏览器再将这些内容呈现给用户。

BS 架构即浏览器 / 服务器架构(Browser/Server Architecture),以下是详细介绍:

一、BS 架构的基本原理

  1. 结构组成
    • 在 BS 架构中,客户端只需要安装有浏览器(如 Chrome、Firefox 等)即可访问服务器端的应用程序。用户通过浏览器向服务器发送请求,服务器处理请求后将处理结果返回给浏览器进行显示。
    • 服务器端通常包括 Web 服务器、应用服务器和数据库服务器。Web 服务器负责接收来自浏览器的 HTTP 请求,应用服务器处理业务逻辑,数据库服务器负责存储和管理数据。
  2. 工作流程
    • 当用户在浏览器中输入网址时,浏览器会向对应的 Web 服务器发送 HTTP 请求。例如,用户想要查看在线购物网站上的商品信息,浏览器会发送请求获取商品列表页面。
    • Web 服务器收到请求后,将请求转发给应用服务器。应用服务器根据请求内容进行业务逻辑处理。比如,对于用户查看商品列表的请求,应用服务器会从数据库服务器中查询相关商品信息。
    • 数据库服务器将查询到的商品数据返回给应用服务器,应用服务器对数据进行处理和组织后,将结果返回给 Web 服务器。
    • Web 服务器将最终的页面内容以 HTML 等格式返回给浏览器,浏览器对其进行解析和渲染,将商品列表页面呈现给用户。

二、BS 架构的优点

  1. 易于维护和升级
    • 因为应用程序的主要逻辑和数据都在服务器端,当需要对系统进行升级或维护时,只需要在服务器端进行操作即可,不需要对客户端进行逐个更新。例如,一个企业的办公自动化系统采用 BS 架构,当系统有新功能上线时,只要更新服务器端的程序,所有通过浏览器访问该系统的用户都可以立即使用新功能。
  2. 跨平台性
    • 只要客户端有浏览器,无论是 Windows、Mac OS、Linux 操作系统,还是移动设备上的 iOS、Android 系统,都可以访问服务器端的应用程序。比如,一个在线学习平台采用 BS 架构,学生可以使用台式电脑、笔记本电脑、平板电脑甚至手机,通过浏览器登录平台进行学习,无需考虑操作系统的兼容性问题。
  3. 成本低
    • 客户端不需要安装专门的软件,减少了软件的开发和分发成本。对于一些小型企业或创业公司来说,采用 BS 架构开发应用程序可以节省大量的成本。例如,一个小型电商公司开发自己的在线店铺系统,采用 BS 架构可以避免为不同客户端开发不同版本软件的麻烦和费用。

三、BS 架构的缺点

  1. 对服务器性能要求高
    • 所有的业务处理和数据存储都依赖服务器,当用户数量较多或者并发访问量较大时,服务器可能会面临较大的压力。例如,在电商平台的促销活动期间,大量用户同时访问服务器进行下单、查询等操作,可能会导致服务器响应缓慢甚至崩溃。
  2. 安全性问题
    • 由于数据都存储在服务器端,并且通过网络进行传输,存在数据泄露、网络攻击等安全风险。例如,如果服务器的安全防护措施不到位,黑客可能会通过网络攻击获取用户的个人信息和交易数据。
  3. 浏览器兼容性问题
    • 虽然浏览器都遵循一定的标准,但在实际应用中,不同浏览器对 HTML、CSS、JavaScript 等技术的实现可能存在差异,可能会导致页面显示或功能出现问题。例如,一些基于复杂 JavaScript 功能开发的应用程序,可能在某些较老版本的浏览器上无法正常运行。

什么是HTTP

传输协议定义了浏览器和客户端传输数据的格式

浏览器:request请求信息 ⬅➡ response响应信息:服务器

1.基于tcp/ip协议

2.默认端口为80

3.请求和响应一一对应

4.每次请求相互独立,是无状态协议

HTTP 即超文本传输协议(HyperText Transfer Protocol)。

一、HTTP 的定义和作用

  1. 定义
    • HTTP 是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是万维网(World Wide Web)数据通信的基础,用于在客户端(通常是浏览器)和服务器之间传输超文本(如 HTML 文件)等资源。
  2. 作用
    • 当用户在浏览器中输入网址并按下回车键时,浏览器就会通过 HTTP 协议向对应的网站服务器发送请求,请求获取网页内容、图片、脚本等资源。服务器收到请求后,根据请求内容查找相应的资源,并通过 HTTP 协议将这些资源返回给浏览器,浏览器再将这些资源解析并呈现给用户。

二、HTTP 的特点

  1. 无状态性
    • HTTP 是无状态的协议,这意味着服务器不会在不同的请求之间记住客户端的状态。例如,当用户第一次访问一个网站的页面并进行了一些操作(如登录),然后又访问了该网站的另一个页面时,服务器不会自动知道这两个请求是来自同一个用户,除非通过其他技术(如使用 Cookies 或会话管理技术)来维持状态。
  2. 基于请求 - 响应模式
    • HTTP 采用请求 - 响应的交互模式。客户端(浏览器)发起请求,请求中包含要获取的资源的信息(如 URL、请求方法等),服务器收到请求后进行处理,并返回响应。响应中包含请求的资源内容(如果请求成功)或者错误信息(如果请求失败)。

三、HTTP 的请求方法

  1. GET 方法
    • GET 方法用于从服务器获取资源。例如,当用户在浏览器中访问一个网页时,浏览器通常会使用 GET 方法向服务器请求该网页的内容。GET 请求可以在 URL 中附带参数,这些参数通常用于向服务器传递查询条件等信息。例如:http://www.example.com/search?keyword=apple,这里的keyword=apple就是 GET 请求的参数。
  2. POST 方法
    • POST 方法主要用于向服务器提交数据,例如用户在网站上进行注册、登录、提交表单等操作时,通常会使用 POST 方法将用户输入的数据发送给服务器。与 GET 方法不同,POST 请求的数据是放在请求体(Request Body)中传递给服务器的,而不是在 URL 中。
  3. 其他方法
    • 除了 GET 和 POST 方法外,HTTP 还有 PUT(用于向服务器上传资源)、DELETE(用于请求服务器删除资源)、HEAD(类似于 GET,但只获取资源的头部信息,不获取资源的实际内容)等请求方法,但这些方法在日常的网页浏览中使用相对较少。

四、HTTP 的版本

  1. HTTP/1.0
    • HTTP/1.0 是早期的 HTTP 版本,它规定了浏览器和服务器之间进行通信的基本规则。在 HTTP/1.0 中,每次 HTTP 请求 - 响应都会建立和关闭一个 TCP 连接,这种方式在频繁请求的情况下效率较低。
  2. HTTP/1.1
    • HTTP/1.1 对 HTTP/1.0 进行了改进,最主要的改进之一是支持持久连接(Persistent Connection),即一个 TCP 连接可以用于多次 HTTP 请求 - 响应,减少了频繁建立和关闭连接的开销,提高了网络通信效率。
  3. HTTP/2
    • HTTP/2 是 HTTP 协议的新一代版本,它在性能上有了很大的提升。HTTP/2 采用二进制分帧层(Binary Framing Layer)对数据进行封装和传输,支持多路复用(Multiplexing),可以在一个 TCP 连接上同时进行多个请求和响应的传输,进一步提高了网络利用率和性能。同时,HTTP/2 还支持服务器推送(Server Push),即服务器可以主动向客户端推送资源,减少客户端请求的延迟。

HTTP超文本传输协议

  1. HTTP 请求消息的结构

    • HTTP 请求消息由以下几个部分组成:
      • 请求行(Request Line):这是请求消息的第一行,包含请求方法、请求的资源路径和 HTTP 协议版本。例如:GET /index.html HTTP/1.1。其中,GET是请求方法,表示要从服务器获取资源;/index.html是请求的资源路径,即服务器上的目标文件或资源;HTTP/1.1是使用的 HTTP 协议版本。
      • 请求头部(Request Headers):在请求行之后,是一系列的请求头部信息。这些头部信息用于向服务器传递更多关于请求的细节。常见的请求头部有:
        • Host:指定请求的目标主机名。例如:Host: www.example.com,这是必须的头部,因为一个服务器可能托管多个域名的网站。
        • User - Agent:标识客户端的软件信息,如浏览器类型和版本。例如:User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36,这有助于服务器根据客户端的特性进行内容适配。
        • Accept:指定客户端能够接受的媒体类型。例如:Accept: text/html,application/xhtml+xml,application/xml;q = 0.9,image/avif,image/webp,image/apng,*/*;q = 0.8,application/signed - exchange;v = b3;q = 0.9,表示客户端希望接收的内容类型及其优先级。
        • Accept - Language:表明客户端可接受的自然语言。例如:Accept - Language: en - US,en;q = 0.9,表示优先接受美式英语,其次是其他英语类型。
        • Connection:用于控制是否保持连接。例如:Connection: keep - alive表示希望保持连接,以减少后续请求的连接建立时间。
      • 空行(Blank Line):空就是空,并不是没有,在请求头部之后,有一个空行,用于分隔请求头部和请求体(如果有)。
      • 请求体(Request Body):不是所有的请求都有请求体。只有在使用 POST、PUT 等请求方法且需要向服务器提交数据时才有请求体。例如,当用户在网站上提交表单时,表单数据就会放在请求体中。如果是 GET 请求,通常没有请求体。
  2. 常见的 HTTP 请求方法

    • GET
      • 用途:用于从服务器获取资源。这是最常见的请求方法,例如在浏览器中访问网页时,浏览器通常会使用 GET 请求来获取网页内容。
      • 特点:GET 请求的参数通常会附加在 URL 后面,以?开始,参数之间用&分隔。例如:http://www.example.com/search?keyword = apple&category = fruit,这里的keyword = applecategory = fruit就是 GET 请求的参数。由于参数在 URL 中,所以 GET 请求的数据是公开的,且有长度限制(因为 URL 长度有一定限制)。
    • POST
      • 用途:主要用于向服务器提交数据。例如,用户在网站上进行注册、登录、提交表单等操作时,通常会使用 POST 方法将用户输入的数据发送给服务器。
      • 特点:POST 请求的数据是放在请求体中的,相对 GET 请求更安全(因为数据不在 URL 中),且没有数据长度的严格限制(但实际上受服务器配置和性能的限制)。
    • PUT
      • 用途:用于向服务器上传资源,通常用于更新服务器上的现有资源。例如,在一些文件存储服务中,当用户要更新一个文件时,可以使用 PUT 请求将新文件上传到服务器替换旧文件。
    • DELETE
      • 用途:请求服务器删除指定的资源。例如,在一些在线存储系统中,用户可以使用 DELETE 请求删除自己存储的文件。

HTTP 请求消息通过这种结构化的方式,使得客户端能够准确地向服务器传达自己的请求意图和相关信息,以便服务器能够正确地处理和响应。

  1. Host

    • 定义与作用:Host 头部指定了请求的目标主机名。在互联网上,一个服务器可能会托管多个域名的网站。例如,一个服务器的 IP 地址为 192.168.1.1,它可能同时为www.example1.comwww.example2.com这两个域名提供服务。当客户端发送请求时,通过Host头部告诉服务器请求的是哪个域名对应的资源。例如,Host: www.example.com,这是 HTTP/1.1 协议中必须的头部,它确保服务器能够正确地将请求路由到对应的虚拟主机(如果有多个域名对应同一服务器)。
    • 示例:如果用户在浏览器中访问https://www.baidu.com,浏览器发送的请求头部中的Host字段就会是Host: www.baidu.com,这样百度的服务器就能准确地识别并返回百度网站相关的内容。
  2. User - Agent

    • 定义与作用User - Agent头部用于标识客户端的软件信息,主要是浏览器类型和版本,也可能包括操作系统等信息。服务器可以根据这个信息来为不同的客户端提供适当的内容或者进行兼容性处理。例如,服务器可以根据不同的浏览器类型,返回不同格式的网页(虽然现在这种情况比较少见,因为网页设计更加注重标准化),或者根据用户使用的操作系统来推荐合适的软件下载链接。
    • 示例User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36,这个头部信息表明客户端使用的是 Chrome 浏览器,版本为 90.0.4430.212,运行在 Windows 10 操作系统(64 位)上,并且底层的渲染引擎部分与 Safari 有相似之处(因为有AppleWebKit相关信息)。
  3. Accept

    • 定义与作用Accept头部指定了客户端能够接受的媒体类型(MIME 类型)。它用于告诉服务器客户端希望接收的内容格式及其优先级。MIME 类型是一种用于标识文档、文件或字节流性质和格式的标准化方式。例如,text/html表示 HTML 文档,image/jpeg表示 JPEG 图像。服务器会根据这个头部信息,尽可能地返回客户端期望的内容类型。
    • 示例Accept: text/html,application/xhtml + xml,application/xml;q = 0.9,image/avif,image/webp,image/apng,*/*;q = 0.8,application/signed - exchange;v = b3;q = 0.9。这里客户端表示最希望接收的是text/htmlapplication/xhtml+xml类型的内容,其次是application/xml(优先级为 0.9),然后是image/avifimage/webpimage/apng等,对于其他所有类型(*/*)的优先级为 0.8,最后application/signed - exchange(优先级为 0.9)也有一定的接受度。
  4. Accept - Language

    • 定义与作用Accept - Language头部表明客户端可接受的自然语言。这对于提供多语言内容的网站非常重要,服务器可以根据这个信息返回用户期望语言的内容。例如,一个跨国公司的网站可能提供多种语言版本的网页,服务器会根据Accept - Language头部来选择合适的语言版本进行响应。
    • 示例Accept - Language: en - US,en;q = 0.9,这表示客户端优先接受美式英语(en - US),对于其他英语类型(en)的接受程度稍低(优先级为 0.9)。如果服务器有美式英语版本的网页,就会优先返回这个版本;如果没有,可能会考虑其他英语版本。
  5. Connection

    • 定义与作用Connection头部用于控制是否保持连接。在 HTTP/1.1 及以后的版本中,支持持久连接(Persistent Connection),这可以减少建立和关闭连接的开销,提高网络传输效率。通过设置Connection头部的值,客户端可以告诉服务器自己的连接意图。
    • 示例Connection: keep - alive表示客户端希望保持连接,以便在后续的请求中可以直接使用这个连接,而不需要重新建立连接。相反,如果是Connection: close,则表示客户端希望在当前请求 - 响应完成后关闭连接。
  6. Content - Length(如果是 POST 等有请求体的请求)

    • 定义与作用:当请求包含请求体(如 POST 请求)时,Content - Length头部用于指定请求体的长度(字节数)。这对于服务器准确地接收和处理请求体内容非常重要,服务器可以根据这个长度来确定何时完整地接收了请求体。
    • 示例:如果一个 POST 请求的请求体是一个包含用户登录信息的表单数据,长度为 1024 字节,那么Content - Length头部的值就会是Content - Length: 1024
  7. Content - Type(如果是 POST 等有请求体的请求)

    • 定义与作用:当请求包含请求体时,Content - Type头部用于指定请求体的 MIME 类型。这有助于服务器正确地解析请求体中的内容。例如,如果请求体是一个 JSON 格式的数据,Content - Type头部可能是Content - Type: application/json,这样服务器就知道要用 JSON 解析器来处理请求体。
    • 示例:如果用户通过 POST 请求提交一个 XML 格式的文件,Content - Type头部可能是Content - Type: application/xml,告诉服务器请求体是 XML 格式的内容,需要按照 XML 的处理方式来解析。
  8. Cookie(如果有相关 Cookie 信息)曲奇饼

    • 定义与作用Cookie头部用于在客户端和服务器之间传递 Cookie 信息。Cookie 是一种在客户端存储少量数据的机制,用于记录用户的一些状态信息,如登录状态、购物车内容等。当客户端再次向服务器发送请求时,会把相关的 Cookie 信息通过Cookie头部发送给服务器,服务器可以根据这些信息来识别用户或者恢复用户的状态。
    • 示例Cookie: sessionid = 123456789; userid = 987654321,这里的sessioniduserid是 Cookie 的名称,123456789987654321是对应的 Cookie 值。服务器可以根据这些值来确定用户的会话状态或者用户身份等信息。

  1. 1XX 系列(信息性状态码)

    • 100 Continue
      • 含义:客户端在发送请求体之前,先发送一个带有Expect: 100 - continue请求头部的请求。服务器收到这个请求后,如果它认为可以接收客户端的请求体,就会返回 100 Continue 响应码,告诉客户端可以继续发送请求体。
      • 应用场景:主要用于大文件上传或者 POST 请求包含大量数据的情况。例如,当客户端要上传一个很大的文件时,先发送一个 HEAD 请求询问服务器是否可以接收,服务器返回 100 Continue 后,客户端再发送文件内容,这样可以避免在服务器不接受请求的情况下发送大量无用数据。
    • 101 Switching Protocols
      • 含义:表示服务器理解了客户端的请求,并同意切换协议。
      • 应用场景:在 HTTP 升级到更安全或更高效的协议(如从 HTTP/1.1 升级到 HTTP/2)时使用。例如,服务器和客户端都支持 HTTP/2,客户端在请求头部中包含升级协议的意图,服务器同意后就会返回 101 Switching Protocols 响应码,随后双方开始使用新协议进行通信。
  2. 2XX 系列(成功状态码)

    • 200 OK
      • 含义:最常见的成功状态码,表示服务器成功处理了客户端的请求,并返回了请求的内容。
      • 应用场景:当用户在浏览器中访问一个网页,服务器找到并正确返回网页的 HTML、CSS、JavaScript 等内容时,就会返回 200 OK。例如,用户访问www.example.com,服务器返回首页的内容,响应码就是 200 OK。
    • 201 Created
      • 含义:表示请求成功,并且服务器创建了新的资源。通常在 POST 或者 PUT 请求后返回,新资源的位置会在响应头部的Location字段中给出。
      • 应用场景:当用户在一个文件存储服务中上传新文件,或者在内容管理系统中创建新的文章等情况时使用。例如,用户通过 API 上传一个新的图像文件,服务器成功创建文件存储记录并保存文件后,返回 201 Created 响应码,同时在Location头部给出新文件的访问地址。
    • 204 No Content
      • 含义:服务器成功处理了请求,但没有返回任何内容。这和 200 OK 的区别在于没有响应体。
      • 应用场景:主要用于对资源执行操作成功,但不需要返回新内容的情况。例如,用户在购物网站上删除了一个商品,服务器成功删除商品记录后,返回 204 No Content,因为不需要返回具体的内容。
  3. 3XX 系列(重定向状态码)

    • 301 Moved Permanently
      • 含义:表示请求的资源已经永久移动到了新的位置。客户端在收到这个响应码后,以后的请求都应该使用新的 URL。
      • 应用场景:当网站进行域名更换或者资源路径永久变更时使用。例如,一个网站从www.old - example.com迁移到www.new - example.com,对于访问旧域名的用户,服务器会返回 301 Moved Permanently 响应码,并在响应头部的Location字段中给出新域名的 URL。
    • 302 Found(以前是 302 Moved Temporarily)
      • 含义:表示请求的资源临时移动到了新的位置。客户端收到这个响应码后,会临时使用新的 URL 进行访问。
      • 应用场景:在网站维护或者资源临时调整位置的情况下使用。例如,网站的某个页面因为服务器维护需要临时转移到另一个服务器上的路径,就会返回 302 Found 响应码,引导用户暂时访问新的位置。
    • 304 Not Modified
      • 含义:客户端发送了一个带有条件的请求(通常是带有If - Modified - SinceIf - None - Match头部),服务器根据这些条件判断资源没有被修改,所以不需要返回新的内容,直接告诉客户端使用缓存的内容即可。
      • 应用场景:对于经常访问的网页或者资源,浏览器会缓存内容。当用户再次访问时,浏览器会发送一个条件请求询问资源是否修改。如果没有修改,服务器就返回 304 Not Modified,这样可以减少网络流量,提高访问效率。
  4. 4XX 系列(客户端错误状态码)

    • 400 Bad Request
      • 含义:客户端发送的请求有语法错误,服务器无法理解。
      • 应用场景:可能是请求行、请求头部或者请求体的格式不正确。例如,请求的 URL 格式错误,或者 POST 请求中提交的数据不符合服务器要求的格式(如缺少必需的字段)。
    • 401 Unauthorized
      • 含义:表示客户端请求的资源需要进行身份验证,但是客户端没有提供有效的凭证或者提供的凭证无效。
      • 应用场景:当用户访问一个需要登录才能查看的资源,但是没有提供正确的用户名和密码或者有效的身份令牌时,就会返回 401 Unauthorized。
    • 403 Forbidden
      • 含义:服务器理解了客户端的请求,但是拒绝提供服务。这和 401 Unauthorized 的区别在于,403 Forbidden 不是因为缺少身份验证,而是因为客户端没有权限访问请求的资源。
      • 应用场景:例如,用户试图访问一个受保护的文件,虽然已经登录,但是其用户权限级别不够,或者 IP 地址被限制访问,就会返回 403 Forbidden。
    • 404 Not Found
      • 含义:客户端请求的资源在服务器上不存在。
      • 应用场景:这是最常见的客户端错误状态码之一。当用户在浏览器中输入一个错误的网址,或者网站上的某个页面、文件被删除后,用户访问时就会返回 404 Not Found。
  5. 5XX 系列(服务器错误状态码)

    • 500 Internal Server Error
      • 含义:服务器在处理客户端请求时遇到了内部错误,无法完成请求。
      • 应用场景:可能是服务器端的代码出现了错误(如程序崩溃、数据库查询出错等)。例如,一个动态网页的服务器端脚本在执行过程中遇到了未处理的异常,导致无法正确生成网页内容,就会返回 500 Internal Server Error。
    • 502 Bad Gateway
      • 含义:服务器作为网关或者代理,从上游服务器(如应用服务器、数据库服务器等)获取响应时出现了错误。
      • 应用场景:当服务器在转发请求到其他服务器后,没有收到有效的响应或者收到的响应无法理解时使用。例如,在一个复杂的 Web 架构中,Web 服务器将请求转发给应用服务器,应用服务器出现故障没有正确响应,Web 服务器就会返回 502 Bad Gateway。
    • 503 Service Unavailable
      • 含义:服务器目前无法处理客户端的请求,可能是因为服务器正在维护、过载或者出现其他临时故障。
      • 应用场景:在服务器进行升级维护、遭受大量请求导致资源耗尽(如 CPU、内存等资源不足)等情况下使用。例如,在电商平台的促销活动期间,服务器负载过高,暂时无法处理新的订单请求,就会返回 503 Service Unavailable。
    • 504 Gateway Time - out
      • 含义:服务器作为网关或者代理,在规定的时间内没有从上游服务器收到响应。
      • 应用场景:和 502 Bad Gateway 类似,但更强调时间因素。例如,Web 服务器在等待应用服务器响应的过程中,超过了设定的等待时间(如 30 秒)还没有收到响应,就会返回 504 Gateway Time - out。

       在当今数字化的网络世界中,了解 HTTP 协议具有极为关键的意义。对于网页开发人员而言,它是构建高效、功能完备网页的基石。凭借对 HTTP 的精通,开发人员能够巧妙运用缓存机制提升网页加载速度,精心安排资源加载顺序以优化页面呈现,精准把握不同请求方法实现复杂的前后端数据交互,并借助其特性构建实时性强的网页应用。

       网络安全人员则依赖对 HTTP 的深入理解,如同拥有敏锐的探测器,精准识别并有效防范诸如 XSS、CSRF 等网络攻击,通过确保 HTTP 与安全加密协议的协同运作,筑牢数据传输的安全防线,同时依据其原理制定严谨的安全策略,及时修复潜在漏洞。 

        而系统管理员借助对 HTTP 协议的熟知,恰似掌握了服务器管理的密码,能够合理配置虚拟主机、精准设定 MIME 类型与访问权限,科学优化服务器性能,并且在故障突发时,依据 HTTP 响应码迅速排查问题根源,确保服务器的稳定运行与网络服务的顺畅提供。

        总之,HTTP 协议贯穿网络开发、安全保障与系统运维的各个环节,是推动网络技术发展与保障网络生态健康稳定不可或缺的重要因素。

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

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

相关文章

【C++】递归填充矩阵的理论解析与实现

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯问题描述💯递归实现💯参数解析函数参数详解填充顺序分析递归终止条件 💯示例解析第一层递归第二层递归第三层递归最终输出 &#x1f4af…

Git 仓库托管教程

git远程仓库 常用的远程仓库-->托管服务:github、码云、gitlab等 github需要魔法上网,速度较慢因为在国外且仅仅支持Git,如果不是Git项目是不支持的;码云--gitee国内的代码托管平台,服务器在国内速度快一些&#…

[创业之路-190]:《华为战略管理法-DSTE实战体系》-2-华为DSTE战略管理体系概要

目录 一、DSTE战略管理体系与BLM的关系 1、DSTE战略管理体系概述 2、BLM模型概述 3、DSTE与BLM的关系 二、重新认识流程 1. 流程就是业务本身,流程是业务过程的可视化: 2. 流程是业务最佳路径的经验教训总结: 3. 流程是战略知识资产、…

多智能体架构 Insight-V:针对长链视觉推理瓶颈

多智能体架构 Insight-V:针对长链视觉推理瓶颈 https://arxiv.org/abs/2411.14432 推理智能体与总结智能体协作完成任务,实现复杂视觉任务中的高效推理与总结。其中写了一小段,用迭代 DPO 算法,在每一轮训练中,模型会…

ASP.NET |日常开发中连接Oracle数据库详解

ASP.NET |日常开发中连接Oracle数据库详解 前言一、安装和配置 Oracle 数据访问组件1.1 安装ODP.NET(Oracle Data Provider for.NET):1.2 引用相关程序集: 二、配置连接字符串2.1 连接字符串的基本组成部分&#xff1a…

生成树协议STP工作步骤

第一步:选择根桥 优先级比较:首先比较优先级,优先级值越小的是根桥MAC地址比较:如果优先级相同,则比较MAC地址。MAC地址小的是根桥。 MAC地址比较的时候从左往右,一位一位去比 第二步:所有非根…

Redis是什么?Redis和MongoDB的区别在那里?

Redis介绍 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是关于Redis的详细介绍: 一、数据结构支持 字符串(String) 这是Redis最…

minio 分布式文件管理

一、minio 是什么? MinIO构建分布式文件系统,MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合使用,它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数…

【射频IC学习笔记】4 D类功率放大器PA电路设计/loadpull仿真/输出功率及效率PAE计算

一、功率放大器设计指标及电路结构 1. 设计指标 功率放大器的指标要求如下图所示采用D类的开关类型功率放大器,理论上开关类型的PA能够做到100%的效率,但实际上会有一些偏差。像D类功放并不适合高功率射频信号的输出,因为其在射频功率上面的…

【数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现二叉排序树的基本算法。 相关知识 为了完成本关任务,你需要掌握:二叉树的创建、查找和删除算法。具体如下: (1)由…

Unity UGUI图片循环列表插件

效果展示: 下载链接:https://gf.bilibili.com/item/detail/1111843026 概述: LoopListView2 是一个与 UGUI ScrollRect 相同的游戏对象的组件。它可以帮助 UGUI ScrollRect 以高效率和节省内存的方式支持任意数量的项目。 对于具有10,000个…

5G学习笔记之SNPN系列之ID和广播消息

目录 1. 概述 2. SNPN ID 3. SNPN广播消息 1. 概述 SNPN:Stand-alone Non-Public Network,独立的非公共网络,由NPN独立运营,不依赖与PLMN网络。 SNPN不支持的5GS特性: 与EPS交互 emergency services when the UE acce…

(后序遍历 简单)leetcode 101翻转二叉树

将根结点的左右结点看作 两个树的根结点,后序遍历(从叶子结点从下往上遍历) 两个树边遍历边比较。 左节点就左右根的后序遍历 右根结点就右左根的后序遍历来写 后序遍历(从叶子结点从下往上遍历) /*** Definition …

通过ajax的jsonp方式实现跨域访问,并处理响应

一、场景描述 现有一个项目A,需要请求项目B的某个接口,并根据B接口响应结果A处理后续逻辑。 二、具体实现 1、前端 前端项目A发送请求,这里通过jsonp的方式实现跨域访问。 $.ajax({ url:http://10.10.2.256:8280/ssoCheck, //请求的u…

Goby AI 2.0 自动化编写 EXP | Mitel MiCollab 企业协作平台 npm-pwg 任意文件读取漏洞(CVE-2024-41713)

漏洞名称:Mitel MiCollab 企业协作平台 npm-pwg 任意文件读取漏洞(CVE-2024-41713) English Name:Mitel MiCollab /npm-pwg File Read Vulnerability (CVE-2024-41713) CVSS core: 6.8 漏洞描述: Mitel MiCollab 是加拿大 Mitel 公司推出…

现代密码学总结(上篇)

现代密码学总结 (v.1.0.0版本)之后会更新内容 基本说明: ∙ \bullet ∙如果 A A A是随机算法, y ← A ( x ) y\leftarrow A(x) y←A(x)表示输入为 x x x ,通过均匀选择 的随机带运行 A A A,并且将输出赋给 y y y。 ∙ \bullet …

VMware:CentOS 7.* 连不上网络

1、修改网络适配 2、修改网卡配置参数 cd /etc/sysconfig/network-scripts/ vi ifcfg-e33# 修改 ONBOOTyes 3、重启网卡 service network restart 直接虚拟机中【ping 宿主机】,能PING通说明centOS和宿主机网络通了,只要宿主机有网,则 Ce…

Linux —— vim 编辑器

一、什么是vim vim是一个功能强大、高度可定制的文本编辑器。以下是对vim编辑器的具体介绍: 历史背景:vim最初由Bram Moolenaar在1991年开发,作为vi编辑器的增强版,增加了许多新的特性和改进。它继承了vi的基本编辑功能和键盘快捷…

前端(async 和await)

1 async async 将 function 变为成为 async 函数 ●async 内部可以使用 await,也可以不使用,因此执行这个函数时,可以使用 then 和 catch 方法 ●async 函数的返回值是一个 Promise 对象 ●Promise 对象的结果由 async 函数执行的返回值决…

huggingface NLP -Transformers库

1 特点 1.1 易于使用:下载、加载和使用最先进的NLP模型进行推理只需两行代码即可完成。 1.2 灵活:所有型号的核心都是简单的PyTorch nn.Module 或者 TensorFlow tf.kears.Model,可以像它们各自的机器学习(ML)框架中的…