计算机网络HTTP——针对实习面试

目录

  • 计算机网络HTTP
    • 什么是HTTP?
    • HTTP和HTTPS有什么区别?
    • 分别说明HTTP/1.0、HTTP/2.0、HTTP/3.0
    • 请说明访问网页的全过程
    • 请说明HTTP常见的状态码
    • Cookie和Session有什么区别?
    • HTTP请求方式有哪些?请解释GET和POST的区别?
    • HTTP请求和响应头部有哪些常见的字段?

计算机网络HTTP

在这里插入图片描述

什么是HTTP?

HTTP是一种用于分布式、协作式、超媒体信息系统的通信协议。它定义了客户端和服务器之间请求和响应的格式。HTTP是互联网上应用最广泛的协议之一。

  1. 通信方式:HTTP定义了客户端如何向服务器请求数据,以及服务器如何将数据返回给客户端的方式。

  2. 请求和响应:客户端发送一个请求到服务器,服务器收到请求后,会返回一个响应。这个响应包含了客户端请求的数据。

  3. 无状态:HTTP协议是无状态的,意味着每次请求都是独立的,服务器不会记住之前发生过的请求。

  4. 基于文本:HTTP的请求和响应都是基于文本的,这使得它们易于阅读和调试。

  5. 使用端口:HTTP默认使用80端口进行通信,而其安全版本HTTPS则使用443端口。

  6. 请求方法:HTTP定义了几种请求方法,最常见的是GET(获取资源)和POST(提交资源)。

  7. 状态码:服务器在响应中会包含一个状态码,告诉客户端请求是否成功。例如,200表示成功,404表示找不到资源,500表示服务器错误。

  8. 头部信息:HTTP请求和响应都包含头部信息,这些信息提供了关于请求和响应的额外数据,比如内容类型、内容长度等。

  9. 超媒体:HTTP最初设计用来传输超文本,即包含链接的文本,这些链接可以指向其他文档或资源。

  10. 安全性:虽然HTTP本身不加密,但其安全版本HTTPS通过SSL/TLS提供了加密,保护数据传输的安全。

简而言之,HTTP是一种让网页浏览器和其他客户端能够从服务器请求和接收网页内容的协议。

HTTP和HTTPS有什么区别?

HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是互联网上用于传输数据的两种协议,它们的主要区别在于安全性和加密。以下是HTTP和HTTPS之间的一些关键区别:

HTTP和HTTPS区别关键字记忆

HTTPHTTPS
加密明文传输密文传输
端口80443
安全性
性能理论上略高理论上略低
成本无额外成本需购买SSL/TLC证书
配置无额外配置需在服务器安装和配置SSL/TLC证书
  1. 加密

    • HTTP:是明文传输,不提供数据加密,传输的数据可能被窃听或篡改。
    • HTTPS:在HTTP的基础上加入了SSL/TLS协议,提供了数据加密、完整性校验和身份验证,保护数据传输的安全。
  2. 端口

    • HTTP:默认使用80端口。
    • HTTPS:默认使用443端口。
  3. 安全性

    • HTTP:由于没有加密,容易受到中间人攻击、数据泄露等安全威胁。
    • HTTPS:通过SSL/TLS加密,提供了更高的安全性,可以有效防止数据在传输过程中被窃取或篡改。
  4. 性能

    • HTTP:由于没有加密和解密的过程,理论上性能略高于HTTPS。
    • HTTPS:由于需要进行加密和解密,可能会有轻微的性能开销,但现代的SSL/TLS实现已经非常优化,性能差异不大。
  5. 搜索引擎优化(SEO)

    • HTTP:搜索引擎可能会降低没有采用HTTPS的网站的排名。
    • HTTPS:搜索引擎(如谷歌)倾向于提高采用HTTPS网站的排名,因为它提供了更好的安全性。
  6. 浏览器显示

    • HTTP:现代浏览器可能会对没有使用HTTPS的网站显示安全警告。
    • HTTPS:浏览器会显示一个锁形图标,表示网站是安全的。
  7. 成本

    • HTTP:不需要额外的成本。
    • HTTPS:需要购买SSL/TLS证书,虽然现在有很多免费的证书提供(如Let’s Encrypt)。
  8. 配置

    • HTTP:不需要额外的配置。
    • HTTPS:需要在服务器上安装和配置SSL/TLS证书

