博客
什么是表单后端?(以及您何时需要它)
· 1 分钟阅读
表单后端是一种托管服务,用于接收您网站的表单提交,让您无需运行服务器。您的 HTML 表单会向该服务的端点发送 POST 请求;服务端验证请求、过滤垃圾信息、存储提交内容并通知您。您的网站保持完全静态。
它解决的问题
HTML 表单是静态网站中唯一无法保持静态的部分。<form> 元素需要一个地方来发送数据,而浏览器只能向某个 URL 发送 POST 请求。过去,这意味着要运行一台服务器--PHP 脚本、Node 应用,或者后来的无服务器函数--以及随之而来的一切:垃圾信息过滤、存储、邮件投递、正常运行时间。
表单后端用一个属性就取代了这一切:
<form action="https://formhook.app/f/fh_your-key" method="POST">这就是全部集成工作。剩下的--解析、垃圾信息防护、存储、通知--都在服务端完成。
一个好的表单后端为您处理的事项
- 接收与解析 - form-encoded、JSON 和 multipart 格式的提交
- 垃圾信息防护 - 蜜罐字段、速率限制,以及像 Cloudflare Turnstile 这样的验证挑战
- 存储 - 将提交保存在可搜索、可导出的仪表盘中
- 通知 - 通过邮件,或者更好地,在提交到达的那一刻发送原生推送通知
- 安全 - CORS 允许列表、经过验证的重定向、TLS
什么时候需要它
如果以下任何一条符合您的项目,您就需要一个表单后端:
- 您的网站是静态的 - GitHub Pages、Cloudflare Pages、由 Nginx 提供的导出文件、Hugo、Astro,或纯 HTML。没有服务器可以接收 POST 请求。
- 您不想维护一个接收端 - 即使在有服务器的网站上,联系表单的接收端点也是一种需要持续进行垃圾信息过滤和监控的、没有差异化价值的基础设施。
- 您希望把所有提交集中在一处 - 可搜索、可导出,并推送到您的手机,而不是散落在各个收件箱里。
什么时候不需要
如果您已经在运行一个完整的应用服务器,并且表单直接接入您自己的数据库和业务逻辑,那么托管后端就是一个您可能并不需要的额外环节。当表单只是顺带的需求时--比如挂在一个原本静态或以内容为主的网站上的联系表单或咨询表单--表单后端才真正值得使用。
选择之前要检查的事项
从外部看,这个品类似乎可以随意替换;差异会在上线之后才显现出来。以下四个问题值得向任何服务商提问,包括我们自己:
- 免费层是为了什么?有些服务明确定位为用于测试和开发,而非生产环境。Formhook 的免费层是为真实网站打造的--每月 250 次提交,永久保留。
- 提交内容会保留多久?一条 30 天后自动删除的线索,就是您客户失去的一条线索。请找到书面的保留政策。
- 数据实际存储在哪里?对欧盟网站而言,使用美国托管的处理方,会把整个数据传输问题带入您的隐私政策。Formhook 将提交数据存储在德国。
- 您能导出全部数据吗?如果离开时需要苦苦哀求客服才能拿到数据导出,那就不要加入。
一旦确认了这些,集成工作真的就只是上面那一行代码。完整的字段参考请见文档,或查看框架指南,获取适用于 Astro、Next.js、Hugo 等框架的可复制粘贴代码片段。
一行代码上线可用的表单
欧盟托管,提交记录永久保存,所有套餐均支持推送通知。
免费开始无需信用卡 · 阅读文档
继续阅读
- 如何为 GitHub Pages 添加联系表单GitHub Pages 无法运行服务器代码,但您仍然可以拥有一个可用的联系表单。本文比较了三种方案,并提供一个一分钟即可搞定的复制粘贴方案。
- Mailto 链接与联系表单:哪个流失的线索更少?在没有配置邮件客户端的设备上,mailto 链接会静默失败,还会把您的地址暴露给垃圾邮件机器人。什么时候 mailto 就够用,什么时候联系表单能收回成本。
- 联系表单垃圾信息:honeypot、速率限制与 Turnstile联系表单垃圾信息实际是如何运作的,以及阻止它的三层防护:honeypot 字段、速率限制和 Cloudflare Turnstile--同时不为难真实访客。