模拟 HTTP 403 状态码,观察服务器拒绝访问时的响应行为
本页面用于说明 HTTP 403 Forbidden 状态码实验。
实际测试时,点击下方“开始 403 测试”按钮或手动访问
/forbidden-test 路径,Nginx 服务器将直接返回
403 Forbidden 响应。
403 表示服务器已经理解客户端请求,但由于权限配置或访问策略等原因,拒绝提供该资源。 本页面本身只是说明页,真正的 403 响应由 Nginx 配置生成。
通过触发并观察 403 Forbidden 响应,可以理解服务器在“拒绝访问”场景下的 HTTP 行为, 并区分 403 与 404 两种常见错误状态码的含义差异。
| 项目 | 内容 |
|---|---|
| 测试入口 | /forbidden-test |
| 预期状态码 | 403 Forbidden |
| 含义 | 服务器理解请求,但拒绝访问 |
| 最终现象 | 浏览器显示 403 Forbidden 页面或 Nginx 默认错误页 |
本说明页面位于 /forbidden/index.html,可以正常访问。
真正的 403 测试入口是 /forbidden-test,该路径需要在 Nginx 中配置为拒绝访问。
使用 Wireshark 或浏览器开发者工具的 Network 面板,可以观察 403 响应的特点。
客户端请求
GET /forbidden-test HTTP/1.1 Host: 服务器公网 IP 或域名 User-Agent: 浏览器类型
服务器响应
HTTP/1.1 403 Forbidden Server: nginx Content-Type: text/html Content-Length: 响应体字节数 <html> <head><title>403 Forbidden</title></head> <body> <center><h1>403 Forbidden</h1></center> <hr><center>nginx</center> </body> </html>
403 Forbidden,而不是 404 Not Found。
Location 重定向字段,客户端会直接停留在错误页面。
| 状态码 | 含义 | 典型场景 |
|---|---|---|
| 404 Not Found | 资源不存在,服务器无法找到请求的资源 | 访问 /not-exist.html,该文件不在服务器上 |
| 403 Forbidden | 服务器拒绝访问,请求被理解但不被允许 | 访问被 Nginx 配置为拒绝的路径,例如 /forbidden-test |
在实际安全配置中,有时服务器也会故意对敏感路径返回 404, 以避免暴露资源是否存在。本实验采用标准 403,用于明确观察“拒绝访问”的语义。