当前位置: 首页 > news >正文

【小沐学Python】各种Web服务器汇总(Python、Node.js、PHP、httpd、Nginx)

文章目录

  • 1、Web服务器
  • 2、Python
    • 2.1 简介
    • 2.2 安装
    • 2.3 使用
      • 2.3.1 http.server(命令)
      • 2.3.2 socketserver
      • 2.3.3 flask
      • 2.3.4 fastapi
  • 3、NodeJS
    • 3.1 简介
    • 3.2 安装
    • 3.3 使用
      • 3.3.1 http-server(命令)
      • 3.3.2 http
      • 3.3.3 express
  • 4、PHP
    • 4.1 简介
    • 4.2 安装
    • 4.3 使用
  • 5、Apache httpd
    • 5.1 简介
    • 5.2 安装
    • 5.3 使用
  • 6、Nginx
    • 6.1 简介
    • 6.2 安装
    • 6.3 使用
  • 7、Microsoft IIS
  • 8、Apache Tomcat
    • 8.1 简介
    • 8.2 安装
  • 9、Lighttpd
    • 9.1 简介
    • 9.2 安装
  • 结语

1、Web服务器

web 服务器一词可以代指硬件或软件,或者是它们协同工作的整体。

在这里插入图片描述
基本上,当浏览器需要一个托管在网络服务器上的文件的时候,浏览器通过 HTTP 请求这个文件。当这个请求到达正确的 web 服务器(硬件)时,HTTP 服务器(软件)收到这个请求,找到这个被请求的文档(如果这个文档不存在,那么将返回一个 404 响应),并把这个文档通过 HTTP 发送给浏览器。

web 服务器提供了 HTTP(Hypertext Transfer Protocol,超文本传输协议)支持。正如它的名字暗示,HTTP 明确提出了如何在两台计算机间传输超文本(链接的 web 文档)。

协议是一套为了在两台计算机间交流而制定的规则。HTTP 是一个文本化的(textual),无状态的(stateless)协议。

2、Python

2.1 简介

https://www.python.org/

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
    在这里插入图片描述

2.2 安装

https://www.python.org/downloads/windows/

在这里插入图片描述

2.3 使用

2.3.1 http.server(命令)

Python中自带了简单的服务器程序,能较容易地打开服务。
在python3中将原来的SimpleHTTPServer命令改为了http.server,使用方法如下:

cd test
python -m http.server# 如果不使用默认端口,可在开启时附带端口参数
python -m http.server 8001# (-b 绑定ip,不指定的话默认是本机ip)
python -m http.server -b 127.0.0.1 # 下面的命令使用一个特定的目录:
python -m http.server --directory /tmp/

命令行执行如下:

http://127.0.0.1:8000

开启成功,则会输出“Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …”,表示在本机8000端口开启了服务。
在这里插入图片描述

浏览器访问如下:
可以使用http://127.0.0.1:8000/查看www目录下的网页文件,若无index.html则会显示目录下的文件。

http://127.0.0.1:8000

在这里插入图片描述
如果需要后台运行,可在命令后加"&"符号,Ctrl+C不会关闭服务,如下:

python -m http.server &

如果要保持服务,则在命令前加nohup以忽略所有挂断信号,如下:

nohup python -m http.server 8001

2.3.2 socketserver

import http.server
import socketserverPORT = 8000Handler = http.server.SimpleHTTPRequestHandlerwith socketserver.TCPServer(("", PORT), Handler) as httpd:print("serving at port", PORT)httpd.serve_forever()
  • 代码执行如下:
    在这里插入图片描述
  • 浏览器访问如下:
http://127.0.0.1:8000

在这里插入图片描述

2.3.3 flask

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

https://flask.net.cn/
在这里插入图片描述

  • 安装库
pip install flask
  • app.py
from flask import Flask
app = Flask(__name__)@app.route('/')
def index():return 'Hello, World!'if __name__ == '__main__':app.run()
  • 脚本代码执行如下:

在这里插入图片描述

  • 浏览器访问如下:
http://127.0.0.1:5000

在这里插入图片描述
或者通过如下命令执行脚本文件app.py。

