计算机网络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通信中扮演着重要的角色,它们帮助客户端和服务器交换必要的信息,以确保数据的正确传输和处理。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win11 终端执行 python xxx.py 没反应

在 Win11 上写了一段 Python 代码来分析日志文件, 发现执行没反应。是在 VSCode 里的终端中执行的 python log_stats.py, 是 PowerShell; 也尝试了 cmd, 情况一样。 一开始怀疑代码写错,直到故意在代码里加打印,发现没…

自由学习记录(22)

最后再总结一下吧 虽然过程里很多细节也许我没有去管,毕竟现在就已经存在更好的解决方案了 但大致思想是了解了 A星是一种网格上的遍历方式,为了找到一个目标点和起点之间的要经过的最短节点组 里面更像是动态规划 每一次的遍历,都是当前…

如何保证MySQL与Redis缓存的数据一致性?

文章目录 一、引言二、场景来源三、高并发解决方案1. 先更新缓存,再更新数据库2. 先更新数据库,再更新缓存3. 先删除缓存,再更新数据库4. 先更新数据库,再删除缓存小结 四、拓展方案1. 分布式锁与分布式事务2. 消息队列3. 监听bin…

java-Day06 内部类 Lambda表达式 API

内部类 内部类:就是在一个类中定义一个类 格式例: public class Outer { public class Inner { } } 内部类分类 1.成员内部类(了解) 创建成员内部类 外部类.内部类 对象名new外部类().new内部类() 2.静态内部类(了解) 3.局部内部类(了解) 4.匿名内部类…

【3D Slicer】的小白入门使用指南八

3D Slicer DMRI(Diffusion MRI)-扩散磁共振认识和使用 0、简介 大脑解剖 ● 白质约占大脑的 45% ● 有髓神经纤维(大约10微米轴突直径) 白质探索 朱尔斯约瑟夫德杰林(Jules Joseph Dejerine,《神经中心解剖学》(巴黎,1890-1901):基于髓磷脂染色标本的神经解剖图谱)…

Spring Boot框架:构建可扩展的网上商城

4 系统设计 网上商城系统的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没有经过全…

【Pikachu】任意文件上传实战

将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水。 1.不安全的文件上传漏洞概述 不安全的文件上传漏洞概述 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的…

vue3:computed

vue3:computed 扫码或者点击文字后台提问 computed 支持选项式写法 和 函数式写法 1.选项式写法 支持一个对象传入get函数以及set函数自定义操作 2.函数式写法 只能支持一个getter函数不允许修改值的 基础示例 <template><div><div>姓&#xff1a;<i…

Python调用API翻译Excel中的英语句子并回填数据

一、问题描述 最近遇到一个把Excel表中两列单元格中的文本读取&#xff0c;然后翻译&#xff0c;再重新回填到单元格中的案例。大约有700多行&#xff0c;1400多个句子&#xff0c;一个个手动复制粘贴要花费不少时间&#xff0c;而且极易出错。这时&#xff0c;我们就可以请出…

NFS-Ganesha 核心架构解读

NFSv4 简要概述 NFS 这个协议( NFSv2 )最初由 Sun Microsystems 在 1984 年设计提出&#xff0c;由于存在一些不足&#xff0c;因此在随后由几家公司联合推出了 NFSv3。到了 NFSv4 时&#xff0c;开发完全由 IETF 主导&#xff0c;设计目标是&#xff1a; 提高互联下的 NFS 访…

直流保护电路设计及保护器件参数说明和选型

在工控产品设计中时常会涉及到电源保护的电路设计的问题&#xff0c;在深圳瑞隆源电子给出的参考电路来切入主题&#xff0c;对气体放电管、压敏电阻和TVS这三类保护器件的参数及选型进行详细说明&#xff0c;以达到深刻理解的目的。 图1 直流保护电路 举例说明&#xff0c;若…

VBA学习笔记:点击单元格显示指定的列

应用场景&#xff1a; 表格中列数较多&#xff0c;特定条件下隐藏一些无关的列&#xff0c;只保留相关的列&#xff0c;使表格更加清晰。 示例&#xff1a;原表格如下 点击一年级&#xff0c;只显示一年级相关的科目&#xff1a; 点击二年级&#xff0c;只显示二年级相关的科…

一种时间戳对齐的方法(离线)

这段代码的主要功能是: 读取指定目录下的 pcd 文件和 jpg 文件。对于每个 pcd 文件,在 jpg 目录中找到时间戳最接近的 jpg 文件。将找到的 jpg 文件复制到对应的输出目录,实现时间戳对齐。 这种时间戳对齐的操作在多传感器数据融合中非常常见,它确保了不同传感器采集的数据在时…

『VUE』27. 透传属性与inheritAttrs(详细图文注释)

目录 什么是透传属性&#xff08;Forwarding Attributes&#xff09;使用条件唯一根节点禁用透传属性继承总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 什么是透传属性&#xff08;Forwarding Attributes&#xff09; 在 V…

【代码大模型】Is Your Code Generated by ChatGPT Really Correct?论文阅读

Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation key word: evaluation framework, LLM-synthesized code, benchmark 论文&#xff1a;https://arxiv.org/pdf/2305.01210.pdf 代码&#xff1a;https:…

AdaBoost 二分类问题

代码功能 生成数据集&#xff1a; 使用 make_classification 创建一个模拟分类问题的数据集。 数据集包含 10 个特征&#xff0c;其中 5 个是有用特征&#xff0c;2 个是冗余特征。 数据集划分&#xff1a; 将数据分为训练集&#xff08;70%&#xff09;和测试集&#xff08;3…

maven的optional选项说明以及具体应用

写在前面 本文看下maven的optional选项的作用和用法。 1&#xff1a;什么作用 考虑这样的场景&#xff0c;A依赖B&#xff0c;B依赖C&#xff0c;正常的按照依赖的传递性&#xff0c;A也会间接的依赖C&#xff0c;但是在一些特定的场景中项目A只希望依赖B&#xff0c;而不依…

QSS 设置bug

问题描述&#xff1a; 在QWidget上add 一个QLabel&#xff0c;但是死活不生效 原因&#xff1a; c 主程序如下&#xff1a; QWidget* LOGO new QWidget(logo_wnd);LOGO->setFixedSize(logo_width, 41);LOGO->setObjectName("TittltLogo");QVBoxLayout* tit…

论文阅读 - Causally Regularized Learning with Agnostic Data Selection

代码链接&#xff1a; GitHub - HMTTT/CRLR: CRLR尝试实现 https://arxiv.org/pdf/1708.06656v2 目录 摘要 INTRODUCTION 2 RELATED WORK 3 CAUSALLY REGULARIZED LOGISTIC REGRESSION 3.1 Problem Formulation 3.2 Confounder Balancing 3.3 Causally Regularized Lo…

JVM双亲委派与自定义类加载器

一. 类加载过程 Java Application运行前需要将编译生成的字节码文件加载到JVM中&#xff0c;JVM类加载过程如下&#xff1a; 1. 加载 加载阶段是类加载的第一步&#xff0c;在加载阶段JVM会查找并加载类的字节码文件&#xff0c;这个过程通常从类路径&#xff08;Classpath…