# web.server

## 功能

读取请求和服务器信息。

## 语法

```bt
web.server
```

## 参数

无参数。

## 返回值

| 类型 | 说明 |
| ------ | ------ |
| Object | 返回当前 HTTP 请求和连接信息对象。 |

## 对象结构

| 字段 | 类型 | 说明 |
| ------ | ------ | ------ |
| method | String | 当前请求方法，通常为 GET、POST、PUT、DELETE 等大写字符串。 |
| version | String | HTTP 协议版本调试文本，例如 HTTP/1.1、HTTP/2.0。 |
| scheme | String | 请求协议，通常为 http 或 https。 |
| headers | Object | 请求头对象；键为请求头名称，值为请求头字符串值。 |
| local_addr | String | 服务端本地监听地址，包含 IP 和端口。 |
| remote_addr | String | 客户端远端地址，包含 IP 和端口。 |
| ip | String/Null | 客户端 IP 字符串；底层请求无法解析 IP 时返回 null。 |
| port | Int/Null | 客户端端口；底层请求无法解析端口时返回 null。 |

## 示例

```bt
result = web.server.method

// 输出：GET
print result
```

读取请求头和客户端地址：

```bt
ua = web.server.headers['user-agent']
ip = web.server.ip
port = web.server.port

echo(ip + ':' + string(port))
```

## 注意事项

- `web.method` 与 `web.server.method` 返回同一个请求方法字符串。
- `headers` 字段只读取客户端请求头；设置响应头请使用 `web.header()`。
- 请求头名称由底层 HTTP 服务生成，访问前应以实际对象键名为准。