总的来说,HTTPS是HTTP的安全版本,它通过加密提供了更好的数据保护和隐私保护,已经成为现代网站的标准配置。

分别说明HTTP/1.0、HTTP/2.0、HTTP/3.0

HTTP/1.0、HTTP/2.0和HTTP/3.0是超文本传输协议(HTTP)的三个不同版本,每个版本都在前一个版本的基础上进行了改进和优化。以下是对这三个版本的详细说明:

HTTP/1.0

  • 发布年份:1996年。
  • 无连接:每个请求创建一个连接,请求完成后立即关闭连接,导致显著的开销,尤其是在处理多个小文件时。
  • 队头阻塞:下一个请求必须在前一个请求响应到达之前才能发送,如果前一个请求响应一直不到达,那么下一个请求就不发送,后面的请求就阻塞了。
  • 缓存:在HTTP1.0中主要使用header里的协商缓存last-modified/if-modified-since,强缓存Expires来做为缓存判断的标准。

HTTP/1.1

  • 发布年份:1997年。
  • 持久连接:默认启用持久连接(Keep-Alive),允许多个请求使用同一个TCP连接,减少了连接建立和关闭的开销。
  • 管道化:支持请求管道化(Pipelining),即在收到响应前可以发送多个请求,但由于实现复杂和问题多,实际使用较少。
  • 分块传输编码:引入分块传输编码(Chunked Transfer Encoding),使得服务器可以分块发送响应,提高了传输效率。
  • 增强缓存控制:新增了许多缓存控制头部,如Cache-Control,增强了缓存机制。
  • 虚拟主机支持:引入Host头部,允许在同一IP地址上托管多个域名(虚拟主机)。

HTTP/2

  • 发布年份:2015年。
  • 二进制分帧:HTTP/2头信息和数据体都是二进制,统称为“帧”:头信息帧和数据帧。
  • 多路复用:通过单一的HTTP/2连接发起多重的请求-响应消息,即在一个连接里,客户端和浏览器都可以同时发送多个请求和响应,而不用按照顺序一一对应,这样避免了“队头堵塞”。
  • 数据流:因为HTTP/2的数据包是不按顺序发送的,同一个连接里面连续的数据包,可能属于不同的回应。因此,必须要对数据包做标记,指出它属于哪个回应。
  • 服务器推送:HTTP/2引入了服务器推送(Server Push)机制,这意味着服务器可以在客户端请求之前,主动向客户端推送数据。

HTTP/3

  • 基于QUIC的传输层协议:HTTP/3不再依赖于TCP,而是使用QUIC来进行数据传输。QUIC具有更快的连接建立时间和更好的拥塞控制,同时支持快速的连接迁移和零RTT(Round-Trip Time)握手。
  • 多路复用:HTTP/3延续了HTTP/2的多路复用特性,允许在单个连接上并行发送多个请求和响应,提高了网络利用率和性能。
  • 0-RTT连接建立:基于QUIC的特性,HTTP/3支持零RTT连接建立,使得客户端可以在不进行完整的握手过程的情况下发送数据,进一步减少了延迟。
  • 连接迁移:QUIC支持快速的连接迁移,即使在网络切换或IP地址变更的情况下,连接也能够快速恢复,提高了网络的稳定性和可靠性。
  • 抗拥塞控制:HTTP/3内置了先进的拥塞控制算法,能够更好地适应网络环境的变化,提供更稳定和可靠的网络性能。

请说明访问网页的全过程

访问网页的全过程涉及多个步骤,包括DNS解析、建立TCP连接、发送HTTP请求、服务器处理请求、返回HTTP响应、浏览器渲染页面等。

简略说明

  1. 浏览器查找域名的IP地址
  2. 浏览器向web服务器发送一个HTTP请求
  3. 服务器处理请求
  4. 服务器发回一个HTML响应
  5. 浏览器开始显示HTML