flask run

在这里插入图片描述

2.3.4 fastapi

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。
FastAPI 可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。
FastAPI 框架,高性能,易于学习,高效编码,生产可用

https://fastapi.tiangolo.com/zh/
在这里插入图片描述

  • 安装库
pip install fastapi
pip install fastapi[all]
pip install uvicorn 
  • main.py
from fastapi import FastAPIapp = FastAPI()@app.get("/")
def read_root():return {"Hello": "World"}

通过如下命令执行脚本文件:

uvicorn main:app --reload

运行结果如下:
在这里插入图片描述
浏览器访问如下:

http://127.0.0.1:8000

在这里插入图片描述

3、NodeJS

在这里插入图片描述

3.1 简介

https://nodejs.org/zh-cn

Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。

Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。
在这里插入图片描述

3.2 安装

https://nodejs.org/zh-cn
在这里插入图片描述

3.3 使用

3.3.1 http-server(命令)

http服务器是一个简单的、零配置的命令行静态http服务器。它对于生产使用来说足够强大,但它足够简单和可破解,可以用于测试、本地开发和学习。

http-server好处:可以使静态资源文件的任意一个目录成为服务器的目录,完全抛开后台的沉重工作,直接运行想要的代码。

  • 检测一下node版本
node -v
npm -v

在这里插入图片描述

  • 安装http-server库
npm install -g http-server
# npm install --global http-server

在这里插入图片描述

cd test
http-server -p 8081
# http-server -a 0.0.0.0 -p 8000

在这里插入图片描述
可以看到本地服务器已经启动,并且在cmd窗口敲击键盘Ctrl + C可以终止服务器。
全局安装后可以在cmd中查看它的信息:

npm view http-server
npm info http-server
// or 
npm -v hs

在这里插入图片描述

  • http-server可用参数:
-p 要使用的端口(默认为8080)
-a 要使用的地址(默认为0.0.0.0)
-d 显示目录列表(默认为“True”)   true / false
-i 显示autoIndex(默认为“True”)
-g或--gzip启用时(默认为“False”),它将用于./public/some-file.js.gz代替./public/some-file.jsgzip压缩版本的文件,并且该请求接受gzip编码。
-e或--ext默认文件扩展名(如果没有提供)(默认为'html'-o 启动服务器后打开浏览器窗口
-c设置缓存控制max-age头的缓存时间(以秒为单位),例如-c10  10秒(默认为'3600')。要禁用缓存,请使用-c-1。

还可以通过npm run启动http-server服务器。
npm init -y 在文件夹下生成默认的package.json文件:

npm init -y

修改package.json如下:

{"name": "test","version": "1.0.0","description": "","main": "awesome.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","start": "node server.js","start2": "http-server -a 0.0.0.0 -p 8888","serve": "http-server -p 9090 dist/"},"keywords": [],"author": "","license": "ISC"
}

然后再命令框中输入npm start或者npm run start2:

npm run start2

在这里插入图片描述

3.3.2 http

const http = require('http')const PORT = 3000
const HOST = '127.0.0.1'const server = http.createServer((req, res) => {res.statusCode = 200res.setHeader('Content-Type', 'text/plain')res.end('hello world, yxy!\n')
})server.listen(PORT, () => {console.log(`服务器运行在 http://${HOST}:${PORT}/`)
})

或者

const http = require('http');
http.createServer(function (request, response) {response.writeHead(200, {'Content-Type': 'text/plain; charset=UTF-8'});response.end('Hello World, yxy!\n');
}).listen(3000);
console.log('Server running at http://127.0.0.1:3000/');
//方式 1:
const http = require("http");
const server = http.createServer(function(req, res) {// ......
});server.listen(3000);//方式 2:
const http = require("http");
const server = http.createServer();
server.on("request", function(req, res) {// ......
});server.listen(3000);
  • 代码执行如下:
    在这里插入图片描述
  • 浏览器访问如下:
http://127.0.0.1:3000/

在这里插入图片描述

3.3.3 express

