帮你快速理解、总结文档立即下载

Request

最近更新时间:2026-06-18 10:59:01

我的收藏
Request 代表 HTTP 请求对象,基于 Web APIs 标准 Request 进行设计。
说明
边缘函数中,可通过两种方式获得 Request 对象:
使用 Request 构造函数创建一个 Request 对象,用于 Fetch API 的操作。
使用 FetchEvent 对象 event.request,获得当前请求的 Request 对象。

构造函数

const request = new Request(input: string | Request, init?: RequestInit)

参数

参数名称
类型
必填
说明
input
string | Request
URL 字符串或 Request 对象。
options
Request 对象初始化配置项。

RequestInit

初始化 Request 对象的属性值选项。
属性名
类型
必填
默认值
说明
method
string
GET
请求方法 (GETPOST 等)。
headers
Headers
-
请求头部信息。
body
string |Blob | ArrayBuffer | ArrayBufferView |ReadableStream
-
请求体。
redirect
string
follow
重定向策略,支持 manualerrorfollow
maxFollow
number
12
最大可重定向次数。
version
string
HTTP/1.1
HTTP 版本,支持 HTTP/1.0HTTP/1.1HTTP/2.0
copyHeaders
boolean
-
非 Web APIs 标准选项,表示是否拷贝传入的 Request 对象的 headers。
eo
-
非 Web APIs 标准选项,用于控制边缘函数处理该请求的行为。

RequestInitEoProperties

非 Web APIs 标准选项,用于控制边缘函数处理该请求的行为。
参数名称
类型
必填
说明
resolveOverride
string
用于 fetch 请求下覆盖原有的域名解析, 支持指定域名或者 IP 地址。更多说明如下:
IP 不允许带 scheme 以及端口号。
IPv6 无需使用方括号包裹。
image
图片处理参数配置项。

实例属性

body

// request.body
readonly body: ReadableStream;
请求体,详情参见 ReadableStream

bodyUsed

// request.bodyUsed
readonly bodyUsed: boolean;
标识请求体是否已读取。

headers

// request.headers
readonly headers: Headers;
请求头部,详情参见 Headers

method

// request.method
readonly method: string;
请求方法,默认值为GET

redirect

// request.redirect
readonly redirect: string;
请求重定向策略,可取值有:followerrormanual,默认为 follow

maxFollow

// request.maxFollow
readonly maxFollow: number;
请求最大重定向次数。

url

// request.url
readonly url: string;
请求 url。

version

// request.version
readonly version: string;
请求使用的 HTTP 协议版本。

eo

// request.eo
readonly eo: IncomingRequestEoProperties;
边缘函数提供的与当前请求相关的一些其他信息,详情参见 IncomingRequestEoProperties

IncomingRequestEoProperties

客户端请求 event.request 对象包含 eo 属性,其信息如下:
属性名
类型
说明
示例值
geo
描述客户请求的位置信息。
-
tls
描述客户请求的 TLS 相关信息。
该字段仅在客户端请求为 TLS 请求时有值。
-
clientIp
string
客户端请求 IP。
192.168.1.1
clientPort
number
客户端请求端口。
-
httpProtocol
string
客户端请求的 HTTP 协议版本。
HTTP/1.1
uuid
string
请求的唯一标识,作用同 EO-LOG-UUID。
-

GeoProperties

描述客户请求的位置信息。
属性名
类型
说明
示例值
asn
number
ASN。
132203
continent
string
大洲名。
Asia
countryName
string
国家名。
Singapore
countryCodeAlpha2
string
国家的 ISO-3166 alpha2 代码。
SG
countryCodeAlpha3
string
国家的 ISO-3166 alpha3 代码。
SGP
countryCodeNumeric
string
国家的 ISO-3166 numeric 代码。
702
regionName
string
区域名。
-
regionCode
string
区域代码。
AA-AA
cityName
string
城市名。
Singapore
latitude
number
纬度。
1.29027
longitude
number
经度。
103.851959

TlsProperties