详细说明

  1. 用户输入网址

    • 用户在浏览器地址栏输入一个网址(URL),如 https://www.example.com
  2. DNS解析

    • 浏览器首先需要将域名解析为IP地址。浏览器会查询本地的DNS缓存,如果没有找到,会向本地DNS服务器发送查询请求。
    • 本地DNS服务器会尝试解析域名,如果它不知道答案,会向根DNS服务器查询,然后逐级查询直到找到对应的IP地址。
  3. 建立TCP连接(对于HTTP/1.1和HTTP/2):

    • 浏览器使用解析得到的IP地址,通过TCP协议与服务器建立连接。这涉及到一个三次握手的过程:
      • 客户端发送SYN(同步序列编号)报文给服务器。
      • 服务器回应SYN-ACK(同步和确认)报文。
      • 客户端发送ACK(确认)报文,完成握手。
  4. TLS/SSL握手(对于HTTPS):

    • 如果是HTTPS连接,接下来会进行TLS/SSL握手,以确保连接的安全性。
    • 这个过程包括交换密钥、证书验证等步骤。
  5. 发送HTTP请求

    • 一旦TCP连接和TLS/SSL连接建立,浏览器会构建一个HTTP请求,包括请求行(如GET /)、请求头部(如User-Agent、Accept等)。
  6. 服务器处理请求

    • 服务器接收到HTTP请求后,会根据请求的URL、方法和头部信息处理请求。
    • 服务器可能会查询数据库、执行后端逻辑,或者直接从文件系统中检索资源。
  7. 返回HTTP响应

    • 服务器处理完请求后,会返回一个HTTP响应给客户端,包括状态码(如200 OK)、响应头部(如Content-Type、Content-Length等)和响应体(即请求的资源内容)。
  8. 浏览器渲染页面

    • 浏览器接收到响应后,会根据响应内容进行渲染:
      • 解析HTML文档,构建DOM树。
      • 根据CSS样式表计算元素样式。
      • 根据JavaScript脚本执行DOM操作和动态交互。
    • 浏览器可能会发起额外的请求来获取页面中的图片、CSS文件、JavaScript文件等资源。
  9. 关闭TCP连接(对于HTTP/1.0):

    • 如果使用的是HTTP/1.0,或者HTTP/1.1但没有使用持久连接,服务器会在发送完响应后关闭TCP连接。
  10. TCP连接复用(对于HTTP/1.1和HTTP/2):

    • 如果使用的是HTTP/1.1或HTTP/2,并且启用了持久连接,那么同一个TCP连接可以被用来发送多个HTTP请求和响应,直到客户端或服务器决定关闭连接。
  11. 页面加载完成

    • 一旦所有资源都被加载和渲染,页面就完全显示在用户面前,网页加载完成。

这个过程涉及客户端(浏览器)、服务器以及中间网络设备(如DNS服务器、代理服务器)的协同工作,确保用户能够顺利访问和浏览网页。

请说明HTTP常见的状态码

HTTP状态码是服务器对客户端请求的响应状态的表示。它们分为五类,每类都反映了不同的响应情况:

状态码关键字记忆

