Nginx01-HTTP簡介與Nginx簡介(安裝、命令介紹、目錄介紹、配置文件介紹)

目錄

  • HTTP簡介
    • HTTP原理
    • 查看訪問網站的詳細流程
      • curl -v
      • wget --debug
    • 查看網站訪問量
    • HTTP協議版本
    • HTTP協議交互
      • HTTP 請求
        • 請求報文起始行
        • 請求頭
      • HTTP響應
        • 響應報文起始行
        • 響應頭
  • Nginx
    • 常見的Web服務
      • 常見網站服務
    • 安裝Nginx
    • Nginx目錄結構
    • Nginx啟動管理
      • Nginx常用命令
    • Nginx配置文件
      • 主配置文件
      • 子配置文件

HTTP簡介

HTTP原理

  • WebServer為Client提供網頁瀏覽等服務,又稱HTTPServer或WWWServer。
  • HTTP采用B/S模型,Client和Server通過HTTP或HTTPS進行數據的傳輸。
  • HTTP采用TCP鏈接,HTTP默認監聽80端口,HTTPS默認監聽443端口。
  • HTTP的工作原理:
    1. 鏈接:Browser和WebServer建立鏈接,通過打開socket表明鏈接建立成功。
    2. 請求:Browser通過socket向WebServer提交請求,一般為HTTP的GET或POST。
    3. 應答:Server通過特定端口接收監聽到的Web頁面請求,若請求存在再通過HTTP發送Browser需要的信息;若請求不存在則返回錯誤提示。
    4. 關閉連接:每完成一次應答,就會斷開一次鏈接。

查看訪問網站的詳細流程

curl -v