描述客户请求的 TLS 相关信息。
属性名
类型
说明
示例值
version
string
客户端请求的 TLS 版本。
TLS1.3
cipher
string
客户端请求的 TLS 加密套件。
TLS_AES_256_GCM_SHA384
clientAuth
描述客户端证书的相关信息。
该字段仅当客户端携带证书请求时有值。
-
clientCiphersSha1
string
客户端在 TLS 握手期间 ClientHello 中发送的 cipher_suites 列表的 SHA-1 哈希值(Base64 编码),以大端格式编码。
-
clientExtensionsSha1
string
客户端在 TLS 握手期间 ClientHello 中发送的 extensions 列表的 SHA-1 哈希值(Base64 编码),以大端格式编码。
-
clientExtensionsSha1Le
string
客户端在 TLS 握手期间 ClientHello 中发送的 extensions 列表的 SHA-1 哈希值(Base64 编码),以小端格式编码。
-
clientHelloLength
string
客户端在 TLS 握手期间发送的 ClientHello 消息的字节长度。
-
clientRandom
string
客户端在 TLS 握手期间 ClientHello 中发送的 32 字节 random 字段(Base64 编码)。
-

TlsClientAuthProperties

描述客户端证书的相关信息。
属性名
类型
说明
示例值
certPresented
string
客户端是否实际发送了证书。
取值永远为 "1"。
1
certVerified
string
客户端证书的校验结果。
仅有两个取值:"SUCCESS"(校验成功)和 "FAILED" (校验失败)。
SUCCESS
certIssuerDN
string
客户端证书颁发者的唯一甄别名(Distinguished Name, DN),RFC 4514 格式。
-
certSubjectDN
string
客户端证书主体的唯一甄别名(Distinguished Name, DN),RFC 4514 格式。
-
certIssuerDNRFC2253
string
客户端证书颁发者的唯一甄别名(Distinguished Name, DN),RFC 2253 格式。
-
certSubjectDNRFC2253
string
客户端证书主体的唯一甄别名(Distinguished Name, DN),RFC 2253 格式。
-
certIssuerDNLegacy
string
客户端证书颁发者的唯一甄别名(Distinguished Name, DN),Open SSL 传统格式。
-
certSubjectDNLegacy
string
客户端证书主体的唯一甄别名(Distinguished Name, DN),Open SSL 传统格式。
-
certSerial
string
客户端证书序列号。
-
certIssuerSerial
string
颁发此客户端证书的 CA 证书自身的序列号(即颁发者证书中的 serialNumber 字段)。
-
certSKI
string
客户端证书的主体密钥标识符(Subject Key Identifier,SKI)。
-
certIssuerSKI
string
客户端证书颁发者的主体密钥标识符(Subject Key Identifier,SKI)。
-
certFingerprintSHA1
string
客户端证书的 SHA-1 指纹。
-
certFingerprintSHA256
string
客户端证书的 SHA-256 指纹。
-
certNotBefore
string
客户端证书开始生效时间,OpenSSL 惯例打印格式(非 ISO 8601)。
Jan 01 00:00:00 2026 GMT
certNotAfter
string
客户端证书失效时间,OpenSSL 惯例打印格式(非 ISO 8601)。
Jan 01 00:00:00 2026 GMT
certPublicKeyAlgorithm
string
客户端证书的公钥算法类型,取值为 "RSA"、"DSA"、"EC"、"ED25519"、"SM2" 及 "Other"。
-
certPublicKeyAlgorithmLongName
string
客户端证书的公钥算法长名称,透传 OpenSSL 的算法长名称。
-
certPublicKeyAlgorithmShortName
string
客户端证书的公钥算法短名称,透传 OpenSSL 的算法短名称。
-

实例方法

注意
获取请求体的方法,接收 HTTP body 最大字节数为 1MB,超出大小会抛出 OverSize 异常。超出大小时推荐使用 request.body 流式读取,详情参见 ReadableStream

arrayBuffer

request.arrayBuffer(): Promise<ArrayBuffer>;
获取请求体,解析结果为 ArrayBuffer

blob

request.blob(): Promise<Blob>;
获取请求体,解析结果为 Blob

clone

request.clone(copyHeaders?: boolean): Request;
创建请求对象的副本。

参数

参数名称
类型
必填
说明
copyHeaders
boolean
开启复制请求头,默认值为 false,取值说明如下。
true
复制原对象的请求头。
false
引用原对象的请求头。

json

request.json(): Promise<object>;
获取请求体,解析结果为 JSON

text

request.text(): Promise<string>;
获取请求体,解析结果为文本字符串。

formData

request.formData(): Promise<FormData>;
获取响应体,解析结果为 FormData

参数

参数名称
类型
必填
说明
cookies
Cookies
新的 Cookies 对象。

示例代码

async function handleRequest() {
const request = new Request('https://www.tencentcloud.com/');
const response = await fetch(request);
return response;
}

addEventListener('fetch', (event) => {
event.respondWith(handleRequest());
});

相关参考