状态码说明
1xx(信息性状态码)表示接收的请求正在处理
2xx(成功状态码)表示请求已已成功被服务器接收、理解、并接受
3xx(重定向状态码)表示需要进行额外操作以完成请求
4xx(客户端错误状态码)表示客户端的请求有错误
5xx(服务器错误状态码)表示服务器处理请求时发生了错误
  1. 1xx(信息性状态码):表示接收的请求正在处理。

    • 100 Continue:表明客户端可以继续发送请求的剩余部分,或者如果请求已经完成,则忽略它。
    • 101 Switching Protocols:服务器已经理解了客户端的请求,并将通过Upgrade头信息进行协议切换。
  2. 2xx(成功状态码):表示请求已成功被服务器接收、理解、并接受。

    • 200 OK:请求成功,服务器返回请求的网页。
    • 201 Created:请求成功并且服务器创建了新的资源。
    • 202 Accepted:服务器已接受请求,但尚未处理。
    • 204 No Content:服务器成功处理了请求,但没有返回任何内容。
  3. 3xx(重定向状态码):表示需要进行额外操作以完成请求。

    • 301 Moved Permanently:请求的网页已永久移动到新位置。
    • 302 Found:请求的网页临时移动到另一个地址。
    • 303 See Other:建议客户端使用GET方法获取资源。
    • 304 Not Modified:自从上次请求后,请求的网页未修改,可以使用缓存版本。
    • 307 Temporary Redirect:请求的网页临时移动到另一个地址,但应使用原方法(POST或GET)重新发起请求。
    • 308 Permanent Redirect:与301类似,但要求使用原方法(POST或GET)重新发起请求。
  4. 4xx(客户端错误状态码):表示客户端的请求有错误。

    • 400 Bad Request:服务器无法理解请求,可能是请求格式有误。
    • 401 Unauthorized:请求需要用户的身份认证。
    • 403 Forbidden:服务器理解请求但拒绝执行,可能是权限问题。
    • 404 Not Found:请求的资源在服务器上不存在或无法找到。
    • 405 Method Not Allowed:请求方法不被允许。
    • 408 Request Timeout:请求超时。
    • 409 Conflict:请求与服务器当前状态冲突。
    • 410 Gone:请求的资源已永久删除。
  5. 5xx(服务器错误状态码):表示服务器处理请求时发生了错误。

    • 500 Internal Server Error:服务器遇到错误,无法完成请求。
    • 501 Not Implemented:服务器不支持请求的功能,无法完成请求。
    • 502 Bad Gateway:服务器作为网关或代理,从上游服务器接收到无效响应。
    • 503 Service Unavailable:服务器目前无法使用(由于超载或停机维护)。
    • 504 Gateway Timeout:服务器作为网关或代理,但是没有及时从上游服务器收到请求。

这些状态码是HTTP协议的核心部分,它们帮助客户端理解服务器的响应,并根据响应采取适当的行动。

Cookie和Session有什么区别?

Cookie和Session是Web开发中用于管理用户会话和状态的两种常用技术。它们的主要区别在于存储位置、生命周期、安全性和使用场景,其他区别了解即可。以下是Cookie和Session的主要区别:

表格关键词记忆

CookieSession
存储位置客户端服务器端
生命周期设置过期时间会话超时
安全性
存储空间每个域名可存储Cookie有限服务器端可以存储更多的数据
使用场景数据不需要频繁变动需要频繁读写用户状态
  1. 存储位置

    • Cookie:存储在客户端(用户的浏览器)上,通常以键值对的形式存在。
    • Session:存储在服务器端,每个用户会话对应一个唯一的Session对象。
  2. 生命周期

    • Cookie:可以设置过期时间,当达到过期时间后,Cookie会被浏览器自动删除。如果未设置过期时间,则在浏览器关闭时消失(会话Cookie)。
    • Session:依赖于服务器端的Session对象,当会话超时或服务器端Session对象被清除时,Session结束。
  3. 安全性

    • Cookie:由于存储在客户端,更容易受到XSS(跨站脚本攻击)和CSRF(跨站请求伪造)等攻击,因此敏感信息不应存储在Cookie中。
    • Session:存储在服务器端,相对更安全,但需要确保Session ID的安全性,防止Session劫持。
  4. 存储空间

    • Cookie:每个域名下可以存储的Cookie数量有限,且每个Cookie的大小也有限制(通常每个Cookie不超过4KB)。
    • Session:理论上服务器端可以存储更多的数据,但过多的Session会增加服务器的存储和处理负担。
  5. 传输

    • Cookie:每次HTTP请求都会携带Cookie数据,如果Cookie中存储了大量数据,会增加网络传输的开销。
    • Session:不需要在每次请求中传输,只有Session ID在请求中传递,减少了网络传输的开销。
  6. 使用场景

    • Cookie:适用于存储用户偏好设置、会话标识(如Session ID)等不需要频繁变动的数据
    • Session:适用于需要频繁读写用户状态的场景,如购物车、用户登录状态等。
  7. 跨域问题

    • Cookie:可以设置为跨域访问,但需要服务器端配置CORS(跨源资源共享)策略。
    • Session:由于存储在服务器端,不受跨域问题影响。
  8. 控制权

    • Cookie:由客户端控制,用户可以查看、修改或删除Cookie。
    • Session:由服务器控制,用户无法直接访问Session数据。