[root@front ~]# curl -v www.baidu.com
* Rebuilt URL to: www.baidu.com/
*   Trying 153.3.238.110...
* TCP_NODELAY set
* Connected to www.baidu.com (153.3.238.110) port 80 (#0)
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: keep-alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Sun, 02 Jun 2024 12:25:56 GMT
< Etag: "588604eb-94d"
< Last-Modified: Mon, 23 Jan 2017 13:28:11 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新聞</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地圖</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>視頻</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>貼吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登錄</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登錄</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多產品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>關于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使用百度前必讀</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意見反饋</a>&nbsp;京ICP證030173號&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
* Connection #0 to host www.baidu.com left intact

wget --debug

[root@front ~]# wget --debug www.baidu.com
DEBUG output created by Wget 1.19.5 on linux-gnu.Reading HSTS entries from /root/.wget-hsts
URI encoding = ‘UTF-8’
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2024-06-02 20:28:06--  http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 153.3.238.110, 153.3.238.102, 2408:873d:22:18ac:0:ff:b021:1393, ...
Caching www.baidu.com => 153.3.238.110 153.3.238.102 2408:873d:22:18ac:0:ff:b021:1393 2408:873d:22:1a01:0:ff:b087:eecc
Connecting to www.baidu.com (www.baidu.com)|153.3.238.110|:80... connected.
Created socket 3.
Releasing 0x0000557a357bf620 (new refcount 1).---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: www.baidu.com
Connection: Keep-Alive---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Sun, 02 Jun 2024 12:28:06 GMT---response end---
200 OK
Registered socket 3 for persistent reuse.
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html’index.html                 100%[=======================================>]   2.33K  --.-KB/s    in 0s2024-06-02 20:28:06 (123 MB/s) - ‘index.html’ saved [2381/2381]

查看網站訪問量

alexa.chinaz.com

指標說明
IP訪問網站的獨立IP數量,公網IP。
PV頁面訪問量Page view。
UV獨立訪客數量,接近于用戶數量 Unique Visitor。
DAU每天的活躍用戶的數量:日活(日活躍用戶)。
MAU月活(月活躍用戶)。

HTTP協議版本

http1.0http1.1http2.0http3.0
特點短連接,每次請求都需要重復建立斷開連接加入長連接功能增加并發,訪問更快基于udp更快,應用于流媒體
占用服務端資源keepalive(響應后不會立刻斷開)
是否加密http不加密,https加密默認基于https
基于tcp/udptcptcptcpudp

HTTP協議交互

  1. 瀏覽器發送request請求
  2. 服務器回復response響應

HTTP 請求

---request begin---
GET / HTTP/1.1  
User-Agent: Wget/1.19.5 (linux-gnu) 
Accept: */*
Accept-Encoding: identity
Host: www.baidu.com
Connection: Keep-Alive---request end---
請求報文起始行

GET / HTTP/1.1

  • 請求方法:用于指定客戶端如何訪問服務端(下載,上傳,查看服務端信息)
常見的請求方法說明
GET下載(大部分請求),用于請求服務器發送指定資源。
POST上傳(上傳文件內容、登錄),用于向服務器提交數據,通常導致服務器上的狀態變化或副作用。
HEAD類似于GET,僅僅輸出響應的頭部信息(查看服務端的信息,一般用于檢查)。
  • 資源的位置(URI): 這個資源在網站站點目錄的哪個地方,叫什么名字.
    這里面寫的/,斜線并非是Linux系統的根目錄.這個/叫網站的站點目錄

  • http協議版本

請求頭

User-Agent: Wget/1.19.5 (linux-gnu)
Accept: /
Accept-Encoding: identity
Host: www.baidu.com
Connection: Keep-Alive

HTTP請求頭解釋
User-Agent: Wget/1.19.5 (linux-gnu)請求頭,告訴服務器發起請求的應用類型和版本,這里是Wget命令行下載工具。
Accept: /請求頭,告訴服務器客戶端接受任何類型的 MIME 響應。
Accept-Encoding: identity請求頭,告訴服務器客戶端不接受任何編碼轉換,即希望服務器發送原始數據。
Host: www.baidu.com請求頭,指定請求的服務器域名,這里是百度網站的域名。
Connection: Keep-Alive請求頭,告訴服務器客戶端希望保持連接活躍,以便為后續請求重用相同的TCP連接。

HTTP響應

---response begin---
HTTP/1.1 200 OK
Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Sun, 02 Jun 2024 12:49:11 GMT---response end---
響應報文起始行

HTTP/1.1 200 OK

  • HTTP版本

  • 狀態碼 狀態碼描述
    狀態碼是反應服務器是否正確的處理用戶請求
    |狀態碼 |含義|
    |-|-|
    |2xx |表示正常|
    |3xx |表示需要進行跳轉,表示正常|
    |4xx |表示異常,客戶端問題|
    |5xx |表示異常,服務端問題|

狀態碼狀態碼描述解釋
200OK訪問正常,服務器成功處理了請求。
301Moved Permanently永久跳轉,請求的資源已被永久移動到新位置。
302Found或Moved Temporarily臨時跳轉,請求的資源臨時移動到新位置。
304Not Modified瀏覽器緩存,請求的資源未修改,可以使用緩存的內容。
403Forbidden權限拒絕(拒絕訪問)。權限問題,如未授權訪問;首頁文件問題,如配置錯誤導致無法訪問首頁。
404Not Found文件找不到,一般輔助錯誤日志排查,用于定位請求的資源不存在的問題。
500Internal Error內部錯誤,如服務器配置錯誤、應用程序錯誤等。SElinux開啟時,可能會導致一些異常。一般需要輔助錯誤日志來排查。
502Bad Gateway網關錯誤,一般發生在負載均衡器中,請求發送到后端服務器,但后端服務器沒有響應,導致網關返回錯誤。
503Service Unavailable服務臨時不可用,后端負載異常等情況,或者人為設置(如系統升級)導致服務暫時不可用。
504Gateway Time-out網關超時,請求發送到網關,但網關在規定時間內沒有響應。
響應頭

Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Sun, 02 Jun 2024 12:49:11 GMT

HTTP響應組成部分解釋
Content-Length: 2381響應頭,指示實體主體的大小(以字節為單位),這里是2381字節。
Content-Type: text/html響應頭,指示響應的內容類型,這里是HTML文本。
Server: bfe響應頭,指示處理請求的服務器軟件,這里是百度的前端服務器(Baidu Front End)。
Date: Sun, 02 Jun 2024 12:49:11 GMT響應頭,指示消息發送的時間,這里是2024年6月2日星期日,格林尼治標準時間12:49:11。

Nginx

常見的Web服務

類型說明
WEB服務網站服務,部署并啟動了這個服務,你就可以搭建一個網站。
WEB中間件等同于WEB服務,用于提供網站的托管和訪問服務。
中間件范圍更加廣泛,指的負載均衡之后的服務,包括各種應用程序層和網絡層的中間件。
數據庫中間件數據庫緩存、消息隊列等功能的中間件,用于提高數據庫性能和處理數據。

常見網站服務

網站服務說明官網
Nginx大部分使用nginx, Engine Xhttp://nginx.org/en/docs/
Tengine基于Nginx二開, 淘寶開源, 更多內置模塊http://tengine.taobao.org/
Openresty基于Nginx二開, 加強Lua功能與模塊http://openresty.org/
Tomcat運行Java環境的Web服務https://tomcat.apache.org/
Jboss運行Java環境的Web服務https://www.jboss.org/
Jetty運行Java環境的Web服務https://www.eclipse.org/jetty/
Weblogic運行Java環境的Web服務https://www.oracle.com/weblogic/
PHP運行PHP環境的Web服務,需要nginx (LNMP)https://www.php.net/

安裝Nginx

從官網安裝 nginx.org/en
在這里插入圖片描述

在這里插入圖片描述

  • Mainline 主線版本 – 奇數版本 - 開發&測試版本 --> 開發團隊 - 二次開發
  • Stable 穩定版本 – 偶數版本 - 穩定&生產 - 中小企業
  • Lengacy 歷史版本 – 偶數版本 - 穩定的

download->stable 最下面->RHEL and derivatives->yum
在這里插入圖片描述

# 配置官網yum源(stable版)
[root@front ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true#安裝
yum install -y nginx#檢查
[root@front ~]# rpm -qa nginx
nginx-1.26.1-2.el8.ngx.x86_64
[root@front ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/usr/lib/.build-id
/usr/lib/.build-id/3d
/usr/lib/.build-id/3d/2e2d5ec454efae0e8f8abeb6f056b4636a8a0c
/usr/lib/.build-id/4f
/usr/lib/.build-id/4f/adbe3f34e65c805137a92caf2f2035f1112f6a
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.26.1
/usr/share/doc/nginx-1.26.1/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx

Nginx目錄結構

不同的安裝方式,目錄、文件會有所變化

目錄結構說明
/etc/nginx/Nginx各種配置的目錄
/etc/nginx/nginx.conf主配置文件
/etc/nginx/conf.d/子配置文件(網站)目錄
/etc/nginx/conf.d/default.conf默認的子配置文件
/usr/sbin/nginxngx命令,用于啟動、停止、重啟Nginx服務器
/usr/share/nginx/html/ngx默認的站點目錄,網站的根目錄
/var/log/nginx/ngx日志:訪問日志、錯誤日志、跳轉日志
其他目錄和文件說明
/etc/logrotate.d/nginx日志切割(防止文件過大)
/etc/nginx/mime.types媒體類型文件,定義了MIME類型和擴展名的映射
/etc/nginx/fastcgi_params包含FastCGI參數的文件,用于處理PHP請求
/etc/nginx/uwsgi_params包含uWSGI參數的文件,用于處理Python請求
/usr/lib/systemd/system/nginx.servicesystemctl配置文件,用于使用systemd管理Nginx服務
/var/cache/nginx/緩存目錄,用于存儲臨時文件和緩存內容

Nginx啟動管理

源碼安裝的nginx啟動方式不同,建議菜鳥教程

# 啟動
[root@front ~]# systemctl enable nginx --now# 查看端口
[root@front ~]# ss -tunlp | grep 80
tcp   LISTEN 0      128          0.0.0.0:80         0.0.0.0:*    users:(("nginx",pid=2403,fd=6),("nginx",pid=2402,fd=6),("nginx",pid=2225,fd=6))                                                                      
# 查看進程
[root@front ~]# ps -ef | grep nginx
root        2225       1  0 16:56 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx       2402    2225  0 19:51 ?        00:00:00 nginx: worker process
nginx       2403    2225  0 19:51 ?        00:00:00 nginx: worker process
root        2851    1384  0 21:22 pts/0    00:00:00 grep --color=auto nginx# 訪問測試
[root@front ~]# curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

Nginx常用命令

命令選項解釋
nginx -s stop停止Nginx服務器
nginx -s quit優雅地停止Nginx服務器
nginx -s reload重新加載Nginx配置文件
nginx -s reopen重新打開日志文件
nginx -s configtest測試Nginx配置文件的語法錯誤
nginx -t測試Nginx配置文件的語法錯誤
nginx -c filename指定配置文件路徑
nginx -p path指定Nginx的運行路徑
nginx -g “options”設置全局配置選項
nginx -V顯示Nginx版本信息
nginx -h顯示幫助信息

Nginx配置文件

主配置文件

在這里插入圖片描述

指令說明
user指定Nginx進程運行的用戶和組,默認是nobody
worker_processes指定工作進程的數量,默認為1
error_log指定錯誤日志文件的位置和級別,默認為/var/log/nginx/error.log
pid指定Nginx進程ID文件的位置,默認為/var/run/nginx.pid
events配置事件模塊,包括工作進程的數量和類型
http配置HTTP模塊,包括全局設置和監聽端口
server配置虛擬主機,包括域名、根目錄、日志文件等
location配置請求匹配的規則,包括資源路徑、重定向、緩存等
access_log指定訪問日志文件的位置和格式,默認為/var/log/nginx/access.log
error_log指定錯誤日志文件的位置和格式,默認為/var/log/nginx/error.log
sendfile指定是否開啟sendfile傳輸模式,默認為on
tcp_nopush指定是否在發送數據前壓縮緩沖區,默認為on
keepalive_timeout指定長連接的超時時間,默認為65
client_max_body_size指定客戶端請求的最大體長,默認為1M
client_body_buffer_size指定客戶端請求體長緩沖區的大小,默認為8k
gzip指定是否開啟gzip壓縮,默認為on
gzip_vary指定是否在響應頭中包含gzip壓縮的信息,默認為on
gzip_proxied指定是否壓縮代理請求的響應,默認為any
gzip_types指定需要壓縮的MIME類型,默認為text/html
gzip_disable指定不需要壓縮的MIME類型,默認為msie6
fastcgi_pass指定FastCGI后端服務器的地址和端口,默認為127.0.0.1:9000
uwsgi_pass指定uWSGI后端服務器的地址和端口,默認為127.0.0.1:9000
proxy_pass指定代理后端服務器的地址和端口,默認為http://127.0.0.1:80
proxy_set_header指定代理請求的頭部信息,默認為Host: $host
proxy_http_version指定代理請求的HTTP版本,默認為1.1
proxy_connect_timeout指定代理連接的超時時間,默認為60s
proxy_send_timeout指定代理發送請求的超時時間,默認為60s
proxy_read_timeout指定代理讀取響應的超時時間,默認為60s
proxy_buffer_size指定代理請求緩沖區的大小,默認為4k
proxy_buffering指定是否啟用代理緩沖區,默認為on
proxy_cache指定代理緩存的相關設置,默認為off
proxy_cache_key指定代理緩存鍵的生成規則,默認為 s c h e m e scheme schemeproxy_host$request_uri
proxy_cache_valid指定代理緩存的有效時間,默認為1d
proxy_cache_min_uses指定代理緩存的最小使用次數,默認為1
proxy_cache_use_stale指定代理緩存是否使用過時的數據,默認為off
proxy_cache_lock指定代理緩存是否鎖定數據,默認為on
proxy_cache_lock_timeout指定代理緩存鎖定數據的時間,默認為5s
proxy_cache_lock_age指定代理緩存鎖定數據的時間,默認為5s
proxy_cache_lock_timeout指定代理緩存鎖定數據的時間,默認為5s
proxy_cache_lock_age指定代理緩存鎖定數據的時間,默認為5s
proxy_cache_lock_timeout指定代理緩存鎖定

子配置文件

在這里插入圖片描述

指令說明
listen指定監聽端口
server_name指定域名,多個通過空格分割
location匹配請求中的uri(資源地址)
root指定站點目錄(網站的根目錄)
index指定站點的首頁文件。用戶訪問的時候不加上任何的文件,展示首頁文件
error_log指定錯誤狀態碼與對應的錯誤頁面

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21228.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21228.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21228.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

國內外主流大模型語言技術大比拼

國內外主流大模型語言技術對比 2024 自2017年起&#xff0c;美國深度布局人工智能&#xff0c;全面融入經濟、文化與社會。至2023年&#xff0c;中國憑借自研技術平臺嶄露頭角&#xff0c;ChatGPT及其技術成國家戰略焦點&#xff0c;引領未來科技浪潮。中美競逐&#xff0c;人工…

Milvus向量數據庫:開啟向量搜索新紀元

Milvus向量數據庫&#xff1a;開啟向量搜索新紀元 隨著人工智能和機器學習技術的飛速發展&#xff0c;向量數據在各個領域的應用越來越廣泛&#xff0c;如推薦系統、自然語言處理、計算機視覺等。在這樣的背景下&#xff0c;如何高效地存儲、查詢和管理向量數據成為了一個重要的…

香橙派 AI pro:AI 加速初體驗

香橙派 AI pro&#xff1a;AI 加速初體驗 在AI領域&#xff0c;不斷涌現的硬件產品為開發者提供了前所未有的便利和可能性。今天&#xff0c;我要介紹的這款產品——香橙派 AIpro&#xff0c;就是其中的佼佼者。在昇騰 AI 芯片的加持下&#xff0c;這款開發板有著出色的算力。…

961題庫 北航計算機 操作系統 附答案 選擇題形式

有題目和答案&#xff0c;沒有解析&#xff0c;不懂的題問大模型即可&#xff0c;無償分享。 第1組 習題 計算機系統的組成包括&#xff08; &#xff09; A、程序和數據 B、處理器和內存 C、計算機硬件和計算機軟件 D、處理器、存儲器和外圍設備 財務軟件是一種&#xff…

【Qt 學習筆記】Qt窗口 | 對話框 | Qt對話框的分類及介紹

博客主頁&#xff1a;Duck Bro 博客主頁系列專欄&#xff1a;Qt 專欄關注博主&#xff0c;后期持續更新系列文章如果有錯誤感謝請大家批評指出&#xff0c;及時修改感謝大家點贊&#x1f44d;收藏?評論? Qt窗口 | 對話框 | 模態對話框 文章編號&#xff1a;Qt 學習筆記 / 51…

Java反序列化漏洞與URLDNS利用鏈分析

前言 前面學習過 Java 反序列化漏洞的部分知識&#xff0c;總結過幾篇文章&#xff1a; 文章發布日期內容概括《滲透測試-JBoss 5.x/6.x反序列化漏洞》2020-07-08JBoss 反序列化漏洞 CVE-2017-12149 的簡單復現&#xff0c;使用了 ysoserial 和 CC5 鏈&#xff0c;未分析漏洞…

easy-captcha生成驗證碼

引入依賴 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>…

[力扣題解] 404. 左葉子之和

題目&#xff1a;404. 左葉子之和 思路 前序遍歷&#xff08;隨便怎么遍歷&#xff09;&#xff1b; 在遇到左葉子時處理數據&#xff0c;選擇中、左、右里面的左的時候再判斷這個節點是不是葉子&#xff1b; 代碼 /*** Definition for a binary tree node.* struct TreeNo…

Unity2D游戲開發-玩家控制

在Unity2D游戲開發中&#xff0c;玩家控制是游戲互動性的核心。本文將解析一個典型的Unity2D玩家控制腳本&#xff0c;探討如何實現流暢的玩家移動、跳躍和動畫切換。以下是一個Unity腳本示例&#xff0c;實現了這些基礎功能。 1. 腳本結構 using System.Collections; using …

機械設計手冊第一冊:公差

形位公差的標注&#xff1a; 形位公差框格中&#xff0c;不僅要表達形位公差的特征項目、基準代號和其他符號&#xff0c;還要正確給出公差帶的大小、形狀等內容。 1.形位公差框格&#xff1a; 形位公差框格由兩個框格或多個格框組成&#xff0c;框格中的主要內容從左到右按…

(2024,擴散,去噪調度,維度,誤差,收斂速度)適應基于分數的擴散模型中的未知低維結構

Adapting to Unknown Low-Dimensional Structures in Score-Based Diffusion Models 公和眾和號&#xff1a;EDPJ&#xff08;進 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 進 V 交流群&#xff09; 目錄 0. 摘要 1. 引言 1.1 擴散模型 1.2 現有結果的不…

服務器硬件基礎知識學習

服務器硬件基礎知識涵蓋了從CPU到存儲&#xff0c;再到網絡連接和總線技術等關鍵組件。 1. 處理器 - 兩大流派&#xff1a;我們常用的處理器主要分為Intel和AMD兩大陣營。Intel的Xeon系列和AMD的EPYC系列都是專為服務器設計的&#xff0c;它們支持多核處理&#xff0c;能夠應對…

語言模型的校準技術:增強概率評估

? 使用 DALLE-3 模型生成的圖像 目錄 一、說明 二、為什么校準對 LLM 模型至關重要 三、校準 LLM 概率的挑戰 四、LLM 的高級校準方法 4.1 語言置信度 4.2 增強語言自信的先進技術 4.3 基于自一致性的置信度 4.4 基于 Logit 的方法 五、代理模型或微調方法 5.1 使用代…

集成算法實驗與分析(軟投票與硬投票)

概述 目的&#xff1a;讓機器學習效果更好&#xff0c;單個不行&#xff0c;集成多個 集成算法 Bagging&#xff1a;訓練多個分類器取平均 f ( x ) 1 / M ∑ m 1 M f m ( x ) f(x)1/M\sum^M_{m1}{f_m(x)} f(x)1/M∑m1M?fm?(x) Boosting&#xff1a;從弱學習器開始加強&am…

排序-插入排序與選擇排序

插入排序 基本思想 把待排序的記錄按其關鍵碼值的大小逐個插入到一個已經排好序的有序序列中&#xff0c;直到所有的記錄插入完為止&#xff0c;得到一個新的有序序列 。 打撲克牌整理手牌用的就是插入排序的思想 代碼實現 void InsertSort(int* a, int n) { assert(a); …

C語言自定義類型

在C語言中&#xff0c;自定義類型可以通過typedef關鍵字來實現。typedef用于為現有的數據類型創建新的名稱&#xff08;別名&#xff09;&#xff0c;使代碼更清晰易讀。自定義類型的一個常見用途是簡化復雜的類型聲明&#xff0c;特別是在使用結構體、枚舉和函數指針時。 使用…

52、有邊數限制的最短路

有邊數限制的最短路 題目描述 給定一個n個點m條邊的有向圖&#xff0c;圖中可能存在重邊和自環&#xff0c; 邊權可能為負數。 請你求出從1號點到n號點的最多經過k條邊的最短距離&#xff0c;如果無法從1號點走到n號點&#xff0c;輸出impossible。 注意&#xff1a;圖中可…

查看 WSL2 (Windows Subsystem for Linux 2) IP 地址

查看 WSL2 [Windows Subsystem for Linux 2] IP 地址 1. ipconfig2. ping $(hostname).local3. cat /etc/resolv.conf4. ip route show5. ip addrReferences 1. ipconfig Windows 系統上與 WSL2 (Windows Subsystem for Linux 2) 接口的地址 172.31.32.1。 Microsoft Windows…

米爾MYC-Y6ULX-V2開發板測評記錄

文章目錄 1、板子上手體驗2、板載硬件3、系統信息4、 驅動測試5、編譯linux三大件7、攝像頭測試9、總結 1、板子上手體驗 首先非常感謝芯查查給了這樣一個機會來測評這樣一款性能十分強大的開發板&#xff0c;我拿到手的是MYC-Y6ULX-V2核心板及開發板&#xff0c;這塊板子具有…

STM32HAL-最簡單的長、短、多擊按鍵框架

目錄 概述 一、開發環境 二、STM32CubeMx配置 三、編碼 四、運行結果 五、總結 概述 本文章使用最簡單的寫法實現長、短、多擊按鍵框架&#xff0c;非常適合移植各類型單片機&#xff0c;特別是資源少的芯片上。接下來將在stm32單片機上實現&#xff0c;只需占用1個定時…