网站检测 API
检测网站能否访问:状态码、跳转链、DNS / 连接 / 首字节耗时、压缩、服务器软件、HTTPS 与 HTTP/2 支持
数据来源:目标网站
返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。
检测网站可达性、响应时间与跳转
GET /api/site/check
请求参数
url(必填):网址(http / https),只允许公网地址;每一跳跳转都会检查,示例https://www.baidu.com
返回字段
url(string):检测的起始网址(规范化后,已去掉 # 及之后的部分)finalUrl(string):跟随跳转后的最终网址;没有跳转时与 url 相同status(number):最终响应的 HTTP 状态码(如 200、404)statusText(string):状态码的中文说明,如 200 成功、301 永久重定向、404 未找到、503 服务不可用ok(boolean):最终状态码是否为 2xx / 3xx(可正常访问)redirects(number):跳转次数(0~5)hops(array):每一跳的请求记录,第一项是起始网址,最后一项是最终网址hops[].url(string):该跳请求的网址hops[].status(number):该跳的 HTTP 状态码(跳转为 301 / 302 / 303 / 307 / 308)hops[].statusText(string):该跳状态码的中文说明hops[].ms(number):该跳从发起请求到收到响应头的耗时(毫秒,保留两位小数)ip(string|null):最终网址所连接的服务器 IP;取不到时为 nulltiming(object):耗时明细(毫秒,保留两位小数);dns / connect / tls / ttfb 为最终那一跳的数据timing.total(number):总耗时:从第一跳开始到读完响应(含全部跳转和下载,下载最多 1MB)timing.dns(number|null):DNS 解析耗时;网址中直接写 IP 时不需要解析,为 nulltiming.connect(number|null):TCP 建连耗时(不含 DNS);取不到时为 nulltiming.tls(number|null):TLS 握手耗时;http 网址为 nulltiming.ttfb(number):首字节时间:从发起最终那一跳请求(含 DNS、建连、握手)到收到响应头timing.download(number):读取响应体的耗时(最多读 1MB)compressed(boolean):响应是否启用了压缩(请求时带 Accept-Encoding: gzip, deflate, br)compression(string):压缩方式:gzip / br / deflate;未压缩为 none;其他方式为 Content-Encoding 原值(小写)server(string|null):响应头 Server 的原值(如 nginx、cloudflare);没有时为 nullcontentType(string|null):响应头 Content-Type 的原值(如 text/html; charset=utf-8);没有时为 nullcontentLength(number|null):响应头 Content-Length(字节,压缩后的大小);分块传输等没有该头时为 nullbodyBytes(number):实际读取到的响应体字节数(未解压),最多 1048576(1MB)truncated(boolean):响应体是否超过 1MB 被截断(或读取中途断开)https(boolean):最终网址是否为 HTTPShttp2(boolean|null):是否支持 HTTP/2(通过 TLS ALPN 协商 h2 判断);最终网址是 http 或探测失败时为 nulltlsProtocol(string|null):最终网址的 TLS 协议版本(如 TLSv1.3);http 网址为 nullcertValid(boolean|null):最终网址的证书是否可信(链可验证、未过期、与域名匹配);http 网址为 null。详细信息可用 /api/ssl 查询