总的来说,Cookie和Session各有优缺点,实际应用中可以根据需求和场景选择使用。为了提高安全性,通常会将Session ID存储在Cookie中,结合两者的优点来管理用户会话。

HTTP请求方式有哪些?请解释GET和POST的区别?

HTTP请求方式主要包括以下几种:

  1. GET:用于请求指定资源。GET请求应该只用于获取数据,而不会改变服务器上的数据。
  2. POST:用于向指定资源提交数据,通常会导致服务器上的状态变化或数据的创建。
  3. PUT:用于上传指定的资源,如果资源不存在则创建,如果资源已存在则更新。
  4. DELETE:用于删除指定的资源。
  5. HEAD:请求获取与GET请求相同的响应,但没有响应体。主要用于检查资源是否存在,以及获取资源的元数据。
  6. OPTIONS:用于描述目标资源的通信选项,可以用于跨域请求时获取服务器支持的方法。
  7. PATCH:用于对资源进行部分修改。
  8. CONNECT:用于将请求连接转换到由目标资源标识的服务器。

GET和POST的区别:

GET和POST关键字记忆

GETPOST
数据可见性可在URL中查看不可在URL中查看
数据大小限制URL长度限制没有数据大小限制
缓存请求可被缓存请求不可缓存
历史记录请求浏览器保存请求浏览器不保存
安全性
幂等性是幂等不是幂等

GET

  • 数据可见性:请求的数据会附在URL之后,通过查询字符串(query string)传递,因此数据在URL中可见。
  • 数据大小限制:由于URL长度限制,GET请求传输的数据大小有限制。
  • 缓存:GET请求可以被缓存。
  • 历史记录:GET请求会被浏览器保存在历史记录中。
  • 安全性:由于数据在URL中可见,因此GET请求不适合传输敏感信息。
  • 幂等性:GET请求是幂等的,意味着多次执行相同的GET请求,结果总是相同的,不会影响资源的状态。

POST

  • 数据可见性:请求的数据放在请求体(body)中,不在URL中显示。
  • 数据大小限制:理论上POST没有数据大小限制,可以传输大量数据。
  • 缓存:POST请求不会被缓存。
  • 历史记录:POST请求不会被浏览器保存在历史记录中。
  • 安全性:由于数据不在URL中显示,POST请求相对更安全,适合传输敏感信息。
  • 幂等性:POST请求不是幂等的,多次执行相同的POST请求可能会导致资源状态的不同变化。

总结来说,GET请求主要用于获取数据,而POST请求主要用于提交数据。GET请求的数据可见性和限制性使其不适合传输敏感或大量数据,而POST请求则适合处理这些情况。

HTTP请求和响应头部有哪些常见的字段?

HTTP请求和响应头部字段(Headers)是HTTP通信的重要组成部分,它们提供了关于请求和响应的附加信息。以下是一些常见的HTTP头部字段:

请求头部(Request Headers)

  1. Host:指定请求的服务器的域名和端口号。

    Host: www.example.com:8080
    
  2. User-Agent:包含发出请求的浏览器或客户端信息。

    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
    
  3. Accept:客户端能够处理的媒体类型。

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    
  4. Accept-Language:客户端偏好的语言。

    Accept-Language: en-US,en;q=0.5
    
  5. Accept-Encoding:客户端能够处理的压缩编码。

    Accept-Encoding: gzip, deflate, br
    
  6. Connection:管理持久连接。

    Connection: keep-alive
    
  7. Cookie:存储在客户端的小块数据,用于跟踪会话状态。

    Cookie: session_id=1234567890
    
  8. Authorization:用于提供身份验证信息。

    Authorization: Bearer token_value
    
  9. Content-Type:请求体的媒体类型。

    Content-Type: application/x-www-form-urlencoded
    
  10. Content-Length:请求体的长度。

    Content-Length: 1234
    

