详解Web服务器与http https协议工作过程

news2024/11/20 2:46:37

Web服务器

URL

URI

URL是URI的一个子集

www 

www所用的协议

http请求报文分析

 状态码(空行:最后一

个响应头部之后是一个空行,发送回车符和换行符,通知服务器以下不再有响应头部。)

 网址解析

网址注释实例

 HTTP 请求/响应的步骤:

httpd 目录详解

*.conf配置文件注释

 同一个IP基于不同端口来访问两个网站的配置思路

HTTPS的安全通信机制:

工作流程可大致分为三个阶段:

练习


Web服务器

指网站服务器,是指驻留与因特网上某种类型计算机的程序,可以向浏览器等WEB客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

URL

Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址,URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL是URI概念的一种实现方式。

URI

统一资源标识符,表示Web上每一种可用的资源,如HTML文档,图像,视频片段,程序等都是由一个URI进行标识的。

URL是URI的一个子集

www 

 www是world wide web的缩写,也就是全球信息广播的意思。通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方式将信息以Internet传递到世界各处去。

 与其他服务器类似,当你连接上www网站,该网站肯定会提供一些数据,而你的客户端则必须要使用可以解析这些数据的软件来处理,那就是浏览器。www服务器与客户端浏览器之间的连接图。

www所用的协议

 HTTP超文本传输协议(HyperText Transfer Protocal),是互联网上最广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。

 它是建立在TCP上一种的无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事务,当一个事物结束后还会在服务端添加一条日志条目。

开始正文

http请求报文分析

 

 状态码(空行:最后一

个响应头部之后是一个空行,发送回车符和换行符,通知服务器以下不再有响应头部。)

 1xx:表示服务器已接收了客户端请求,客户端可继续发送请求;

  2xx:表示服务器已成功接收到请求并进行处理;

  3xx:表示服务器要求客户端重定向;

  4xx:表示客户端的请求有非法内容;

  5xx:表示服务器未能正常处理客户端的请求而出现意外错误;

  200 OK:表示客户端请求成功;

  400 Bad Request:表示客户端请求有语法错误,不能被服务器所理解;

  401 Unauthonzed:表示请求未经授权,该状态代码必须与 WWW-Authenticate 报头域一起使用;

  403 Forbidden:表示服务器收到请求,但是拒绝提供服务,通常会在响应正文中给出不提供服务的原因;

  404 Not Found:请求的资源不存在,例如,输入了错误的URL;

  500 Internal Server Error:表示服务器发生不可预期的错误,导致无法完成客户端的请求;

  503 Service Unavailable:表示服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常;

  Location:Location响应报头域用于重定向接受者到一个新的位置。例如:客户端所请求的页面已不存在原先的位置,为了让客户端重定向到这个页面新的位置,服务器端可以发回Location响应报头后使用重定向语句,让客户端去访问新的域名所对应的服务器上的资源;

  Server:Server 响应报头域包含了服务器用来处理请求的软件信息及其版本。它和 User-Agent 请求报头域是相对应的,前者发送服务器端软件的信息,后者发送客户端软件(浏览器)和操作系统的信息。

  Vary:指示不可缓存的请求头列表;

 网址解析

URL:  <协议>://<主机或主机名>[:port]/<目录资源,路径>

协议:http, https, ftp
主机或主机名:www.baidu.com/www.csdn.net/192.168.233.154
[:port]: 可以省略:使用默认值:80,443,21
路径: 协议+主机+port -》 唯一定位到一个主机,具体的某一个服务 -》 实际上就是去访问一个资源-》 静态的资源:肯定是存放在Linux上某一个目录
           web服务器:给我们提供了一个目录:来存放资源文件 -》 /var/www/html/
http://192.168.233.154/index.html -> /var/www/html/index.html -> /index.html 错误的理解-》 /index.html

路径参数
查询参数
片段: #片段的名字

网址注释实例