var express = require('express');
var app = express();app.get('/', function (req, res) {res.send('Hello World, yxy!');
})var server = app.listen(8081, function () {var host = server.address().addressvar port = server.address().portconsole.log("应用实例,访问地址为 http://%s:%s", host, port)})
  • 代码执行如下:
    在这里插入图片描述
  • 浏览器访问如下:
    在这里插入图片描述

4、PHP

4.1 简介

一种流行的通用脚本语言,特别适合 Web 开发。
PHP快速,灵活和实用,支持从您的博客到世界上最受欢迎的网站的所有内容。

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。
在这里插入图片描述

4.2 安装

https://www.php.net/downloads
https://windows.php.net/downloads/releases/archives/
在这里插入图片描述

4.3 使用

https://www.php.net/manual/zh/features.commandline.webserver.php

这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境。

URI请求会被发送到PHP所在的的工作目录(Working Directory)进行处理,除非你使用了-t参数来自定义不同的目录。

如果请求未指定执行哪个PHP文件,则默认执行目录内的index.php 或者 index.html。如果这两个文件都不存在,服务器会返回404错误。

  • 启动Web服务器
php -S localhost:8000# 启动时指定根目录
php -S localhost:8000 -t foo/
  • 命令行执行如下:
    在这里插入图片描述
    浏览器访问如下:
http://localhost:8000/

在这里插入图片描述

5、Apache httpd

Apache HTTP服务器是一个模块化的web服务器,可以运行在几乎所有广泛使用的计算机平台上,Apache支持支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。

目前最主流的三个Web服务器是Apache、Nginx、IIS。
在这里插入图片描述

5.1 简介

https://httpd.apache.org/