响应头部(Response Headers)

  1. Content-Type:响应体的媒体类型。

    Content-Type: text/html; charset=UTF-8
    
  2. Content-Length:响应体的长度。

    Content-Length: 1234
    
  3. Set-Cookie:服务器发送给客户端的Cookie。

    Set-Cookie: session_id=1234567890; Path=/; HttpOnly
    
  4. Cache-Control:控制响应的缓存行为。

    Cache-Control: no-cache, no-store, must-revalidate
    
  5. Expires:响应过期的时间。

    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    
  6. Last-Modified:资源最后被修改的时间。

    Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
    
  7. ETag:资源的特定版本标识符。

    ETag: "3f80f-1b6-3z2"
    
  8. Server:服务器软件名称。

    Server: Apache/2.4.1 (Unix)
    
  9. Location:用于重定向的URL。

    Location: https://www.example.com/newpage.html
    
  10. WWW-Authenticate:用于HTTP认证。

    WWW-Authenticate: Basic realm="Access to the staging site"
    

这些头部字段在HTTP通信中扮演着重要的角色,它们帮助客户端和服务器交换必要的信息,以确保数据的正确传输和处理。

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

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

相关文章

飞创直线电机模组 VS 传统丝杆模组:谁是自动化传动领域的王者?

在现代自动化技术领域,直线电机模组与传统丝杆模组作为两种常见的传动方式,各自有独特的特点和优势。然而,随着科学的不断进步和应用需求的日益提高,两者在精度、速度、寿命及可拓展性方面的差异愈发显著。本文将重点对比飞创直线…

第二十一周学习周报

目录 摘要Abstract1. LSTM原理2. LSTM反向传播的数学推导3. LSTM模型训练实战总结 摘要 本周的学习内容是对LSTM相关内容的复习,LSTM被设计用来解决标准RNN在处理长序列数据时遇到的梯度消失和梯度爆炸问题。LSTM通过引入门控机制来控制信息的流动,从而…

《鸿蒙生态:开发者的机遇与挑战》

一、引言 在当今科技飞速发展的时代,操作系统作为连接硬件与软件的核心枢纽,其重要性不言而喻。鸿蒙系统的出现,为开发者带来了新的机遇与挑战。本文将从开发者的角度出发,阐述对鸿蒙生态的认知和了解,分析鸿蒙生态的…

Elasticsearch基本概念及使用

Elasticsearch 是一个开源的、分布式的全文搜索和分析引擎,基于 Apache Lucene 构建。它提供了快速的搜索能力,支持大规模的数据分析,广泛应用于日志分析、全文搜索、监控系统和商业智能等领域。ES操作指令是基于restAPI构建,也就…

常用命令之LinuxOracleHivePython

1. 用户改密 passwd app_adm chage -l app_adm passwd -x 90 app_adm -> 执行操作后,app_adm用户的密码时间改为90天有效期--查看该euser用户过期信息使用chage命令 --chage的参数包括 ---m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 ---M 密码…

华为HCIP——MSTP/RSTP与STP的兼容性

一、MSTP/RSTP与STP的兼容性的原理: 1.BPDU版本号识别:运行MSTP/RSTP协议的交换机会根据收到的BPDU(Bridge Protocol Data Unit,桥协议数据单元)版本号信息自动判断与之相连的交换机的运行模式。如果收到的是STP BPDU…

Visual Studio 2022 安装

下载链接 https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?skuCommunity&channelRelease&versionVS2022&sourceVSLandingPage&cid2030&passivefalse 安装 以c为例,列出需要勾选的项目,有3个&a…

文件 fd

🏷️ 预备工作 ❓ 当我们在系统中创建一个空文件时,这个文件要不要占据磁盘的空间(注意是空文件哟) 答案:当然是要占据磁盘的空间的,文件不仅只包括内容,还有它的属性呀,就是创建时…

树的直径计算:算法详解与实现