https://blog.csdn.net/xc_zhou/article/details/80907101;xxx?name=123&gender=1#fragment
https: 协议
blog.csdn.net: 主机
/xc_zhou/article/details/80907101: 路径
;xxx:路径参数
name=123&gender=1:查询参数
frament: 片段

 HTTP 请求/响应的步骤:

  ● 客户端连接到web服务器:HTTP 客户端与web服务器建立一个 TCP 连接;

  ● 客户端向服务器发起 HTTP 请求:通过已建立的TCP 连接,客户端向服务器发送一个请求报文;

  ● 服务器接收 HTTP 请求并返回 HTTP 响应:服务器解析请求,定位请求资源,服务器将资源副本写到 TCP 连接,由客户端读取;

  ● 释放 TCP 连接:若connection 模式为close,则服务器主动关闭TCP 连接,客户端被动关闭连接,释放TCP 连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

  ● 客户端浏览器解析HTML内容:客户端将服务器响应的 html 文本解析并显示;

目录/etc/httpd

[root@manage html]# tree /etc/httpd/
/etc/httpd/
├── conf
│   ├── httpd.conf
│   └── magic
├── conf.d
│   ├── autoindex.conf
│   ├── README
│   ├── userdir.conf
│   └── welcome.conf
├── conf.modules.d
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-optional.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   ├── 01-cgi.conf
│   ├── 10-h2.conf
│   ├── 10-proxy_h2.conf
│   └── README
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
├── run -> /run/httpd
└── state -> ../../var/lib/httpd

7 directories, 17 files

[root@manage html]# tree -L 1 /etc/httpd/
/etc/httpd/
├── conf
├── conf.d
├── conf.modules.d
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
├── run -> /run/httpd
└── state -> ../../var/lib/httpd

httpd 目录详解

