ARM64 汇编编写的 Web 服务器 ymawky:功能特性、安全措施与配置说明
导航菜单切换导航。可进行登录操作还能进行外观设置。平台AI 代码创作包括 GitHub Copilot、GitHub Spark、GitHub Models、MCP Registry新等工具各有其功能特点。开发者工作流有 Actions、Codespaces、Issues、Code Review 等用于自动化工作流、提供开发环境、规划跟踪工作和管理代码变更等。应用安全涵盖 GitHub Advanced Security、代码安全、密钥保护等方面可发现修复漏洞、保障代码安全和阻止信息泄露。探索包含为何选择 GitHub、文档、博客、更新日志、市场等内容。还可查看所有功能。解决方案按公司规模划分有企业版、中小团队版、初创公司版、非营利组织版。按用例划分包括应用现代化、DevSecOps、DevOps、CI/CD 等用例还能查看所有用例。按行业划分涉及医疗保健、金融服务、制造业、政府部门等行业也可查看所有行业。还可查看所有解决方案。资源按主题探索有人工智能、软件开发、DevOps、安全等主题可查看所有主题。按类型探索包括客户案例、活动与网络研讨会、电子书与报告、商业洞察、GitHub Skills。支持与服务有文档、客户支持、社区论坛、信任中心、合作伙伴。还可查看所有资源。开源社区有 GitHub Sponsors 用于资助开源开发者。项目包括安全实验室、维护者社区、加速器、GitHub Stars、存档项目。仓库涵盖主题、热门趋势、集合。企业版企业解决方案有企业平台由 AI 驱动的开发者平台。可用附加组件包括 GitHub Advanced Security、Copilot for Business、高级支持。定价可查看定价信息还可进行搜索或跳转操作提供搜索代码、仓库、用户等功能有搜索语法提示还能进行反馈提交。此外还有保存的搜索功能。其他导航选项有代码、问题、拉取请求、操作、项目、安全与质量、洞察等导航项。imtomt/ymawky主分支可进行分支和标签操作能转到文件查看代码还有文件夹和文件展示包括最新提交和历史记录等内容。仓库文件导航包括 README、GPL - 3.0 许可证等。_ymawky_ —— 用 ARM 汇编编写的 Web 服务器这是 _ymawky_一个完全用 ARM64 汇编语言编写的 Web 服务器。它仅使用系统调用、不依赖 libc 库、采用每个连接一个进程的方式代码均为手动编写虽为 MacOS 开发但开发者尽力使其具备可移植性不过在 Linux 或其他 Unix 系统上运行可能需调整。构建需要安装 Xcode 命令行工具可使用 xcode - select --install 安装。ymawky 仅支持苹果硅芯片arm64。运行 make 命令进行构建要确保 ymawky 可执行文件旁边存在 www/ 目录这是文档根目录当请求的 GET 为空文件名时会搜索 www/index.html。当客户端请求出错时_ymawky_ 会尝试提供静态错误页面需确保 err/ 目录与 ymawky 和 www/ 目录处于同一层级可通过配置修改默认文件和文档根目录。运行./ymawky在 127.0.0.1:8080 上启动 Web 服务器。./ymawky [端口号]在 127.0.0.1:[端口号] 上启动 Web 服务器。./ymawky [非 0 - 9 的任意字符]以调试模式在 127.0.0.1:8080 上启动 Web 服务器调试模式会禁用多进程使 ymawky 仅处理一个请求。目前 ymawky 只能在 127.0.0.1 上运行若要体验可启动服务器后访问相应地址。功能特性支持的 HTTP 方法包括 GET、PUT、DELETE、OPTIONS、HEAD。基本防护可抵御类似 Slowloris 的拒绝服务攻击。编码解码支持对 % 十六进制编码进行解码。路径遍历检测与防范能智能检测并阻止路径遍历防止 .. 用于路径穿越但不禁止文件名中包含多个点的情况。自动前缀自动在请求的文件前添加 www/。默认请求空的 GET / 请求默认指向 GET www/index.html。PUT 请求支持上传最大 1GiB 的文件也可配置支持更大文件PUT 操作是原子性的可支持并发 PUT 请求会对 PUT 请求中的 Content - Length 进行解析和验证。MIME 类型检测能检测文件的 MIME 类型并在响应头中给出相应的 Content - Type。范围请求支持在 GET 请求中使用 Range: bytes 范围对视频拖动播放有良好支持。HTTP 版本解析基本的 HTTP 版本解析请求需指定 HTTP/1.1 或 HTTP/1.0请求 HTTP/1.1 时请求头中必须包含 Host: 字段。错误页面为错误代码提供自定义 HTML 页面可在 err/ 目录中查看示例。目录列表若请求的资源是目录会列出该目录下的所有文件和子目录GET / 若未指定文件始终会搜索 index.html。“安全性”ymawky 是手动编写的 Web 服务器可能存在漏洞但开发者已采取安全措施如拒绝特定长度和包含特定内容的请求、限制访问范围、使用特定文件操作方式、设置接收数据超时时间等。HTTP 状态码ymawky 目前支持并可返回多种状态码错误代码400 以上会附带自定义 HTML 页面可使用 build_err_pages.sh 为每个错误代码创建页面并可根据需要修改文本。MIME 类型与 Web 相关的文件如 .html 对应 text/html; charsetutf - 8 等多种类型。图像文件如 .png 对应 image/png 等多种类型。字体文件如 .woff 对应 font/woff 等多种类型。文档文件如 .txt 对应 text/plain; charsetutf - 8 等多种类型。视频文件如 .mp4 对应 video/mp4 等多种类型。音频文件如 .mp3 对应 audio/mpeg 等多种类型。存档文件如 .zip 对应 application/zip 等多种类型。配置可使用 config.S 文件对 ymawky 进行配置包括文档根目录、错误页面目录、默认文件、接收数据超时时间、请求头接收超时时间、PUT 操作宽限期、最小字节每秒数、最大请求体大小、最大并发进程数等选项。实现说明ymawky 为 MacOS 编写代码中有特定于 MacOS 的内容不具备可移植性如系统调用、错误报告、fork() 函数、特定选项和函数、结构体布局和偏移量、重定位操作符、信号处理等方面在不同系统存在差异。特别感谢感谢 _Bob Johnson_ 和 _Bob Johnson 的治疗师_。关于这是一个完全用 ARM64 汇编编写的 MacOS Web 服务器。资源有 README 资源。许可证采用 GPL - 3.0 许可证。哎呀加载时出现错误可重新加载此页面。还展示了活动、收藏数、关注者、复刻数等信息可举报仓库有版本发布、包、贡献者等内容也存在加载错误情况还展示了语言占比信息。页脚有相关导航和声明此时可能无法执行某些操作。