{"id":24535052,"url":"https://github.com/ikxin/f5-bench","last_synced_at":"2026-03-15T18:27:48.186Z","repository":{"id":242905624,"uuid":"810605207","full_name":"ikxin/f5-bench","owner":"ikxin","description":"利用 Fetch API 对目标网站进行高频请求，模拟按下 F5 刷新的效果，以测试服务器资源极限，请勿用于非法用途。","archived":false,"fork":false,"pushed_at":"2025-03-04T07:50:29.000Z","size":766,"stargazers_count":58,"open_issues_count":0,"forks_count":17,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-13T05:13:27.055Z","etag":null,"topics":["ab-testing","apache-bench","bench","benchmark","browser","fetch","fetch-api","http","request","website"],"latest_commit_sha":null,"homepage":"https://f5-bench.ikxin.com","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ikxin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-05T02:50:40.000Z","updated_at":"2025-03-25T18:11:06.000Z","dependencies_parsed_at":"2025-03-17T10:13:36.599Z","dependency_job_id":null,"html_url":"https://github.com/ikxin/f5-bench","commit_stats":null,"previous_names":["ikxin/ffive-bench"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikxin%2Ff5-bench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikxin%2Ff5-bench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikxin%2Ff5-bench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikxin%2Ff5-bench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ikxin","download_url":"https://codeload.github.com/ikxin/f5-bench/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665746,"owners_count":21142123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ab-testing","apache-bench","bench","benchmark","browser","fetch","fetch-api","http","request","website"],"created_at":"2025-01-22T11:31:36.937Z","updated_at":"2026-03-15T18:27:48.179Z","avatar_url":"https://github.com/ikxin.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"400\" src=\"./public/images/logo.svg\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ikxin/f5-bench/releases\"\u003e\u003cimg src=\"https://badgen.net/github/release/ikxin/f5-bench\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ikxin/f5-bench/stargazers\"\u003e\u003cimg src=\"https://badgen.net/github/stars/ikxin/f5-bench\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ikxin/f5-bench/network/members\"\u003e\u003cimg src=\"https://badgen.net/github/forks/ikxin/f5-bench\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ikxin/f5-bench/commits\"\u003e\u003cimg src=\"https://badgen.net/github/commits/ikxin/f5-bench\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ikxin/f5-bench/issues\"\u003e\u003cimg src=\"https://badgen.net/github/issues/ikxin/f5-bench\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ikxin/f5-bench/watchers\"\u003e\u003cimg src=\"https://badgen.net/github/watchers/ikxin/f5-bench\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ikxin/f5-bench/blob/main/LICENSE\"\u003e\u003cimg src=\"https://badgen.net/github/license/ikxin/f5-bench\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## 📖 项目介绍\n\n本项目早期灵感来源于 HostLoc 论坛上的[一篇帖子](https://hostloc.com/thread-1312882-1-1.html)，当时测试了一下自己的网站，因为该网站没有配置任何访问频率限制，结果很轻松的就将服务器资源给占满了，觉得这个小工具挺有意思的，就想着自己也搭建一个用来给网站进行请求基准测试。\n\n经过对原作者 `@主机玩家` 询问是否开放源代码，最终没有收到答复，于是决定自己动手写一个。[原网站](https://f5.serverplayer.com/)核心代码经过了混淆无法阅读，所以本项目仅参考了原网站的思路，并以此为基础进行了重新开发。\n\n本项目命名为 [F5 Bench](https://github.com/ikxin/f5-bench)，即网站请求基准测试 (Fetch Benchmark) 的意思，F5 既可以用来表示键盘上的[刷新键](https://www.toptal.com/developers/keycode/f5)，也可以表示 Fetch 的缩写。\n\n本项目的原理也很简单，就是通过 [Fetch API](https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API) 来频繁的请求目标网站，从而对目标网站进行请求基准测试，也就是 HostLoc 论坛里常常提到的玩笑梗，通过 F5 刷新对目标网站发起请求基准测试，从而使目标网站服务器资源占满导致崩溃。\n\n得益于 [Fetch API](https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API) 拥有 [`no-cors` 模式](https://developer.mozilla.org/zh-CN/docs/Web/API/fetch#mode)，因此本项目可以绕过 [CORS](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS) 限制，直接对目标网站发起跨域请求，从而实现请求基准测试。\n\n## ✨ 功能特性\n\n- 🚀 基于 [Next.js](https://nextjs.org/) 构建，静态导出，可部署到任意静态托管平台\n- 🎨 使用 [Semi Design](https://semi.design/) 组件库 + [Tailwind CSS](https://tailwindcss.com/) 构建 UI\n- 🌍 支持 11 种语言的国际化（简体中文、繁体中文、English、日本語、한국어、Français、Deutsch、Español、Português、Русский、العربية）\n- 🌙 支持亮色/暗色主题切换\n- 🔧 可配置并发线程数\n- 📊 实时显示请求统计（总请求数、请求速度、总耗时）\n\n## 🛠️ 技术栈\n\n| 技术                                          | 说明                         |\n| --------------------------------------------- | ---------------------------- |\n| [Next.js](https://nextjs.org/)                | React 全栈框架               |\n| [React](https://react.dev/)                   | UI 构建库                    |\n| [TypeScript](https://www.typescriptlang.org/) | 类型安全的 JavaScript        |\n| [Tailwind CSS](https://tailwindcss.com/)      | 原子化 CSS 框架              |\n| [Semi Design](https://semi.design/)           | 企业级 UI 组件库             |\n| [next-intl](https://next-intl.dev/)           | Next.js 国际化方案           |\n| [pnpm](https://pnpm.io/)                      | 快速、节省磁盘空间的包管理器 |\n\n## 📝 免责声明\n\n基于 Fetch API 发起的网络请求，会携带本机设备的 IP 信息，因此请勿将本工具用于任何非法用途，本项目仅限于开发者用于对自己的网站发起请求基准测试，除此之外的一切使用场景，使用者本人需承担所有责任，本项目不对任何使用场景负责。\n\n## 👀 在线演示\n\n本项目使用 Cloudflare Pages 进行部署在线演示，禁止使用其进行非法请求基准测试，托管平台会对使用者以及使用记录进行日志文件留存（仅用于规避责任风险）。\n\nhttps://f5-bench.ikxin.com\n\n## 📦 部署方式\n\n### 静态文件部署\n\n在本项目 [Release](https://github.com/ikxin/f5-bench/releases) 页面下载最新版本的压缩包，将其上传到任意静态网站主机中，然后解压到网站根目录即可。\n\n### 本地开发\n\n```bash\n# 克隆项目\ngit clone https://github.com/ikxin/f5-bench.git\ncd f5-bench\n\n# 安装依赖\npnpm install\n\n# 启动开发服务器\npnpm dev\n\n# 构建生产版本\npnpm build\n```\n\n## 🤝 参与贡献\n\n欢迎参与项目贡献！请阅读 [贡献指南](./CONTRIBUTING.md) 了解详情。\n\n## ⭐ 星星\n\n![](https://starchart.cc/ikxin/f5-bench.svg?variant=light)\n\n## 🧑‍💻 作者\n\nCode with ❤️ by [一纸忘忧](https://www.ikxin.com \"一纸忘忧\")\n\n## 📜 开源协议\n\n[MIT License](./LICENSE \"MIT License\")\n\nCopyright (c) 2024 ~ Present\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikxin%2Ff5-bench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fikxin%2Ff5-bench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikxin%2Ff5-bench/lists"}