这三个目录中存放的都是配置文件:
conf:  存放的主配置文件
conf.d: 存放额外的配置文件: 必须以.conf为后缀才生效
conf.modules.d: 存放有关模块的配置文件, 必须以.conf后缀才生效
在conf/httpd.conf这文件中,有这样的配置:
Include conf.modules.d/*.conf   : 
IncludeOptional conf.d/*.conf   :

logs: 日志存放的位置
modules: 指定httpd相关模块存放的路径
run: 运行的一些信息
state: 状态的一些信息

*.conf配置文件注释

192.168.233.154 -》 /var/www/html
<Directory> -> 用来设置谁可以访问这个目录,以及对这个目录具备的权限

192.168.233.154 -》 /var/www/html
192.168.233.154/index.html -> /var/www/html/index.html
/index.html  -> /var/www/html/index.html

.htaccess -> 额外的权限配置文件:allowoverride none -> 不允许额外权限配置文件来重写

require: 设置客户端的访问权限:require all denied -> 拒绝所有人

AllowOverride:
表示是否允许额外配置文件".htaccess"的权限复写?可以在httpd.conf内设置好所有的权限,如此一来若用户的个人网页想要修改权限时
将会对管理员造成困扰。因此Apache默认可以让用户以目录下面的.htaccess文件复写<Directory>内的权限设置。这个项目则规定".htaccess"可以复写的权限类型有哪些?
     ALL: 全部的权限均可被复写
     
     AuthConfig: 仅有网页认证(账号密码)可复写,允许使用与认证授权相关的指令
                 AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require
                 
     FileInfo: 允许使用控制文档类型的指令
               AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, 
               FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName,

     Indexes: 仅允许Indexes方面的复写
              
     Limits: 允许用户利用Allow,Deny与Order管理可浏览的权限。
     
     None: 不可复写,即".htaccess"文件失效

Require:
 Require all granted #允许所有来源访问
 Require all denied #拒绝所有来源访问
 Require expr expression #允许表达式为true时访问
 Require ip 10 172.20 192.168.2 #允许 特定IP段访问,多个段之前用空格隔开。每个段使用开头几项表示
 Require host splaybow.com #只允许来自域名splaybow.com的主机访问
 
 Require all granted
     Access is allowed unconditionally.
    Require all denied
     Access is denied unconditionally.
    Require env env-var [env-var] ...
     Access is allowed only if one of the given environment variables is set.
    Require method http-method [http-method] ...
     Access is allowed only for the given HTTP methods.
    Require expr expression
     Access is allowed if expression evaluates to true.
        Some of the allowed syntaxes provided by mod_authz_user, mod_authz_host, and mod_authz_groupfile 
         are:
 Require user userid [userid] ...
     Only the named users can access the resource.
    Require group group-name [group-name] ...
     Only users in the named groups can access the resource.
    Require valid-user
     All valid users can access the resource.
    Require ip 10 172.20 192.168.2
     Clients in the specified IP address ranges can access the resource.
    Require forward-dns dynamic.example.org
     A client the IP of which is resolved from the name dynamic.example.org will be granted access.

 Options Indexes FollowSymLinks

语法:Options [+|-]option [[+|-]option] ...
         option可以为None,不启用任何额外特性,或者下面选项中的一个或多个:
                All  除MultiViews之外的所有特性,这是默认设置。
                ExecCGI  允许使用mod_cgi执行CGI脚本。
                FollowSymLinks  服务器允许在此目录中使用符号连接,如果此配置位于<Location>配置段中,则会被忽略。
                Includes  允许使用mod_include提供的服务器端包含。
                IncludesNOEXEC  允许服务器端包含,但禁用"#exec cmd"和"#exec cgi",但仍可以从ScriptAlias目录使
                                 用"#include virtual"虚拟CGI脚本。
                Indexes  如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会
                          返回由mod_autoindex生成的一个格式化后的目录列表。
                MultiViews  允许使用mod_negotiation提供内容协商的"多重视图"(MultiViews)。
                SymLinksIfOwnerMatch  服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。 如果此配置出
                          现在<Location>配置段中,则将被忽略。
          一般来说,如果一个目录被多次设置了Options ,则最特殊的一个会被完全接受(其它的被忽略),而各个可选项的设定彼此并不融
          合。然而,如果所有作用于Options指令的可选项前都加有"+" 或"-"符号,此可选项将被合并。所有前面加有"+"号的可选项将强制
          覆盖当前的可选项设置,而所有前面有"-"号的可选项将强制从当前可选项设置中去除。

options: 配置在directory中,还是设置目录的权限
options indexes FollowSymLinks
indexes: 如果URL访问web服务器,有path: 192.168.233.154 -> /var/www/html, 当是没有DirectoryIndex指令指定的首页文件:,他会去有mod_autoindex生成一个目录列表,即列出来我们当前目录下有哪些文件

192.168.233.1 - - [06/Jan/2023:14:26:49 +0800] "GET /index.html HTTP/1.1" 200 26 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"

注释

%…a: 远程IP地址
%…A: 本地IP地址
%…B: 已发送的字节数,不包含HTTP头
%…b: CLF格式的已发送字节数量,不包含HTTP头。例如当没有发送数据时,写入‘-’而不是0。
%…{FOOBAR}e: 环境变量FOOBAR的内容
%…f: 文件名字
%…h: 远程主机
%…H 请求的协议
%…{Foobar}i: Foobar的内容,发送给服务器的请求的标头行。
%…l: 远程登录名字(来自identd,如提供的话)
%…m 请求的方法
%…{Foobar}n: 来自另外一个模块的注解“Foobar”的内容
%…{Foobar}o: Foobar的内容,应答的标头行
%…p: 服务器响应请求时使用的端口
%…P: 响应请求的子进程ID。
%…q 查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)
%…r: 请求的第一行
%…s: 状态。对于进行内部重定向的请求,这是指*原来*请求 的状态。如果用%…>s,则是指后来的请求。
%…t: 以公共日志时间格式表示的时间(或称为标准英文格式)
%…{format}t: 以指定格式format表示的时间
%…T: 为响应请求而耗费的时间,以秒计
%…u: 远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)
%…U: 用户所请求的URL路径
%…v: 响应请求的服务器的ServerName
%…V: 依照UseCanonicalName设置得到的服务器名字
%…a: 远程IP地址
%…A: 本地IP地址
%…B: 已发送的字节数,不包含HTTP头
%…b: CLF格式的已发送字节数量,不包含HTTP头。例如当没有发送数据时,写入‘-’而不是0。
%…{FOOBAR}e: 环境变量FOOBAR的内容
%…f: 文件名字
%…h: 远程主机
%…H 请求的协议
%…{Foobar}i: Foobar的内容,发送给服务器的请求的标头行。
%…l: 远程登录名字(来自identd,如提供的话)
%…m 请求的方法
%…{Foobar}n: 来自另外一个模块的注解“Foobar”的内容
%…{Foobar}o: Foobar的内容,应答的标头行
%…p: 服务器响应请求时使用的端口
%…P: 响应请求的子进程ID。
%…q 查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)
%…r: 请求的第一行
%…s: 状态。对于进行内部重定向的请求,这是指*原来*请求 的状态。如果用%…>s,则是指后来的请求。
%…t: 以公共日志时间格式表示的时间(或称为标准英文格式)
%…{format}t: 以指定格式format表示的时间
%…T: 为响应请求而耗费的时间,以秒计
%…u: 远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)
%…U: 用户所请求的URL路径
%…v: 响应请求的服务器的ServerName
%…V: 依照UseCanonicalName设置得到的服务器名字

配置文件注释

<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /.noindex.html
</LocationMatch>

<Directory /usr/share/httpd/noindex>
    AllowOverride None
    Require all granted
</Directory>

Alias /.noindex.html /usr/share/httpd/noindex/index.html
Alias /poweredby.png /usr/share/httpd/icons/apache_pb3.png

注释

LocationMatch: 路径匹配: ^/+$
^: 代表以....开始
$: 代表以....结束

/: /字符串
+: 代表的是/重复1次或任意多次

192.168.233.154 -》 /hello.html  
192.168.233.154/
192.168.233.154//
192.168.233.154///

 同一个IP基于不同端口来访问两个网站的配置思路

1.同一个IP基于不同端口来访问两个网站:192.168.233.155:80, 8080
  TCP -> IP+PORT -> 形成一条连接
              IP+PORT1 -> 一个连接 (虚拟主机) -》 192.168.233.155:80
              IP+PORT2 -> 一个连接   (虚拟主机)     192.168.233.155:8080
             浏览器 -》 ip+port 访问服务器 -》 监听port端口号 : Listen 80
2. 192.168.233.126:80, 8080 -> 虚拟主机的目录
    192.168.233.127:8080 -> /var/www/html/index.html
     Listen 8080 -> 针对所有的IP的8080端口
     192.168.233.126:8080, 80 -》 对应的虚拟主机的目录
     192.168.233.127:8080 ->  /var/www/html

HTTPS的安全通信机制:

工作流程可大致分为三个阶段:

认证服务器:浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构,存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移除我们不信任的CA机构。

协商会话密钥:客户端在认证完服务器,获得服务器的公钥之后,利用该公钥与服务器进行加密通信,协商出两个会话密钥,分别是用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。在已有服务器公钥,可以加密通讯的前提下,还要协商两个对称密钥的原因,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。

加密通讯:此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。这样网路上的其它用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而保证了数据的私密性和完整性。

PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的网络环境。PKI 主要包括四个部分:X.509 格式的证书(X.509 V3)和证书废止列表CRL(X.509 V2);CA 操作协议;CA 管理协议;CA 政策制定。

X.509通用的证书格式包含三个文件:key,csr,crt。

key是私钥文件。

csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名。

crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

mod_ssl是一种以openssl 的工具箱为基础专门为apache webserver 提供密码保护的软件。

练习

作业: 1. 基于同一IP的不同端口访问不同的网站(可以通过域名去访问) ip+port1 -> 对应一个域名 ip+port2 -> 对应一个域名 使用域名1我应该访问到 ip+port1对应的内容 使用域名2我应该访问到 ip+port2对应的内容

1.新建目录port 9090与9091

mkdir /www/port/9090
mkdir /www/port/9091

2.编辑虚拟主机配置文件目录

vim /etc/httpd/conf.d/host.conf 

3.配置虚拟主机配置文件

<Directory "/www/port">    //#目录为根,<>为起始标志,</>为结束标志
AllowOverride None   //  #不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件。
Require all granted  // #允许访问根
</Directory>  //是一组标签,目录控制容器
Listen 192.168.5.131:9090  
Listen 192.168.5.131:9091

<VirtualHost 192.168.5.131:9090>
DocumentRoot "/www/port/9090"
ServerName www.230106.com
</VirtualHost>
<VirtualHost 192.168.5.131:9091>
ServerName www.230107.com
DocumentRoot "/www/port/9091"
</VirtualHost>

4.重启httpd服务

systemctl restart httpd

 5.测试

 代码测试

浏览器测试

 

 

 实验完成

2. 你知道的hash算法有哪些 对称加密算法有哪些 非对称加密的算法有哪些

MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

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

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

相关文章

从工厂方法到注解的小例子

目录一、背景介绍二、思路&方案三、过程过程图一过程图二过程图三过程图四(运行时的图)代码四、总结五、升华一、背景介绍 上篇"自定义注解和注解解析器",通过小例子介绍了自定义注解的运用&#xff1b;本篇继续基于小例子来实现工厂方法&#xff0c;以及注解实…

linux Regmap API

1.针对 I2C 和 SPI 设备寄存器的操作都是通过相关的 API 函数进行操作的。这样 Linux 内核中就会充斥着大量的重复、冗余代码&#xff0c;但是这些本质上都是对寄存器的操作&#xff0c;所以为了方便内核开发人员统一访问I2C/SPI 设备的时候&#xff0c;为此引入了 Regmap 子系…

如何用智能地教狗狗上厕所

背景 22年养了一只很可爱的小狗狗&#xff0c;我其实就一个问题&#xff1a;为啥这么可爱的狗狗会拉屎撒尿呀&#xff1f; 自从崽崽来了我们家之后&#xff0c;最让我们头疼的就是它乱拉、乱尿的问题了&#xff0c;以前会在家里到处乱来&#xff0c;最近一段时间好了很多&…

机器学习(整体结构)

国科大《机器学习》内容&#xff0c;周晓飞老师讲的挺不错的&#xff0c;浅显易懂。 本来是想整理下课程内容的&#xff0c;然而动手后才发现内容过多&#xff08;很想吐槽&#xff0c;为啥这么多模型&#xff1f;不能相互替代么&#xff1f;&#xff09;简略画个思维导图算啦…

探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter-返回值处理

前言 上回我们回答了ReqeustMappingHandlerAdapter调用目标方法的参数解析问题&#xff0c;今天我们再来回答第二个问题&#xff1a;怎么处理方法调用的返回值。 深入分析返回值处理需求 RequestMapping处理器的返回值类型 相信很多同学对于这个返回值的第一个反应就是返回一…

图解JDK1.7中HashMap头插法扩容造成的死循环问题

JDK1.7中HashMap头插法扩容造成的死循环问题 文章目录JDK1.7中HashMap头插法扩容造成的死循环问题一、背景二、源码解读三、图解单线程环境中扩容多线程环境中扩容四.总结一、背景 HashMap是线程不安全的&#xff0c;在并发使用HashMap时很容易出现一些问题&#xff0c;其中最…

ArcGIS基础实验操作100例--实验66符号图层的保存与加载

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验66 符号图层的保存与加载 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff0…

【OpenGL】基础光照

介绍 现实世界中的光照是极其复杂&#xff0c;难以计算的&#xff0c;因此OpenGL的光照使用的是简化的模型&#xff0c;其中一个模型被称为冯氏光照模型(Phong Lighting Model)。 冯氏光照模型的主要结构由三个分量组成&#xff1a; 环境(Ambient)光照漫反射(Diffuse)光照镜…

blender学习笔记2023.01.05

文章目录why基操why 想画条大黄鱼 想画一下渔网 网箱 写笔记预防忘记 基操 1.语言改为中文 不过后续可能改回英文去 2.顶部导航栏—编辑—偏好设置—界面—翻译—&#xff08;关掉&#xff09;新建数据 目的是预防插件导致奇奇怪怪的报错 这里左下角位置处点击 保存修改 3…

初识LCD1602及编程实现字符显示

一、LCD1602基础知识及接线方法LCD1602是一种工业字符型液晶&#xff0c;能够同时显示16x02即32字符&#xff08;16列两行&#xff09;引脚说明第 1 脚: VSS 为电源地 第 2 脚: VDD 接 5V 正电源 第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱&#xff0c;接地时…

【Neo4j构建知识图谱】:官方服务图谱大型数据集下载与可视化方法【数据集包括:食谱数据、足球、权力的游戏、美国宇航局、英国公司注册、财产所有权、政治捐款】

目录 1、服务端口免费查看知识图谱2、关于 Neo4j 示例数据集的实现3、下载离线数据集4、项目概览与实现案例还可以看到解析python源码还可以看到解析cypher源码各种数据集实现案例参考1、服务端口免费查看知识图谱 此服务器托管许多具有只读访问权限的数据集,供公众使用。 该…

2022尚硅谷SSM框架跟学(三)MyBatis基础三

2022尚硅谷SSM框架跟学 三 MyBatis基础三9.动态SQL9.1if9.2where方法一:加入恒成立的条件方法二:使用where标签9.3trim9.4choose、when、otherwise9.5foreach9.51批量添加9.52批量删除批量删除方式1批量删除方式2批量删除方式39.6SQL片段10.MyBatis的缓存10.1MyBatis的一级缓存…

JS基础(一)——认识JS及其基础语法

网页的三个组成部分 HTML&#xff1a;用于控制网页的内容CSS&#xff1a;用于控制网页的样式JavaScript&#xff1a;用于控制网页的行为 网页的行为指用户与浏览器的行为交互、浏览器与浏览器与服务器的数据交互。 ECMAScriptS&#xff08;ES&#xff09; ECMAScriptS是Java…

OpenCV入门

OpenCV入门图像金字塔高斯金字塔(cv2.pyrUp、cv.pyrDown)拉普拉斯金字塔边缘检测图像轮廓 (cv2.findContours)轮廓特征&#xff08;cv2.contourArea、cv2.arcLength&#xff09;轮廓近似(cv2.approxPolyDP)边界矩形、外接圆(cv2.boundingRect、cv2.minEnclosingCircle)模板匹配…

C库函数:time.h

time.h C 标准库 – <time.h> | 菜鸟教程 (runoob.com) 库变量 下面是头文件 time.h 中定义的变量类型&#xff1a; 序号变量 & 描述1size_t 是无符号整数类型&#xff0c;它是 sizeof 关键字的结果。2clock_t 这是一个适合存储处理器时间的类型。3time_t is 这是一…

C库函数:math.h

math.h C 标准库 – <math.h> | 菜鸟教程 (runoob.com) 16double pow(double x, double y) 返回 x 的 y 次幂。17double sqrt(double x) 返回 x 的平方根。18double ceil(double x) 返回大于或等于 x 的最小的整数值。19double fabs(double x) 返回 x 的绝对值。20doubl…

矩阵分析:QR分解

Householder变换 Householder变换是一种简洁而有意思的线性变换&#xff0c;也可称为镜面反射变换&#xff0c;Householder变换矩阵为HI−wTwHI-w^TwHI−wTw 考虑向量α\alphaα和一个单位向量w:wTw1w:w^{T}w1w:wTw1 α\alphaα在www 方向上的分量是 αw//(wTα)wwwTα\alpha _…

Python快速制作自动填写脚本:100%准确率

嗨害大家好鸭&#xff01;我是小熊猫~ 环境使用 Python 3.8Pycharm 模块使用 import requests —> 数据请求模块 pip install requestsimport parsel —> 数据解析模块 pip install parselfrom selenium import webdriver —> 自动测试模块 pip install selenium3.…

#H. Linear Approximation

Description给你一个数列A&#xff0c;希望你找出一个数字B。使得下面这个式子的值最小Abs(A1-(B1))Abs(A2-(B2))Abs(A3-(B3))..........Abs(An-(Bn))FormatInput第一行给出输入n第二行给出数列A,数字的值在[1,1e9]N<2e5Output如题Samples输入数据 152 2 3 5 5输出数据 12思…

WQS二分

本博客以一种较为少见的方式来解释WQS二分。 题目 首先&#xff0c;WQS二分用于解决什么问题&#xff1f; 我们先看一个伞兵题目&#xff1a; 有一个 nnn 个数的数组 aaa。 求在 aaa 中恰好选择 mmm 个数的情况下&#xff0c;选择的数的和的最大值。 你现在看到了这个题目&a…