<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HTTP Server on PlumePHP</title><link>https://plumephp.com/tags/http-server/</link><description>Recent content in HTTP Server on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 14 Aug 2026 18:42:06 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/http-server/index.xml" rel="self" type="application/rss+xml"/><item><title>Go HTTP 服务优雅关闭入门：停止接新请求，等旧请求收尾</title><link>https://plumephp.com/go-http-server-shutdown-drain-2025/</link><pubDate>Fri, 18 Apr 2025 08:42:00 +0800</pubDate><guid>https://plumephp.com/go-http-server-shutdown-drain-2025/</guid><description>&lt;p&gt;HTTP 服务发布或重启时，如果直接杀进程，正在处理的请求可能被中断，用户看到连接错误，后台写入也可能只完成一半。Go 的 &lt;code&gt;http.Server.Shutdown&lt;/code&gt; 可以帮助服务优雅关闭：停止接收新连接，等待已有请求完成，直到超时。&lt;/p&gt;</description></item><item><title>信号处理：让你的应用优雅地退出</title><link>https://plumephp.com/go-signal-handling/</link><pubDate>Mon, 19 Apr 2021 16:05:00 +0800</pubDate><guid>https://plumephp.com/go-signal-handling/</guid><description>&lt;h2 id="信号处理让你的应用优雅地退出"&gt;信号处理：让你的应用优雅地退出&lt;/h2&gt;
&lt;p&gt;你有没有遇到过这样的情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你的 Web 服务器正在处理请求，突然被 &lt;code&gt;Ctrl+C&lt;/code&gt; 终止，正在处理的请求直接断开&lt;/li&gt;
&lt;li&gt;你的后台任务正在写数据库，进程被 kill 了，数据写了一半&lt;/li&gt;
&lt;li&gt;你的应用收到 &lt;code&gt;SIGTERM&lt;/code&gt; 信号（比如 Kubernetes 要重启你的 Pod），但应用直接退出了，没有做任何清理工作&lt;/li&gt;
&lt;li&gt;你的日志文件没来得及刷新到磁盘，进程就被强制结束了&lt;/li&gt;
&lt;li&gt;你的缓存还没来得及持久化到数据库，服务就停止了&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些问题都可以通过&lt;strong&gt;优雅退出&lt;/strong&gt;（Graceful Shutdown）来解决。&lt;/p&gt;</description></item><item><title>Go Web 入门：只用标准库写一个小而清楚的 HTTP 服务</title><link>https://plumephp.com/go-http-server-first-project/</link><pubDate>Fri, 28 Feb 2020 09:35:00 +0800</pubDate><guid>https://plumephp.com/go-http-server-first-project/</guid><description>&lt;h2 id="为什么建议先用标准库写一次-web-服务"&gt;为什么建议先用标准库写一次 Web 服务&lt;/h2&gt;
&lt;p&gt;很多人学 Go Web 的第一步是找框架。Gin、Echo、Fiber 都很好用，但如果完全跳过标准库，后面很容易只会照框架文档写代码，却不理解请求、响应、路由和中间件到底是什么。Go 的 &lt;code&gt;net/http&lt;/code&gt; 标准库已经足够写一个小型 JSON 服务。先用它做一次完整项目，会让你对所有框架的理解都更扎实。&lt;/p&gt;</description></item></channel></rss>