{
  "port": 9501,
  "protocol": "tcp",
  "service": "Swoole application server (unregistered)",
  "oneLiner": "Unassigned at IANA, but the port every Swoole PHP example listens on — so a PHP coroutine app server is the usual answer.",
  "whatItIs": "IANA has no assignment for 9501. In practice it is the number baked into Swoole's own documentation and README examples: `new Swoole\\Http\\Server('127.0.0.1', 9501)` and the matching WebSocket server. Swoole is a PHP extension that turns PHP into a long-running event-driven server, so a listener here is usually a Laravel Octane, Hyperf, or hand-rolled Swoole process that a copy-pasted example never renamed. Anything else on 9501 is an application picking a free high port.",
  "exposure": {
    "verdict": "careful",
    "note": "An app server, not a proxy — it usually has no TLS, no request-size limits, and no access logging of its own. Put it behind nginx or a load balancer and bind it to localhost."
  },
  "checkCommand": "curl -sI http://TARGET:9501/",
  "links": [
    {
      "title": "Swoole source repository (server examples use 9501)",
      "url": "https://github.com/swoole/swoole-src",
      "kind": "github"
    },
    {
      "title": "IANA Service Name and Transport Protocol Port Number Registry",
      "url": "https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml",
      "kind": "iana"
    }
  ]
}
