http协议及httpd安装组成

文章目录

  • 一、http协议
    • http协议通信过程
    • http相关技术
    • 网站访问量
    • HTTP工作机制
    • HTTP协议版本
    • HTTP请求访问的完整过程
    • HTTP报文头部
    • 响应报文
  • 二、httpd安装组成
    • apache介绍和特点
    • 工作模式( MPM multi-processing module )
    • Http相关文件
    • Http编译安装
    • httpd常见配置
    • 虚拟主机
    • 日志
    • 基于用户的访问控制


一、http协议

http协议通信过程

HTTP(HyperText Transfer Protocol,超文本传输协议,默认端口:80/tcp)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础设计HTTP最初的目的是为了提供一种远距离共享知识的方式,借助多文档进行关联实现超文本,连成相互参阅的WWW(world wide web,万维网)。在这里插入图片描述

http相关技术

1.web开发语言
html
Hyper Text Markup Language 超文本标记语言,编程语言,主要负责实现页面的结构
CSS
Cascading Style Sheet 层叠样式表, 定义了如何显示(装扮) HTML 元素,比如:字体大小和颜色属性等。样式通常保存在外部的 .css 文件中,用于存放一些HTML文件的公共属性,从而通过仅编辑一个简单的 CSS 文档,可以同时改变站点中所有页面的布局和外观。
js
javascript,实现网页的动画效果,但实属于静态资源。

2.MIME
MIME(Multipurpose Internet Mail Extensions)协议是一种互联网标准,用于在电子邮件和其他互联网应用中扩展消息格式。它为不同类型的数据在互联网上的传输和处理提供了一个标准化的框架。
一些常见的MIME类型包括:

  • text/plain: 纯文本
  • text/html: HTML文本
  • image/jpeg: JPEG图像
  • audio/mpeg:MP3音频
  • video/mp4: MP4视频
  • application/pdf: PDF文档
  • application/octet-stream: 二进制数据
    简单来说:如果文件的格式在上述类型中,我们可以直接打开,如果不在,电脑执行下载。

3.URI
URI: Uniform Resource Identifier 统一资源标识,分为URL 和 URN
URN:Uniform Resource Naming,统一资源命名
URL:Uniform Resorce Locator,统一资源定位符,用于描述某服务器某特定资源位置
两者区别:

  • URN如同一个人的名称,而URL代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。URN仅用于命名,而不指定地URL组成。

在这里插入图片描述

  • scheme:协议,访问服务器以获取资源时要使用哪种协议
  • user:用户,某些方案访问资源时需要的用户名
  • password:密码,用户对应的密码,中间用:分隔
  • post:主机,资源宿主服务器的主机名或IP地址
  • port:端口,资源宿主服务器正在监听的端口号,很多方案有默认端口号
  • path:路径,服务器资源的本地名,由一个/将其与前面的URL组件分隔
  • params:参数,指定输入的参数,参数为名/值对,多个参数,用;分隔
  • query:查询,传递参数给程序,如数据库,用?分隔,多个查询用&分隔
  • frag:片段,一小片或一部分资源的名字,此组件在客户端使用,用#分隔

网站访问量

  • IP(独立IP):即Internet Protocol,指独立IP数。
  • PV(访问量): 即Page View, 页面浏览量或点击量,用户每次刷新即被计算一次,PV反映的是浏览某网站的页面数,PV与来访者的数量成正比,PV并不是页面的来访者数量,而是网站被访问的页面数量。
  • UV(独立访客):即Unique Visitor,访问网站的一台电脑为一个访客。一天内相同的客户端只被计算一次。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。

HTTP工作机制

一次http事务包括:

  • http请求:http request
  • http响应:http response

Web资源:web resource, 一个网页由多个资源(文件)构成,打开一个页面,通常会有多个资源展示出来,但是每个资源都要单独请求。因此,一个"Web 页面”通常并不是单个资源,而是一组资源的集合。则需要多个tcp链接。

资源类型:

  • 静态文件:无需服务端做出额外处理,服务器端和客户端的文件内容相同。
    常见文件后缀:.html, .txt, .jpg, .js, .css, .mp3, .avi

  • 动态文件:服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同。
    常见文件后缀:.php, .jsp ,.asp

提高HTTP连接性能

  • 并行连接:通过多条TCP连接发起并发的HTTP请求
  • 持久连接:keep-alive,重用TCP连接,以消除连接和关闭的时延,以事务个数和时间来决定是否关闭连接
  • 管道化连接:通过共享TCP连接,发起并发的HTTP请求
  • 复用的连接:交替传送请求和响应报文

