1. 检查 HTTP 响应头 (Response Headers)
这是最直接的办法。服务器在发送网页数据时,会在 Header 中附带一些元数据。
-
操作方法 :打开浏览器开发者工具 (
F12) -> Network 选项卡 -> 刷新页面 -> 点击第一个请求(通常是域名本身) -> 查看 Headers。 -
寻找关键词:
-
Server:-
Spring Boot : 经常显示
Apache-Coyote/1.1或Tomcat。 -
Django/Flask : 有时显示
Gunicorn或Werkzeug。 -
ASP.NET : 显示
Kestrel。
-
-
X-Powered-By: 经常直接显示Express,PHP/7.4,ASP.NET,Next.js等。 -
X-Application-Context: 较旧版本 Spring Boot 的特有头信息。 -
X-AspNet-Version: 明显的 .NET 标志。
-
2. 观察 Cookie 的名称
很多框架在处理用户登录或会话(Session)时,会使用默认的 Cookie 名称。
-
操作方法 :开发者工具 -> Application (或 Storage) -> Cookies。
-
指纹对照:
-
JSESSIONID: Java (Spring Boot / Tomcat) 的标志性 Cookie。 -
csrftoken或sessionid: 极大概率是 Django。 -
laravel_session或XSRF-TOKEN: 明显的 Laravel。 -
connect.sid: 通常是 Express (Node.js)。 -
PHPSESSID: 原生 PHP。 -
ASP.NET_SessionId: ASP.NET。
-
3. 分析 URL 特征与默认路径
有些框架有非常独特的 URL 路由习惯、管理后台地址或监控接口。
-
管理后台与监控:
-
/actuator/health: Spring Boot 监控端点的默认路径(若返回{"status":"UP"}则可确认)。 -
/admin/: Django 的标配。 -
/wp-admin/: WordPress (PHP)。 -
/nova/或/filament/: Laravel 的常用后台。
-
-
文件后缀:
-
.do或.action: 经典的 Java Struts/Spring 遗留风格。 -
.php: PHP 框架。 -
.aspx: ASP.NET。
-
-
静态资源路径:
-
/webjars/: Spring Boot 管理前端依赖的常用路径。 -
/_next/: Next.js (React 全栈)。 -
/_nuxt/: Nuxt.js (Vue 全栈)。
-
4. 寻找特定的 HTML 标记与素材
全栈框架通常负责服务端渲染(SSR),会在 HTML 源码中注入特定脚本或保留默认素材。
-
默认图标 (Favicon) :Spring Boot 未修改时标签页会显示绿色的"小叶子"图标。
-
HTML 标志:
-
Next.js : 源码中包含
<script id="__NEXT_DATA__" type="application/json">。 -
Nuxt.js : 源码中包含
window.__NUXT__。 -
Django : 在表单(Form)中经常能看到
name="csrfmiddlewaretoken"的隐藏输入框。
-
5. 故意触发报错 (Error Pages)
如果网站配置不当,通过访问不存在的页面(404)触发的默认报错页是识别框架的"王牌"。
-
Spring Boot : 标志性的 Whitelabel Error Page 。页面包含时间戳、错误状态码,并声明
This application has no explicit mapping for /error。 -
Django: 标志性的黄色调试页面(Debug mode)。
-
Laravel: 标志性的 Ignition 报错页面。
-
Rails: 简洁的 "Routing Error" 页面。
6. 自动化工具(最高效)
如果你不想手动翻找,这些工具整合了数千种指纹库:
-
Wappalyzer (插件):自动识别并分类前后端技术栈,能抓取 Header 和脚本特征。
-
BuiltWith (网站):提供最详细的技术栈报告,包括服务器托管信息和历史演变。
核心框架指纹对比表
| 识别维度 | Spring Boot | Django | Laravel | Express (Node.js) | Next.js (全栈) |
|---|---|---|---|---|---|
| 常见 Cookie | JSESSIONID |
csrftoken |
laravel_session |
connect.sid |
_next_static |
| 特有路径 | /actuator/health |
/admin/ |
路由结构优雅 | 无固定 | /_next/static/ |
| 默认错误页 | Whitelabel Error | 黄色调试页面 | Ignition 报错页 | 无固定 | 自定义 404 页面 |
| HTML 标志 | 绿色叶子图标 | csrfmiddlewaretoken |
无明显 | 无明显 | __NEXT_DATA__ |
| 默认 Server | Tomcat / Jetty | Gunicorn/WSGI | Nginx/Apache | Node.js | Vercel/Node.js |