Uncategorized

HTTP 协议简介

HTTP 协议简介 Page 1 E2HyperText TraTsfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,F0mlth.616HTTP2cfr/atarr14年12月,互联网工程任务组(Ien超文本传输协议(英文:)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。-enRFC文档ihttps://www.rfc-editor.org/rfc/inl 协议简介 1H。.1TTP 协议中现今广泛使用的一个版本——PTTH定义了 Page 2 HTTPRFC图解⽂档的定义请求格式 Page 3 HTTP请求格式 Page 4 HTTPRFC图解⽂档定义响应格式 Page 5 HTTP响应格式 Page 6 HTTP URI Page 7 w/Hostttp:可以部署多个h/wwww./index.htmltest2http://w.Host.test1.comco有些代理不接受⾃定义的mHTTP HeadersWEB站,根据请求头域说明了正在请求资源的⽹络主机和端⼝号,同⼀台服务器服务器收到了这两个请求,会根据oHst这个⾸⻚,在浏览器访问如下两个地址Host定位到正确的资源的资源,⽐如⼀台deraHestiltmh/iHndex.sto/ ndex.html Ho BWEstHo服务器部署了两个⽹站,都有字段来区分是请求哪个⽹是是tecoww..cost2mwwww.test1m. Page 8 ded-ForX-Forwarded-For格式如下:]X-Forwarded-For: client,”proxy1, proxy2R可以看到,XFF 的内容由「英文逗号 + 空格」隔开的多个部分组成,最开始的是离服务端最远的设备 […]

算法

水塘采样算法解决随机抽样需求

水塘采样算法解决随机抽样需求 需求场景: 如果我们现在有200万用户数据,需要从200万用户数据中以较好的随机性,随机抽取200个用户做案例分析或灰度发布; 尝试了多种算法,发现水塘采样算法是性能较好、随机性较好、算法空间复杂度平衡、比较适合泛用性需求场景; class ReservoirSampler { private $pdo; private $batchSize = 10000; public function __construct(PDO $pdo) { $this->pdo = $pdo; } public function sample($tableName, $k) { $reservoir = []; // 水塘,存储 k 个随机样本 $offset = 0; // 分页偏移量 $count = 0; // 已处理的元素总数 while (true) { // 分批读取数据,避免一次性加载所有数据 $sql = “SELECT * FROM {$tableName}

技术

Web UI 组件库 Layui 快速网站构建工具

Web UI 组件库 Layui 快速网站构建工具 Layui 是一套遵循原生态开发模式的 Web UI 组件库,采用自身轻量级模块化规范,易上手,可以更简单快速地构建网页界面。 这个工具特别适合非专业的前端开发人员,可以使用该 UI 工具快速构建基于模板渲染的前后端管理后台。 核心特点 该工具具有多种亮点和特色,以下是最值得关注的几个方面: 适用场景 github:

架构设计

服务器性能优化

服务器性能优化 在日常开发中如果需要进行服务器性能优化大概有哪些切入点,例客户端请求服务器一个业务接口,可以优化的对象有Linux,nginx,phpfpm,php,mysql,redis; linux 可以优化配置服务器可以连接的套接字文件进程数 /etc/sysctl.conf # 系统最大文件句柄数(所有进程可打开的文件总数上限) fs.file-max = 1000000 # 系统范围内已分配、未使用的文件句柄数(监控用,一般不直接设置) # fs.file-nr # 端口范围 net.ipv4.ip_local_port_range = 1024 65535 # TCP连接相关 net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65536 net.core.netdev_max_backlog = 50000 # TIME-WAIT优化(高并发场景) net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_tw_buckets = 2000000 net.ipv4.tcp_fin_timeout = 30 nginx # ============ 全局配置部分 ============ user nginx; # 确保与系统用户一致 worker_processes auto; # 自动设置为CPU核心数

RaspberryPi

RaspberryPi 在家庭的使用

RaspberryPi 在家庭的使用 树莓派在家庭使用有很多场景和功能,我在本地使用树莓派有几个有趣的应用方式 – 本地配置 ssh 跳板机 “本地可以配置 ssh 登录跳板机,远程连接服务器,则不需要在多太服务器中配置公钥,家里的所有电脑只需要连接到 pi 中则可以直接请求连接服务器,如果你家中有超过 3 台工作电脑,则是非常有效的的应用场景 “ – 本地配置流量代理 “本地配置clash做流量转发,pi中配置openvpn代理,将转发的流量发送到服务器,则本地局域网中可以实现所有电子设备都可以使用 pi 进行软路由代理 “ – 本地配置 smbd 服务 “本地配置 smbd 服务,本地mount两块闲置的硬盘,则可以在局域网中实现本地网盘,如果您有多台工作电脑和设备之间需要数据传输和共享,则可以通过 smbd 服务进行数据同步,实际本地使用非常方便,可以节省很多不必要的数据亢余 “ – 本地配置aria2c 做本地下载机 “如果你需要本地下载一些大文件,和影音文件,aria2c+本地挂载磁盘 是一个不错的选择,直接使用命令行实现 24 小时不间断下载文件数据,下载后存储在本地挂载磁盘中 “

Mysql

Mysql性能优化-道

Mysql性能优化-道 Mysql是目前市面上最成熟,相对稳定,应用最广,基础数据结构映射最完善的免费数据库, mysql 性能优化是一个老生常谈的问题,从程序员入门,到进阶,面试,工作都会与之打交道,这个命题有些大,从头开始讲起有些无从下手,可以从道法术器的不同维度分化解决这个问题; 数据库三要素 (引自数据库系统概论第6版(王珊)) 数据结构; 数据操作; 数据完整性约束; 第一性原理 Mysql 是数据库数据存储的具体软件和存储工具,所有操作和目的就是为了将数据存储到磁盘,保存数据,方便程序读取和使用,数据库是软件生命周期的一个重要组成部分,所以数据库也具有软件工程的一些属性和状态, 演化原则,持续升级,并且在软件工程的不同阶段根据不同阶段的特性设计表结构和数据存储方案和方法,软件工程要遵循演化原则,不可能一步到位; 设计基础和规范 表明,数据库字段名,表注释,字段注释,数据唯一性约束,数据基础查询索引,命名规范,字段命名规范,注意命名时要见名知意,不要在不必要的语法和标准上纠结,推荐的命名规则,为单数明明category(推荐) categories(不推荐),并且好的表字段命名,可以帮助理解业务逻辑,并且精确定义业务关系,理解使用场景,好的命名规则则程序已经成功了一半; 所有表推荐使用Innodb存储引擎; 字符集,推荐 utf8-mb4; 根据业务场景使用合适的字段类型做数据存储,禁止使用string存储字符串时间; 数据库上线时建议给基础表字段添加索引后再上线; 禁止给decimal、float,double类型添加索引; 索引添加时需要注意索引选择性(Selectivity); 选择度 = COUNT(DISTINCT column) / COUNT(*) >0.3 建议 0.1-0.3 推荐 <=0.1 不推荐 谨慎使用 text 数据类型; 禁止在数据库存储 base64 格式的图片; 严格控制表条目的磁盘空间和表字段宽度,原则上禁止 30 个字段以上的大型表; 同一个数据库database 必须使用统一的字符集编码; 禁止使用 mysql 全文索引; 禁止在线上正式环境使用 like 查询; 禁止在线上正式环境,使用没有 limit 的查询即使表数据较少;

Linux

linux命令快速查询工具tldr

在我们实际工作中,linux命令或者工作命令实际生产过程中需要,快速使用并且完成工作任务,实际使用的命令非常多,如何快速定位命令参数和使用语法呢?我尝试过很多种方式和工具,实际效果最佳的是这款tldr (too lang don’t read) 可以设置一些更简洁的帮助页面,重点介绍实际案例。比如: 这个资源库就是这样:是一个不断扩充的示例集合,涵盖了最常见的 UNIX、Linux、macOS、FreeBSD、NetBSD、OpenBSD、SunOS、Android、Windows、Cisco IOS 和 DOS 命令行工具。 Linux 和 Mac 用户还可以通过 Homebrew 安装官方 Rust 客户端: 你也可以安装官方 Node.js 客户端,但该客户端目前更新较慢: 安装后,即可通过 tldr tar 获取简明易懂的命令帮助,无需再查阅冗长的 man tar。 类似项目推荐

Windowns

优化清理加速你的windows系统

描述 在您长时间使用电脑娱乐工作后,windows电脑经常会出现磁盘飘红的现象,怎样才能长时间保持电脑高效快速使用可以根据以下步骤排查和清理你的电脑 操作步骤 如效果不佳,则进行更深层清理

Linux

linux 命令行导航效率神器autojump

  1. 工具简介 2. 安装与配置 3. 使用案例 4. 跳转权重配置 5. 支持平台与 Shell 6. 已知问题和注意事项 如果遇到autojump j 快捷键无效 您可以通过以下命令检查安装: 如果使用autojump遇到指定的目录在当前系统中有多相似的文件名路径,但是autojump跳转到的不是你想要的路径, 则需要将手动配置你需要跳转的正确路径的权重,
Linux

命令行sql查询辅助工具mycli

mycli 中文简介 mycli 是一个支持自动补全和语法高亮的 MySQL 命令行客户端。 快速安装 推荐方式(需 Python 环境): macOS: Debian/Ubuntu: Arch/Manjaro(AUR): Fedora: Windows 安装请参考:安装方法 基本用法示例 连接到数据库: 执行 SQL 并自动补全: 自动补全表名 多行输入: 收藏查询并执行: 查看帮助: 主要特性 兼容性 Windows 理论可用,如遇问题请提交 issue。 更多文档

Scroll to Top