HTTP协议版本

1.http 0.9版本:原型版本,功能简陋,只能执行下载命令。
2.http 1.0版本:加入了多种方法,不仅仅能下载,还能上传,不支持长链接。
3.http1.1版本:引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,是运用最广泛的版本。

HTTP请求访问的完整过程

1.建立连接
2.接收请求
3.处理请求
4.访问资源
5.构建响应报文
6.发送响应报文
7.记录日志
在这里插入图片描述

1.建立连接:
客户端发送请求至服务端,服务端接受或拒绝连接请求。
2.接收请求:
接收客户端请求报文中对资源的一次请求的过程。

  • 单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应
  • 多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求
  • 复用I/O结构:启动一个进程,同时响应N个连接请求
  • 复用的多进程I/O模型:启动M个进程,每个进程响应N个连接请求,同时接收M*N个请求
    在这里插入图片描述
    3.处理请求:
    服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息,根据方法,资源,首部和可选的主体部分对请求进行处理。
    常用请求的方法:GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS
    4.访问资源:
    服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源。
    5.构建响应报文:
    一旦Web服务器识别除了资源,就执行请求方法中描述的动作,并返回响应报文。响应报文中 包含有响应状态码、响应首部,如果生成了响应主体的话,还包括响应主体

1)响应实体:如果事务处理产生了响应主体,就将内容放在响应报文中回送过去。响应报文中通常包括:

描述了响应主体MIME类型的Content-Type首部

描述了响应主体长度的Content-Length 实际报文的主体内容。

2)URL重定向:web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径。

3)MIME类型: Web服务器要负责确定响应主体的MIME类型。多种配置服务器的方法可将MIME类型与资源管理起来。
6.发送响应报文:
Web服务器通过连接发送数据时也会面临与接收数据一样的问题。服务器可能有很多条到各个客户端的连接,有些是空闲的,有些在向服务器发送数据,还有一些在向客户端回送响应数据。服务器要记录连接的状态,还要特别注意对持久连接的处理。对非持久连接而言,服务器应该在发送了整条报文之后,关闭自己这一端的连接。对持久连接来说,连接可能仍保持打开状态,在这种情况下,服务器要正确地计算Content-Length首部,不然客户端就无法知道响应什么时候结束。

7、记录日志:

最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务。

HTTP报文头部

请求报文
在这里插入图片描述

方法:

  • GET: 获取资源 当前网络请求中,绝大部分使用的是 GET 方法
  • HEAD: 获取报文首部,主要用于确认 URL 的有效性以及资源更新的日期时间等
  • POST: 传输实体主体 (比如传输 用户名密码)
  • PUT: 上传文件(比如写博客)
  • PATCH: 对资源进行部分修改
  • DELETE:删除文件
  • OPTIONS:查询支持的方法(查看服务端可以支持哪些方法)
  • CONNECT:要求在与代理服务器通信时建立隧道(类似加密)
  • TRACE:追踪路径

URL:指明资源位置

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
  • scheme协议

    • http 超文本传输协议
    • https 安全的http协议
    • ftp 文件传输协议
  • user:帐号

  • password:密码

  • host:主机名 或 域名 或 ip地址

  • port: 服务器端口号

  • path:访问资源的路径,相当于组件路径

  • params:参数,但是这个不常用,指定一些参数,譬如指定传输方式

  • qurey:查询参数

  • frag:html资源片段,譬如html文档过大的时候,frag定位到html的一部分。

首部字段:
使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容,HTTP 首部字段是由首部字段名和字段值构成的,中间用冒号“:” 分隔 。

实体:
请求时附加的数据或响应时附加的数据,例如:登录网站时的用户名和密码,博客的上传文章,论坛上的发言等。

响应报文

在这里插入图片描述
状态码:
三位数字,标记请求处理过程中发生的情况。

http协议状态码分类
1xx:100-101 信息提示
2xx:200-206 成功连接
3xx:300-307 重定向
4xx:400-415 错误类信息,客户端错误
5xx:500-505 错误类信息,服务器端错误

http协议常用的状态码
200: 成功,请求数据通过响应报文的entity-body部分发送;
301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;
302: 响应报文Location指明资源临时新位置
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;
307: 浏览器内部重定向
401: 需要输入账号和密码认证方能访问资源;
403: 请求被禁止;
404: 服务器无法找到客户端请求的资源;
500: 服务器内部错误;
502: 代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;
503: 服务不可用,临时服务器维护或过载,服务器无法处理请求,比如:php服务停止,无法处理php程序
504: 网关超时