树的直径计算:算法详解与实现 1. 引言2. 算法概述3. 伪代码实现4. C语言实现5. 算法分析6. 结论在图论中,树的直径是一个关键概念,它表示树中任意两点间最长路径的长度。对于给定的树T=(V,E),其中V是顶点集,E是边集,树的直径定义为所有顶点对(u,v)之间最短路径的最大值。…

RHCSA学习超详细知识点2命令篇

输入命令行的语法 终端中执行命令需要遵照一定的语法,输入命令的格式如下: 命令 参数命令 -选项 参数 输入命令时可以包含多个选项,假如一个命令有-a,-b,-c,-d四个选项,可以写作 命令 -a -b -c -d 参数 这里的多个选项可以“提…

3步实现贪吃蛇

方法很简单,打开页面,复制,粘贴 一.整体思维架构 我们根据游戏的开始,运行,结束,将整个游戏划分成三个部分。在每个部分下面又划分出多个功能,接下来我们就根据模块一一实现功能。 二.Gamesta…

风电电力系统低碳调度论文阅读第一期

在碳交易市场中,历史法和基准线法是用于分配碳排放配额的两种主要方法。以下是两种方法的公式及其解释: 区别总结 历史法:基于历史排放量,分配具有较强的公平性但可能缺乏激励减排。基准线法:基于行业基准和生产量&am…

Mybatis-Plus 多租户插件属性自动赋值

文章目录 1、Mybatis-Plus 多租户插件1.1、属性介绍1.2、使用多租户插件mavenymlThreadLocalUtil实现 定义,注入租户处理器插件测试domianservice & ServiceImplmapper 测试mapper.xml 方式 1.3、不使用多租户插件 2、实体对象的属性自动赋值使用1. 定义实体类2. 实现 Meta…

CSS基础知识05(弹性盒子、布局详解,动画,3D转换,calc)

目录 0、弹性盒子、布局 0.1.弹性盒子的基本概念 0.2.弹性盒子的主轴和交叉轴 0.3.弹性盒子的属性 flex-direction row row-reverse column column-reverse flex-wrap nowrap wrap wrap-reverse flex-dirction和flex-wrap的组合简写模式 justify-content flex-s…

使用Web Animations API实现复杂的网页动画效果

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Web Animations API实现复杂的网页动画效果 使用Web Animations API实现复杂的网页动画效果 使用Web Animations API实现复杂…

Matlab多输入单输出之倾斜手写数字识别

本本主要介绍使用matlab构建多输入单输出的网络架构,来实现倾斜的手写数字识别,使用concatenationLayer来拼接特征,实现网络输入多个特征。 1.加载训练数据 加载数据:手写数字的图像、真实数字标签和数字顺时针旋转的角度。 lo…

pytest结合allure做接口自动化

这是一个采用pytest框架,结合allure完成接口自动化测试的项目,最后采用allure生成直观美观的测试报告,由于添加了allure的特性,使得测试报告覆盖的内容更全面和阅读起来更方便。 1. 使用pytest构建测试框架,首先配置好…

【无人机设计与控制】基于MATLAB的四旋翼无人机PID双闭环控制研究

摘要 本文基于MATLAB/Simulink环境,对四旋翼无人机进行了PID双闭环控制设计与仿真研究。通过分析四旋翼无人机的动力学模型与运动学模型,建立了姿态和位置双闭环控制系统,以实现无人机的稳定飞行与精确轨迹跟踪。仿真实验验证了该控制策略的…

强大的正则表达式——Easy

进入题目界面输入难度1后,让我们输入正则表达式(regex): 目前不清楚题目要求,先去下载附件查看情况: import re import random# pip install libscrc import libscrcallowed_chars "0123456789()|*&q…

pytest | 框架的简单使用

这里写目录标题 单个文件测试方法执行测试套件的子集测试名称的子字符串根据应用的标记进行选择 其他常见的测试命令 pytest框架的使用示例 pytest将运行当前目录及其子目录中test_*.py或 *_test.py 形式的所有 文件 文件内的函数名称可以test* 或者test_* 开头 单个文件测试…