在这里插入图片描述
Apache HTTP 服务器项目旨在开发和维护 适用于现代操作系统(包括 UNIX 和 窗户。该项目的目标是提供安全,高效和 提供与当前 HTTP 同步的 HTTP 服务的可扩展服务器 标准。

Apache HTTP服务器(“httpd”)于1995年推出,自那时以来,它一直是互联网上最受欢迎的Web服务器。 1996年25月。

Apache HTTP Server是Apache软件的一个项目 基金会。

5.2 安装

https://httpd.apache.org/download.cgi
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解压如下:
在这里插入图片描述

5.3 使用

  • (1)直接执行命令行如下:
httpd

在这里插入图片描述
运行报错了,这是由于 httpd.conf 文件中 ServerRoot 配置的路径与实际路径不一致造成的,确定问题后,打开 httpd.conf 后,搜索 Define SRVROOT,将其后面双引号里面的路径改为 Apache 的实际解压路径后保存即可。

  • httpd.conf
Define SRVROOT "C:\Users\tomcat\Desktop\httpd-2.4.55-o111s-x64-vs17\Apache24"
ServerRoot "${SRVROOT}"

在这里插入图片描述
浏览器访问如下:

http://127.0.0.1:80

在这里插入图片描述

  • (2)也可以以服务的方式运行.
    在命令行中进入Apache24下的bin目录,运行命令httpd -k install -n "服务名"即可。
#安装apache服务
#注:若不使用特殊参数(如httpd.exe -k install),服务名称为Apache2.X,配置文件为conf\httpd.conf
httpd.exe -k install#指定要安装的服务的名称(适用于电脑上有几个不同的Apache服务设施)
httpd.exe -k install -n "MyServiceName"#指定服务配置文件的路径和名称
httpd.exe -k install -n "MyServiceName" -f "c:\files\my.conf"#移除一个Apache服务
httpd.exe -k uninstall#移除特定的Apache服务
httpd.exe -k uninstall -n "MyServiceName"#启动已安装的apache服务
httpd.exe -k start#停止已安装的Apache服务
httpd.exe -k stop || httpd.exe -k shutdown#重启已安装的Apache服务(迫使服务重读配置文件,适用于修改配置文件后)
httpd.exe -k restart#测试该服务的配置文件
httpd.exe -n "MyServiceName" –t

执行下面的命令,看是哪个进程占用了443端口

netstat -ano|findstr "443"
tasklist|findstr "17208"
  • 配置默认站点文件夹
    修改httpd.conf文件中的DocumentRoot
    在这里插入图片描述

  • 修改 http 端口
    \Apache24\conf\httpd.conf 文件中的 Listen,默认为 80。

  • 修改 https 端口
    \Apache24\conf\extra\httpd-ahssl.conf 文件中的 443 都替换成指定端口。

  • 设置跨域
    \Apache24\conf\httpd.conf 文件中增加:Header set Access-Control-Allow-Origin *

<Directory />AllowOverride noneRequire all deniedHeader set Access-Control-Allow-Origin *
</Directory>

\Apache24\conf\httpd.conf 文件中取消 LoadModule headers_module modules/mod_headers.so 前面的注释。

6、Nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,同时也是一个IMAP、POP3、SMTP代理服务器,多用于高连接并发。

6.1 简介

https://nginx.org/en/
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
在这里插入图片描述

6.2 安装

https://nginx.org/en/download.html
在这里插入图片描述
解压后文件夹如下:
在这里插入图片描述

6.3 使用

直接执行命令行如下:

nginx
# start nginx

浏览器访问如下:

http://localhost:80

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

# 启动
nginx -s start
# 重新启动,热启动,修改配置重启不影响线上
nginx -s reload
# 关闭
nginx -s stop
nginx -s quit
taskkill /f /t /im nginx.exe
# 修改配置后,可以通过下面的命令测试是否有语法错误
nginx -t

检测是否nginx启动成功。

tasklist /fi “imagename eq nginx.exe

在这里插入图片描述

  • 修改配置 nginx.conf 文件
    修改 server,root 默认html,修改为:html/dist。Nginx 则会在dist中找到 index.html 打开。
    在这里插入图片描述

修改完成之后 nginx -s reload 重启
在浏览器输入:localhost:8090 检验是否成功;

7、Microsoft IIS

Microsoft IIS(Internet Information Services)
IIS是“Internet Information Services”的英文缩写,即“互联网信息服务”,是由微软公司提供的,基于运行“Microsoft Windows操作系统”的互联网基本服务。
在这里插入图片描述

  • 单击“开始”,然后单击“控制面板” 。
  • 在控制面板中,单击“程序”。
  • 在“程序和功能”下,单击“打开或关闭 Windows 功能” 。
  • 在 “Windows 功能 ”对话框中,展开 “Internet Information Services ”并选择所有功能。
  • 可能需要展开某些类别才能选择该类别中的所有功能。
  • 单击 “确定” 。

在这里插入图片描述

8、Apache Tomcat

Tomcat是Java的应用服务器,它只是一个Servlet容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

8.1 简介

https://tomcat.apache.org/

在这里插入图片描述
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

在这里插入图片描述

8.2 安装

https://tomcat.apache.org/download-10.cgi
在这里插入图片描述
解压后文件夹如下:
在这里插入图片描述

在这里插入图片描述
在系统变量这一栏里,配置Tomcat的环境变量:

CATALINA_BASE=C:\Users\tomcat\Desktop\apache-tomcat-10.1.13
CATALINA_HOME=C:\Users\tomcat\Desktop\apache-tomcat-10.1.13
CATALINA_TMPDIR=C:\Users\tomcat\Desktop\apache-tomcat-10.1.13\temp
Path+=%CATALINA_HOME%\bin;%CATALINA_HOME%\lib;%JAVA_HOME%\bin;

在弹出的对话框中输入“cmd”并按回车键。在命令提示符界面中输入“startup”并回车,打开Tomcat,如下图所示。
在这里插入图片描述
运行报错了,发现java sdk的环境变量没有配置。

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_221

以管理员权限打开命令行窗口,执行命令:

startup.bat

在这里插入图片描述
tomcat服务启动成功。
浏览器访问如下:

http://127.0.0.1:8080/

在这里插入图片描述

9、Lighttpd

Lighttpd是一个免费的开源Web服务器,专门用于对速度有严格要求的应用程序。与Apache和Nginx不同,它的占用空间非常小(不到1 MB),并且在服务器资源(例如CPU利用率)方面非常经济。

9.1 简介

https://www.lighttpd.net/

Lighttpd是由德国人 Jan Kneschke 领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。Lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。

Lighttpd在BSD许可下分发,它在Linux / Unix系统上本机运行,但也可以安装在Microsoft Windows中。它以其简单,易于设置,性能和模块支持而广受欢迎。

Lighttpd的体系结构经过优化,可处理大量并行连接,这对于高性能Web应用程序至关重要。Web服务器支持FastCGI,CGI和SCGI,用于将程序与Web服务器接口。它还支持以多种编程语言编写的Web应用程序,并特别注意PHP,Python,Perl和Ruby。

9.2 安装

sudo apt-get update
sudo apt-get install lighttpd

在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

相关文章:

【小沐学Python】各种Web服务器汇总(Python、Node.js、PHP、httpd、Nginx)

文章目录 1、Web服务器2、Python2.1 简介2.2 安装2.3 使用2.3.1 http.server&#xff08;命令&#xff09;2.3.2 socketserver2.3.3 flask2.3.4 fastapi 3、NodeJS3.1 简介3.2 安装3.3 使用3.3.1 http-server&#xff08;命令&#xff09;3.3.2 http3.3.3 express 4、PHP4.1 简…...

【AI视野·今日Robot 机器人论文速览 第四十六期】Tue, 3 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 3 Oct 2023 Totally 76 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;Aerial Interaction with Tactile, 无人机与触觉的结合&#xff0c;实现空中交互与相互作用。(from CMU) website&#…...

macOS三种软件安装目录以及环境变量优先级

一、系统自带应用 这些软件&#xff08;以git为例&#xff09;位于根目录下的/usr/bin/xxx&#xff0c;又因为系统级环境变量文件/etc/paths已指定了命令查找位置&#xff1a; /usr/local/bin /System/Cryptexes/App/usr/bin /usr/bin /bin /usr/sbin /sbin所以这些自带应用可…...

嵌入式Linux裸机开发(一)基础介绍及汇编LED驱动

系列文章目录 文章目录 系列文章目录前言IMX6ULL介绍主要资料IO表现形式 汇编LED驱动原理图初始化流程时钟设置IO复用设置电气属性设置使用GPIO 编写驱动编译程序编译.o文件地址链接.elf格式转换.bin反汇编&#xff08;其他&#xff09; 综合成Makefile完成一步编译烧录程序imx…...

企业微信机器人对接GPT

现在网上大部分微信机器人项目都是基于个人微信实现的&#xff0c;常见的类库都是模拟网页版微信接口。 个人微信作为我们自己日常使用的工具&#xff0c;也用于支付场景&#xff0c;很怕因为违规而被封。这时&#xff0c;可以使用我们的企业微信机器人&#xff0c;利用企业微信…...

【数据结构】排序(1) ——插入排序 希尔排序

目录 一. 直接插入排序 基本思想 代码实现 时间和空间复杂度 稳定性 二. 希尔排序 基本思想 代码实现 时间和空间复杂度 稳定性 一. 直接插入排序 基本思想 把待排序的记录按其关键码值的大小依次插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&…...

Python 列表推导式深入解析

Python 列表推导式深入解析 列表推导式是 Python 中的一种简洁、易读的方式&#xff0c;用于创建列表。它基于一个现有的迭代器&#xff08;如列表、元组、集合等&#xff09;来生成新的列表。 基本语法&#xff1a; 列表推导式的基本形式如下&#xff1a; [expression for…...

信息学奥赛一本通-编程启蒙3103:练18.3 组别判断

3103&#xff1a;练18.3 组别判断 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 1963 通过数: 1418 【题目描述】 信息学课上要同学分组做期末报告&#xff0c;分组的方式为依座号顺序&#xff0c;每 3个人一组。如&#xff1a;1, 2, 3 为第一组&#xff0c;4, …...

C++ primer plus--探讨 C++ 新标准

18 探讨 C 新标准 18.1 复习前面介绍过的 C11 功能 &#xff08;1&#xff09;C11 扩大了列表初始化的适用范围&#xff0c;使用初始化列表时&#xff0c;可以不加等号。 int x {5}; float y {1.1}; short arr[5] {1, 2, 3, 4, 5}; int* ar new int[4] {1, 2, 3, 4}; vect…...

2023版 STM32实战6 输出比较(PWM)包含F407/F103方式

输出比较简介和特性 -1-只有通用/高级定时器才能输出PWM -2-占空比就是高电平所占的比例 -3-输出比较就是输出不同占空比的信号 工作方式说明 -1-1- PWM工作模式 -1-2- 有效/无效电平 有效电平可以设置为高或低电平&#xff0c;是自己配置的 周期选择与计算 周期重…...

选择排序算法:简单但有效的排序方法

在计算机科学中&#xff0c;排序算法是基础且重要的主题之一。选择排序&#xff08;Selection Sort&#xff09;是其中一个简单但非常有用的排序算法。本文将详细介绍选择排序的原理和步骤&#xff0c;并提供Java语言的实现示例。 选择排序的原理 选择排序的核心思想是不断地从…...

安卓教材学习

文章目录 教材学习第一行代码 Android 第3版环境配置gradle配置下载包出现问题 教材学习 摘要&#xff1a;选了几本教材《第一行代码 Android 第3版》&#xff0c;记录一下跑案例遇到的问题&#xff0c;和总结一些内容。 第一行代码 Android 第3版 环境配置 gradle配置 gradl…...

C++设计模式-生成器(Builder)

目录 C设计模式-生成器&#xff08;Builder&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-生成器&#xff08;Builder&#xff09; 一、意图 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 二、…...

CTFHUB - SSRF

目录 SSRF漏洞 攻击对象 攻击形式 产生漏洞的函数 file_get_contents() fsockopen() curl_exec() 提高危害 利用的伪协议 file dict gopher 内网访问 伪协议读取文件 端口扫描 POST请求 总结 上传文件 总结 FastCGI协议 CGI和FastCGI的区别 FastCGI协议 …...

边缘计算网关

一、项目整体框架图 二、项目整体描述 边缘计算网关项目主要实现了智能家居场景和工业物联网场景下设备的数据采集和控制。 整个项目分为三大层&#xff1a;用户接口层、网关层、设备层。 其中用户层通过QT客户端、WEB界面及阿里云提供数据展示和用户接口。 网关使用虚拟机代替…...

1800_vim的宏录制功能尝试

全部学习信息汇总&#xff1a; GreyZhang/editors_skills: Summary for some common editor skills I used. (github.com) 最近5年多来&#xff0c;我emacs的编辑器用的还是比较多的。我的配置基本上是一个spacemacs&#xff0c;然后根据自己的需求增加了一丁点儿的其他配置。而…...

Ultra-Fast-Lane-Detection-v2 {后处理优化}//参考

采用三次多项式拟合生成的anchor特征点&#xff0c;在给定的polyfit_draw函数中&#xff0c;degree参数代表了拟合多项式的度数。 具体来说&#xff0c;当我们使用np.polyfit函数进行数据点的多项式拟合时&#xff0c;我们需要指定一个度数。这个度数决定了多项式的复杂度。例…...

【面试题精讲】Java静态方法和实例方法有何不同?

★ 有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top ” 首发博客地址[1] 面试题手册[2] 系列文章地址[3] Java 中的静态方法和实例方法在使用和行为上有一些不同之处。 调用方式不同&#xff1a; 静…...

【数据结构】布隆过滤器

布隆过滤器的提出 在注册账号设置昵称的时候&#xff0c;为了保证每个用户昵称的唯一性&#xff0c;系统必须检测你输入的昵称是否被使用过&#xff0c;这本质就是一个key的模型&#xff0c;我们只需要判断这个昵称被用过&#xff0c;还是没被用过。 方法一&#xff1a;用红黑…...

linux基础4---内存

1、什么是内存泄漏,怎么解决内存泄漏? 在嵌入式Linux中,内存泄漏是指由于疏忽或错误,导致一些对象或资源无法被垃圾回收器回收,从而导致内存占用不断增加,最终导致设备性能下降。内存泄漏对程序的影响很大,可能会导致应用程序变慢、崩溃或者消耗大量的内存,最终导致设…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...