二、httpd安装组成

apache介绍和特点

apache功能:

  • 提供http协议服务
  • 可以虚拟多个主机
  • CGI:Common Gateway Interface,通用网关接口,支持动态程序
  • 反向代理: 代理的是服务端 正向代理: 代理的是客户端
  • 负载均衡
  • 路径别名
  • 丰富的用户认证机制:basic,digest
  • 支持第三方模块

apache特性:

  • 高度模块化:core + modules
  • DSO:Dynamic Shared Object 动态加载/卸载
  • MPM:multi-processing module 多路处理模块

工作模式( MPM multi-processing module )

**prefork:**多进程I/O模型,每个进程响应一个请求,CentOS 7 httpd默认模型一个主进程:生成和回收n个子进程,创建套接字,不响应请求多个子进程:工作 work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求。
Prefork MPM预派生模式,有一个主控制进程,然后生成多个子进程,每个子进程有一个独立的线程响应用户请求,相对比较占用内存,但是比较稳定,可以设置最大和最小进程数,是最古老的一种模式,也是最稳定的模式,适用于访问量不是很大的场景。

优点:稳定,服务周到 。

缺点:慢,占用资源,不适用于高并发场景。
在这里插入图片描述
worker:复用的多进程I/O模型,多进程多线程。
worker MPM是一种多进程和多线程混合的模型,有一个控制进程,启动多个子进程,每个子进程里面包含固定的线程,使用线程程来处理请求,当线程不够使用的时候会再启动一个新的子进程,然后在进程里面再启动线程处理请求,由于其使用了线程处理请求,因此可以承受更高的并发。

优点:相比prefork 占用的内存较少,可以同时处理更多的请求

缺点:使用keep-alive的长连接方式,某个线程会一直被占据,即使没有传输数据,也需要一直等待到超时才会被释放。如果过多的线程,被这样占据,也会导致在高并发场景下的无服务线程可用。(该问题在prefork模式下,同样会发生)
在这里插入图片描述
event:事件驱动模型
一个主进程:生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求:m*n,有专门的监控线程来管理这些keep-alive类型的线程,当有真实请求时,将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力。

event MPM是Apache中最新的模式,每个进程响应多个请求,在现在版本里的已经是稳定可用的模式。它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题(某些线程因为被keep-alive,空挂在哪里等待,中间几乎没有请求过来,甚至等到超时)。event MPM中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力event只在有数据发送的时候才开始建立连接,连接请求才会触发工作线程,即使用了TCP的一个选项,叫做延迟接受连接TCP_DEFER_ACCEPT,加了这个选项后,若客户端只进行TCP连接,不发送请求,则不会触发Accept操作,也就不会触发工作线程去干活,进行了简单的防攻击(TCP连接)。

优点:单线程响应多请求,占据更少的内存,高并发下表现更优秀,会有一个专门的线程来管理keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。

缺点:没有线程安全控制。
在这里插入图片描述

Http相关文件

建议用yum安装
httpd相关文件

