多线程
视频:
【python】asyncio的理解与入门,搞不明白协程?看这个视频就够了。_哔哩哔哩_bilibili
asyncio-协程协程是比线程更小的单位,进一步减小了由于切换线程而引起的开销
asyncio仍然是python运行的单进程单线程的程序,asyncio并不能提升运算速度(CPU密集型任务),他比较适合处理那些需要等待的任务(I/O密集型任务)
概念:
event loop:事件循环,一种管理异步操作的机制
coroutine:协程
coroutine function:所有以async def开头的东西都叫coroutine function
coroutine object:运行coroutine function返回的对象,但是function中的代码不会运行
task:asyncio.run会接收coroutine参数,并处理为task,开始运行
12345678910import asyncioasync def main(): print('hello') await asyncio.sleep(1) p ...
文件传输
SCPSCP(Secure Copy):SCP是一个安全的文件传输协议,可以通过SSH连接将文件从本机复制到远程服务器上
将本地文件上传到远程服务器上面:
1scp /local_directory username@remote_ip_address:/path/to/file
将远程服务器上面的文件下载到本地:
1scp username@remote_ip_address:/path/to/file local_directory
SFTPSFTP(SSH File Transfer Protocol):SFTP是一种通过SSH进行安全文件传输的协议。
输入以下命令以建立与远程服务器的SFTP连接:
1sftp username@remote_ip_address
输入密码以进行身份验证
成功进行身份验证后,将进入SFTP交互式模式。在此模式下,可以执行各种SFTP命令来进行文件传输。
使用put命令将本地文件上传到远程服务器:
1put local_file remote_directory/remote_file
使用get命令从远程服务器下载文件到本 ...
Docker
参考文章:前言 - Docker — 从入门到实践 (gitbook.io)
准备工作概述Docker是一个用于 构建(build)、运行(run)、传送(share) 应用程序的平台
安装系统:Ubuntu
设置存储库
更新软件包索引并安装软件包以允许使用基于HTTPS的存储库:
12sudo apt-get updatesudo apt-get install ca-certificates curl gnupg
添加Docker的官方GPG密钥
123sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpg
使用以下命令设置存储库
1234echo \ "deb [arch="$(dpkg --print-architecture ...
frp内网穿透
简介frp(Fast Reverse Proxy)是一个开源的高性能反向代理应用,由fatedier开发。它的主要目的是帮助在NAT网络环境下,通过将内网服务映射到公网上,实现对内网服务的访问。
frp使用客户端-服务器架构,其中frp服务器位于公网中,而frp客户端则位于内网中。通过配置客户端和服务器,frp可以实现端口转发、HTTP和TCP代理等功能,使得公网用户可以访问内网中的服务。
安装Release v0.51.3 · fatedier/frp (github.com)在github中下载对应版本的压缩包,进行解压
1tar -zxvf frp_0.51.3_linux_arm64.tar.gz
配置服务端在服务器端使用 frps,写好配置文件 frps.toml
12345678910# frps.tomlbindPort = 10124 # 服务端与客户端通信端口auth.token = "e99468f136bca375682959611c14b009ec8a370d21482e66ea ...
Web后端开发
请求响应
请求(HttpServletRequest):获取请求数据
响应(HttpServletResponse):设置响应数据
BS架构:Browser/Server,浏览器/服务器架构模式。客户端指需要浏览器,应用程序的逻辑和数据都存储在服务端
CS架构:Client/Server,客户端/服务器架构模式
postman工具postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件
作用:常用于进行接口测试
请求
简单参数
原始方式在原始的程序web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取
12345678@RequestMapping("simpleParam")public String simpleParam(HttpServletRequest request) { String name = request.getParameter("name"); String ageStr = request.getP ...
Web入门
HTTP协议Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则
特点:
基于TCP协议:面向连接,安全
基于请求-响应模型的:一次请求对应一次响应
HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的
缺点:多次请求间不能共享数据
优点:速度快
请求协议请求数据格式
请求行:请求数据第一行(请求方式、资源路径、协议)
请求头:第二行开始,格式key:value
Hosts
请求的主机名
User-Agent
浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 … Chrome/79,IE浏览器的标识类似Mozilla/5.0(Windows NT …) like Gecko
Accept
标识浏览器能接受的资源类型,如text/*,image/*或者*/*表示所有
Accept-Language
标识浏览器偏好的语言,服务器可以据此返回不同语言的网页
Accept-Encoding
表 ...
Maven
什么是MavenMaven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具,它基于项目对象模型(POM,project object model)的概念,通过一小段描述信息来管理项目
作用:
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题
统一项目结构:提供标准、统一的项目结构
src
main # 实际项目资源
java # java源代码目录
resources # 配置文件目录
test # 测试项目资源
java
resources
pom.xml # 项目配置文件
项目构建:标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式
基础概念仓库仓库网站:Maven Repository: Search/Browse/Explore (mvnrepository.com)
用于存储资源,包含各种jar包
分类:
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
中央仓库:Maven团队维护,存储所有 ...
前端工程
AjaxAjax:Asynchronous JavaScript And XML,异步的JavaScript和XML
作用:
数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据
异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术
原生Ajax
创建XMLHttpRequest对象:用于和服务器交换数据
向服务器发送请求
获取服务器响应数据
12345678910111213141516171819202122<body> <input type="button" value="获取数据" onclick="getData()"> <div id="div1"></div></body><script> function getData() { // 1. 创建 XMLHttpRequest var xmlHttpRequest = ...
XXE注入
什么是XMLXML全称“可扩展标记语言”(extensible markup language),XML是一种用于存储和传输数据的语言。与HTML一样,XML使用标签和数据的树状结构。但不同的是,XML不使用预定义标记,因此可以为标记指定描述数据的名称。由于json的出现,xml的受欢迎程度大大下降。
XML文档结构包括XML声明+DTD文档类型定义+文档元素,例如:
1234567<?xml version="1.0" encoding="UTF-8"?><note> <to>Myself</to> <form>zishuQ</form> <heading>Title</heading> <body>This is a XML document.</body></note>
其中<note>是根元素,所有XML文档必须包含一个根元素,根元素是所有其他元素的父元素。
什么是DTD ...
Web前端开发
HTML
HTML结构标签
12345678<html> <head> <title>标题</title> </head> <body> </body></html>
特点
HTML标签不区分大小写
HTML标签属性值单双引号都可以
HTML语法松散
基本标签 & 样式
图片标签:<img>
src:指定图像的url(绝对路径 / 相对路径)
width:图像的宽度(像素 / 相对于父元素的百分比)
height:图像的高度(像素相 / 对于父元素的百分比)
标题标签:<h1> - <h6>
水平线标签:<hr>
无语义标签:<span>
超链接标签:<a>
标签:
1<a href="..." target="..."> 目标地址 </a>
...