【rtthread源码解析】【android仿京东商城源码】【图书馆网站源码】wtf源码

时间:2024-12-29 01:41:00 来源:jeegov源码 分类:休闲

1.Debian 12 / Ubuntu 22.04 下体验 HTTP/3 协议的 Nginx QUIC
2.flask-wtf

wtf源码

Debian 12 / Ubuntu 22.04 下体验 HTTP/3 协议的 Nginx QUIC

       本文同样适用于 Debian 和 Ubuntu .,请使用 root 用户进行操作。

       1、什么是 HTTP/3 和 QUIC?

       HTTP/3 是一种基于 QUIC(Quick UDP Internet Connections)协议的 HTTP 协议版本,它是 HTTP/2 的后继者,旨在改进 Web 性能和安全性。rtthread源码解析

       HTTP/3 与之前的 HTTP 协议有很大的不同,最明显的区别是它使用 QUIC 协议而不是 TCP 协议来传输数据。

       QUIC 是一种由 Google 开发的协议,基于 UDP,它在保持安全性的同时提供更快的连接和更少的延迟。与 TCP 不同,QUIC 允许多个请求同时在同一连接上进行,android仿京东商城源码从而减少了网络拥塞和握手延迟的影响。

       总的来说,HTTP/3 的设计目标是通过减少延迟和提高性能,为 Web 应用程序提供更快、更安全和更高效的用户体验。

       2、安装 Nginx Quic

       这里我们推荐 烧饼博客 团队打包的 Nginx Quic 版本,它是基于最新的官方 1..0 源码打包的,支持 HTTP/3 和 QUIC 协议。

       2.1 更新系统并安装部分必要软件

       apt update apt upgrade -y apt dist-upgrade -y apt install curl vim wget gnupg dpkg apt-transport-/sb/n... $(lsb_release -sc) main" > /etc/apt/sources.list.d/n.wtf.list

       或

       echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/n.wtf.gpg] mirror.nju.edu.cn/sb/ng... $(lsb_release -sc) main" > /etc/apt/sources.list.d/n.wtf.list

       2.4 更新并安装 Nginx

       apt update apt install nginx-extras -y

       安装完毕后,我们可以使用nginx -V 命令看到 Nginx 已经是最新的 1..0 主线版 + QUIC 了:

       root@debian ~ # nginx -V nginx version: nginx-n.wtf/1..0 built with OpenSSL 3.0.8+quic 7 Feb TLS SNI support enabled

       2.5 使用 Docker 安装

       你也可以使用 Docker 进行体验:

       docker run --name nginx --net host --restart always -v $HOME/nginx-config:/usr/src/docker-nginx/conf:ro -d ghcr.io/u-sb/nginx

       此时配置文件的目录在当前目录的nginx-config 文件夹下。

       3、图书馆网站源码配置 Nginx

       首先,HTTP/3 仅支持 HTTPS 协议,因此我们需要准备好 SSL 证书,可以参考 《Nginx 配置 SSL 证书》获取 SSL 证书。

       其次,需要开启 TLS 1.3 支持,因为 HTTP/3 是基于 TLS 1.3 的,如果没有开启 TLS 1.3,那么 HTTP/3 将无法正常工作。

       最后,需要添加listen ; root /var/www/example.com; index index.html; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ssl_trusted_certificate /etc/nginx/ssl/example.com.ca.crt; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:m; ssl_session_tickets off; ssl_protocols TLSv1.3; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; resolver 1.1.1.1 8.8.8.8 valid=s; resolver_timeout s; add_header Alt-Svc 'h3=":"; ma='; }

       请注意listen quic reuseport 里的 reuseport 参数,所有 server 段里,易语言挂q源码只允许一个段出现 reuseport 参数,否则会报错。

       另外listen 段里的 ssl http2 无法和 quic 放一起,必须分开写两段。

       4、测试 HTTP/3

       我们使用 Firefox 浏览器,因为目前 DNS SVCB/HTTPS 记录 尚未普及,所以第一次访问的时候,浏览器还是走 TCP 协议使用 HTTP/2 或者 HTTP/1.1 请求你的网站,获取 Alt-Svc 的头部信息后,才会走 HTTP/3 协议,所以第一次访问以后,化妆品商城源码可以关掉浏览器重新打开再测试。

       我们可以打开 F 开发者工具,查看 Network 选项卡,可以看到 HTTP/3 协议的请求:

       Debian / Ubuntu . 下体验 HTTP/3 协议的 Nginx QUIC u.sb/debian-nginx-quic/

flask-wtf

       在第四天的学习中,我们探讨了web框架中的表单库,特别是在Flask框架中的应用。简单的HTML表单难以满足安全性需求,因此有了Flask-WTF库的支持,它提供了在模板中渲染表单的便利,同时在验证表单数据和CSRF保护上表现出色。

       使用Flask-WTF时,首先需要安装作为第三方依赖。初始化后,开发人员可以设计自定义表单类,并在HTML模板中渲染它们。通常,表单类设计遵循Flask-WTF的规范,例如使用`FlaskForm`代替`Form`,并确保应用的`secret_key`,以解决CSRF保护问题。

       在表单使用中,有几种常见逻辑:针对GET请求,一般返回模板HTML,而对于POST请求,则验证表单数据。如果验证失败,错误信息会被捕获并在模板中呈现。

       在进行表单验证时,Flask-WTF提供了如`DataRequired`等校验规则。若表单字段未输入值,则提交时会显示错误提示。渲染后的页面在浏览器的开发者工具中可能难以直接查看源代码,这是因为模板中可能缺少全局和body标签,这实际上是一种保护机制,确保页面的HTML结构不会轻易被恶意访问。

       在表单的HTML设计中,`hidden_tag`用于生成CSRF防护的隐藏字段,而`form.csrf_token`也可实现相同功能。此外,`form.num.errors`用于显示特定字段的错误信息,便于在模板中呈现给用户。

       Flask-WTF在表单方面的应用不仅仅局限于基础的表单构成和渲染,它还提供了丰富的表单字段类型和校验函数。例如,文本输入框、下拉列表、文件上传等,这些功能通过WTForms的第三方插件实现。

       实现文件上传功能,通过设计表单字段和定义路由来完成。HTML中添加文件上传功能,使用如`pathlib`中的`join`接口处理路径时,可能会遇到兼容性问题。解决方法是在保存文件时使用相对路径,确保上传文件正确保存至项目根目录下的`upload`文件夹中。

       在使用Flask-WTF进行文件上传时,要注意一些操作细节。例如,正确处理上传路径、使用合适的文件保存位置等。通过实践,可以发现这些细节对于确保应用的稳定性和安全性至关重要。在部署应用时,应特别注意表单处理中的潜在问题,确保应用的健壮性和用户体验。