配置文件:

  • /etc/httpd/conf/httpd.conf 主配置文件
  • /etc/httpd/conf.d/*.conf 子配置文件
  • /etc/httpd/conf.d/conf.modules.d/ 模块加载的配置文件
    检查配置语法:http-t

服务单元文件:

  • /usr/lib/systemd/system/httpd.service
  • 配置文件:/etc/sysconfig/httpd

Http编译安装

APR概念说明
APR:Apache portable Run-time libraries,Apache可移植运行库,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。
在这里插入图片描述
编译安装过程
安装编译所需的软件即调试依赖环境。

在这里插入图片描述
准备httpd软件包。
在这里插入图片描述
将apr导入到http包下面。
在这里插入图片描述
编译代码

cd  httpd-2.4.46/
[root@centos7 ~]./configure --prefix=/apps/httpd \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
make  &&  make install

设置service服务,使得可以用systemd管理httpd服务。
在这里插入图片描述
至此编译安装完成。

httpd常见配置

指定服务器名
指定服务器名,一般要求服务器使用域名登录,一般不用IP地址,故需要给他指定域名。
在这里插入图片描述
在第95行设置你的域名。
在这里插入图片描述
主配置文件能读取子配置文件
情况模拟:一台服务器上可能会部署多个软件,全部写在主配置文件中,不仅会增加维护难度,如果一个配置出现错误,所有软件都不能提供服务,故出现了子配置文件。但如何让主配置文件知道子配置文件呢?
主配置文件中会有如下配置:
在这里插入图片描述
同样可以换成Include;Include和IncludeOptional功能相同,都可以包括其它配置文件,但是当无匹配文件时,include会报错,IncludeOptional会忽略错误。

监听地址
在这里插入图片描述
注意:

  • 省略IP表示所有IP均可访问
  • listen指令至少一个,可以重复出现多次。

隐藏服务器版本信息

在这里插入图片描述
语法
ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full

ServerTokens Prod[uctOnly] :Server: Apache
ServerTokens Major: Server: Apache/2
ServerTokens Minor: Server: Apache/2.0
ServerTokens Min[imal]: Server: Apache/2.0.41
ServerTokens OS: Server: Apache/2.0.41 (Unix)
ServerTokens Full (or not specified): Server: Apache/2.0.41 (Unix) 

在配置文件中写下上述语句即可形成该效果。

在这里插入图片描述
持久连接
Persistent Connection:连接建立,每个资源获取完成后不会断开连接,而是继续等待其它的请求完成,默认开启持久连接。
默认开启持久连接,持久连接断开条件:

  • 时间限制:以秒为单位, 默认5s,httpd-2.4 支持毫秒级。
  • 请求数量: 请求数达到指定值,也会断开。
    缺点:对并发访问量大的服务器,持久连接会使有些请求得不到响应。
    建议:使用较短的持久连接时间
KeepAlive On|Off
KeepAliveTimeout 15      #连接持续15s,可以以ms为单位,默认值为5s
MaxKeepAliveRequests 500 #持久连接最大接收的请求数,默认值100

定义Main server的文档页面路径

DocumentRoot   "/path”
<directory /path>Require all granted
</directory>

说明:

  • DocumentRoot指向的路径为URL路径的起始位置
  • /path 必须显式授权后才可以访问

示例:

DocumentRoot "/data/html"
<directory /data/html>Require all granted
</directory>

URL和磁盘本地路径的映射关系
http://HOST:PORT/test/index.html --> /data/html/test/index.html

别名
格式

alias /URL/  /PATH/

在这里插入图片描述
在这里插入图片描述

定义站点默认主页面文件

当我们访问服务器时 省略了最后的文件, 默认自动会加上 index.html 。这个是可以修改的,如果找不到在这一行的文件,会404报错。
在这里插入图片描述

虚拟主机

httpd 支持在一台物理主机上实现多个网站,即多虚拟主机

网站的唯一标识:

  • IP相同,但端口不同
  • IP不同,但端口均为默认端口
  • FQDN不同, IP和端口都相同

多虚拟主机有三种实现方案:

  • 基于ip:为每个虚拟主机准备至少一个ip地址
  • 基于port:为每个虚拟主机使用至少一个独立的port
  • 基于FQDN:为每个虚拟主机使用至少一个FQDN,请求报文中首部

模版文件在 该路径下/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf
在这里插入图片描述

基于端口号
在这里插入图片描述
在这里插入图片描述
基于IP地址
在这里插入图片描述
在这里插入图片描述

基于域名
在这里插入图片描述
在这里插入图片描述

基于客户端IP地址实现访问控制
基于客户端 IP 地址实现访问控制

针对各种资源,可以基于以下两种方式的访问控制:

  • 客户端来源地址
  • 用户账号

基于客户端的IP地址的访问控制:

  • 无明确授权的目录,默认拒绝

  • 允许所有主机访问:Require all granted

  • 拒绝所有主机访问:Require all denied

  • 控制特定的IP访问:

    • Require ip IPADDR:授权指定来源的IP访问
    • Require not ip IPADDR:拒绝特定的IP访问
  • 控制特定的主机访问:

    • Require host HOSTNAME:授权特定主机访问
    • Require not host HOSTNAME:拒绝
    • HOSTNAME:
      • FQDN:特定主机
      • domin.tld:指定域名下的所有主机

白名单(多个语句只要有一个成功则成功)

<Directory "/data"><RequireAny>Require all deniedrequire ip 192.168.232.20</RequireAny>
</Directory>

黑名单,不能有失败,至少有一个成功匹配才成功,失败优先。

<Directory "/data"><RequireAll>Require all grantedrequire not ip 192.168.91.101</RequireAll>
</Directory>

日志

httpd有两种日志格式

  • 访问日志
  • 错误日志

如果访问不成功,先去看日志中的状态码,快速定位错误。

在这里插入图片描述
这是定义的日志格式的名字。

%h   #客户端IP地址
%l   #远程用户,启用mod_ident才有效,通常为减号"-%u   #验证(basic,digest)远程用户,非登录访问时,为一个减号"-%t   #服务器收到请求时的时间
%r   #First line of request,即表示请求报文的首行;记录了此次请求的"方法”,"URL”以及协议版本
%>s  #响应状态码
%b   #响应报文的大小,单位是字节;不包括响应报文http首部
%{Referer}i     #请求报文中首部"referer”的值;即从哪个页面中的超链接跳转至当前页面的
%{User-Agent}i  #请求报文中首部"User-Agent”的值;即发出请求的应用程序
%{VARNAME}i     #请求中发送到服务器的 VARNAME 头部行的内容

基于用户的访问控制

认证质询:WWW-Authenticate,响应码为401,拒绝客户端请求,并说明要求客户端需要提供账号和密码。

认证:Authorization,客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的资源。

使用htpasswd模块

-c 自动创建文件,仅应该在文件不存在时使用
-b 非交互方式创建用户,命令后面可以接密码
-p 明文密码
-d CRYPT格式加密,默认
-m md5格式加密
-s sha格式加密
-D 删除指定用户

操作
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

显示器与电脑如何分屏显示?

1.点击电脑屏幕右键--显示设置 2、然后找到屏幕---找到多显示器---选择扩展显示器

OpenAI 推出ChatGPT Edu,为高校定制版本

近日&#xff0c;OpenAI 宣布推出 ChatGPT Edu&#xff0c;这是一款专为高校打造的 ChatGPT 版本&#xff0c;旨在帮助学生、教师、研究人员和校园运营部门以负责任的方式部署和使用 AI。 ChatGPT Edu 由 GPT-4o 提供支持&#xff0c;具备强大的文本和图像推理能力&#xff0c;…

Java18新版本特性!

Java 18引入了多项新特性&#xff0c;主要包括默认UTF-8字符集、简单的Web服务器、栈步进API等。Java 18是Oracle在2022年发布的版本&#xff0c;其旨在通过一系列创新特性来提升开发效率与性能。下面将逐一探讨Java 18的主要新特性以及它们对开发者的具体影响&#xff1a; 默认…

7、css3实现边框不停地跑动效果

效果例图&#xff1a; 1、上html代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><meta …

文明互鉴促发展——2024“国际山地旅游日”主题活动在法国启幕

5月29日&#xff0c;2024“国际山地旅游日”主题活动在法国尼斯市成功举办。中国驻法国使领馆、法国文化旅游部门、地方政府、国际组织、国际山地旅游联盟会员代表、旅游机构、企业、专家、媒体等围绕“文明互鉴的山地旅游”大会主题和“气候变化与山地旅游应对之策”论坛主题展…

GNU Radio实现OFDM Radar

文章目录 前言一、GNU Radio Radar Toolbox编译及安装二、ofdm radar 原理讲解三、GNU Radio 实现 OFDM Radar1、官方提供的 grc①、grc 图②、运行结果 2、修改后的便于后续可实现探测和通信的 grc①、grc 图②、运行结果 四、资源自取 前言 本文使用 GNU Radio 搭建 OFDM Ra…

项目3 构建移动电商服务器集群

项目引入 经过前期加班加点地忙碌&#xff0c;我们的网站顺利上线了&#xff01;年中促销活动也如约而至&#xff0c;虽然公司全体对这次活动进行多方面地准备和“布防”&#xff0c;可是意外还是发生了。就在促销优惠购物活动的当天&#xff0c;猛然增加的用户访问量直接导致浏…

java线程状态介绍

1.新建&#xff08;New&#xff09;: 线程对象已创建&#xff0c;但还没有调用 start() 方法。 2.可运行&#xff08;Runnable&#xff09;: 线程已启动&#xff0c;处于就绪状态&#xff0c;等待 JVM 的线程调度器分配CPU时间。 3.阻塞&#xff08;Blocked&#xff09;: 线程…

利用博弈论改进大模型性能:MIT最新研究解读

引言 在人工智能和大模型的发展过程中&#xff0c;我们常常遇到一个有趣的现象&#xff1a;同一个问题在不同形式下可能得到不同的答案。这种不一致性不仅降低了大模型的可信度&#xff0c;也限制了其在实际应用中的效果。为了应对这一问题&#xff0c;来自MIT的研究人员提出了…

Element快速入门

Vue组件库Element 1 Element介绍 vue是侧重于VM开发的&#xff0c;主要用于数据绑定到视图的&#xff0c;ElementUI就是一款侧重于V开发的前端框架&#xff0c;主要用于开发美观的页面的。 Element&#xff1a;是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库&…

深入理解 Go 语言中的字符串不可变性与底层实现

文章目录 前言1 字符串类型的数据结构组成2 为什么要这么设计数据结构&#xff1f;3 为什么说字符串类型不可修改&#xff1f;4 如何实现字符串的修改&#xff1f;5 为什么字符串修改的字面量用单引号&#xff1f;6 如何判断字符串的修改新建了一个字符串&#xff1f;7 字符串的…

c基础 - 输入输出

目录 一.scanf() 和 printf() 函数 1.printf 2.scanf 二 . getchar() & putchar() 函数 1.int getchar(void) 2.int putchar(int c) 三. gets() & puts() 函数 一.scanf() 和 printf() 函数 #include <stdio.h> 需要引入头文件,stdio.h 1.printf print…

M-G364PD惯性测量单元:相机及微小层面的革命性应用

在现代科技飞速发展的今天&#xff0c;精准控制和精确测量是众多高端设备实现卓越性能的关键。爱普生推出的M-G364PD惯性测量单元&#xff08;IMU&#xff09;&#xff0c;因其卓越的性能和微小尺寸&#xff0c;成为相机以及其他微小层面应用的理想选择&#xff0c;为科技创新提…

存储 Bean 对象更加简单的方式

前置操作 如果是在 spring-config 中添加 bean 标签来注册内容&#xff0c;每个类都要弄一次就显得麻烦和臃肿了&#xff0c;对于 new 操作而言就没有什么优势了。因此 spring 就引入了注解操作来实现对 Bean 对象的存储。 配置扫描路径 想要将对象成功的存储到 Spring 中&…

python onnxruntime DLL load failed: 找不到指定的模块

在安装ddddocr 报错&#xff1a;ImportError: DLL load failed while importing onnxruntime_pybind11_state: 找不到指定的模块 试了降到onnxruntime 1.8.0版本&#xff0c;升级pip再重装ddddocr均无效。 这个错误通常是因为缺少onnxruntime_pybind11_state.dll文件或者没有…

Liunx中使用他人身份来执行命令或新建文件

前言 在一些情况下。我们想要借助某个用户的身份来执行命令或者新建文件&#xff0c; 比如某个用户的bash是 nologin 或者 false。 该怎么做呢&#xff1f;&#xff1f; 答&#xff1a;使用 sudo -u 即可。 例如&#xff1a; sudo -u ygz1 touch temp1.txt哈哈哈&#xff0…

android gradle8.3 发布插件踩过的坑

之前写过gradle6.x和gradle7.x的插件&#xff0c;会有一些改动&#xff0c;到8.x我发现又有一些变化&#xff0c;记录一下&#xff0c;防止后边再遇到相同的情况 下边是插件的gradle文件配置 plugins {id("java-gradle-plugin") //会自动引入java-library、gradleAp…

摄影后期照片编辑工具:LrC2024 for Mac/win 中文激活版

LrC2024&#xff08;Lightroom Classic 2024&#xff09;是 Adobe 公司推出的一款专业级别的照片编辑和管理软件。它是 Lightroom Classic CC 的升级版&#xff0c;具有更多的功能和改进。 这款软件主要用于数字摄影师和摄影爱好者处理、编辑和管理他们的照片。它提供了一套强大…

【网络安全的神秘世界】在win11搭建pikachu靶场

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载pikachu压缩包 https://github.com/zhuifengshaonianhanlu/pikachu 下载好的pikachu放在phpstudy_pro/www目录下 创建pikachu数据库 打开phpstudy软件…

独立开发的轻量级简洁开源论坛BBS PHP源码

最新的轻量级开源论坛php源码发布啦&#xff01;这是一款独立开发的论坛系统&#xff0c;可以帮助你快速地开发出你想要的网站。 如果你是PHP初学者&#xff0c;这款论坛系统非常适合你入门学习。不过&#xff0c;需要注意的是&#xff0c;由于它并没有进行商业化改造&#xf…