本文为您介绍请求判断相关函数的语法、参数、示例和返回值。

server_addr

通过server_addr返回已接收当前请求的服务器的地址,函数的详细信息见下表。
项目 描述
语法 server_addr()
参数
示例
s_addr = server_addr()
say(concat('s_addr:', s_addr))
返回值 返回服务器地址,返回值为字符串类型。

server_port

使用server_port返回接收了当前请求的服务器端口,函数的详细信息见下表。
项目 描述
语法 server_port()
参数
示例
s_addr = server_addr()
say(concat('s_addr:', s_addr))
返回值 返回服务器端口,返回值为数字类型。

client_addr

使用client_addr返回客户端IP地址,函数的详细信息见下表。
项目 描述
语法 client_addr()
参数
示例
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))
返回值 返回客户端IP地址,返回值为字符串类型。

client_port

使用client_port返回客户端的端口,函数的详细信息见下表。
项目 描述
语法 client_port()
参数
示例
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))
返回值 返回客户端的端口,返回值为数字类型。

client_country

使用client_country返回客户端IP的国家编码,函数的详细信息见下表。
项目 描述
语法 client_country()
参数
示例
c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}
返回值 返回客户端的国家编码,返回值为字符串类型。国家编码信息,请参见国家编码表

client_region

使用client_region返回客户端的地区编码,函数的详细信息见下表。
项目 描述
语法 client_region()
参数
示例
c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}
返回值 返回客户端的地区编码,返回值为字符串类型。地区编码信息,请参见地区编码表

client_city

使用client_city返回客户端的城市编码,函数的详细信息见下表。

项目 描述
语法 client_city()
参数
示例
c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}
返回值 返回客户端的城市编码,返回值为字符串类型。城市编码信息,请参见城市编码表

client_isp

使用client_isp返回客户端的运营商编码,函数的详细信息见下表。
项目 描述
语法 client_isp()
参数
示例
c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}
返回值 返回客户端的运营商编码,返回值为字符串类型。运营商编码信息,请参见运营商编码表

ip_country

使用ip_country返回指定IP的国家编码,函数的详细信息见下表。
项目 描述
语法 ip_country(ipaddr)
参数 ipaddr:点分十进制的IP字符串。
示例
c_country = ip_country('10.10.10.10')
c_region = ip_region('172.16.0.1')
c_city = ip_city('192.0.2.1')
c_isp = ip_isp('198.51.100.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}
返回值 返回指定IP的国家编码,返回值为字符串类型。国家编码信息,请参见国家编码表

ip_region

使用ip_region返回指定IP的地区(省市)编码,函数的详细信息见下表。
项目 描述
语法 ip_region(ipaddr)
参数 ipaddr:点分十进制的IP字符串。
示例
c_country = ip_country('10.10.10.10')
c_region = ip_region('172.16.0.1')
c_city = ip_city('192.0.2.1')
c_isp = ip_isp('198.51.100.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}
返回值 返回指定IP的地区(省市)编码,返回值为字符串类型。地区编码信息,请参见地区编码表

ip_city

使用ip_city返回指定IP的城市编码,函数的详细信息见下表。

项目 描述
语法 ip_city(ipaddr)
参数 ipaddr:点分十进制的IP字符串。
示例
c_country = ip_country('10.10.10.10')
c_region = ip_region('172.16.0.1')
c_city = ip_city('192.0.2.1')
c_isp = ip_isp('198.51.100.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}
返回值 返回客户端的城市编码,返回值为字符串类型。城市编码信息,请参见城市编码表

ip_isp

使用ip_isp返回指定IP的运营商编码,函数的详细信息见下表。
项目 描述
语法 ip_isp(ipaddr)
参数 ipaddr:点分十进制的IP字符串。
示例
c_country = ip_country('10.10.10.10')
c_region = ip_region('172.16.0.1')
c_city = ip_city('192.0.2.1')
c_isp = ip_isp('198.51.100.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}
返回值 返回指定IP的运营商编码,返回值为字符串类型。运营商编码信息,请参见运营商编码表

req_uri

req_uri函数的说明如下:
  • 如果无pattern参数,则返回请求URI,不包含参数部分。
  • 如果有pattern参数,则针对请求URI进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_uri([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_uri
say(concat('req_uri: ', req_uri()))
if req_uri('/path1/path2') {
    say('req_uri: plain match')
}
if req_uri('re:/path[0-9]/path[0-9]') {
    say('req_uri: regex match')
}
返回值
  • 无pattern参数,返回请求URI。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    /path1/path2?mode=ip
  • 响应:
    req_uri: /path1/path2
    req_uri: plain match
    req_uri: regex match

req_uri_basename

req_uri_basename函数的说明如下:
  • 如果无pattern参数,则返回请求URI中的文件名部分。
  • 如果有pattern参数,则针对请求URI中的文件名部分进行匹配判断。
文件名部分示例如下:
  • 示例1:对于/document_detail/30360.html,文件名部分为30360。
  • 示例2:对于/M604/example_mp4/ZYJY2017BJGL****/lesson-01.mp4,文件名部分为lesson-01。
  • 示例3:对于/tarball/examplefile.tar.bz2,文件名部分为examplefile。
函数的详细信息见下表。
项目 描述
语法 req_uri_basename([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_uri_basename
basename = req_uri_basename()
say(concat('req_uri_basename: ', basename, ' ', len(basename)))
if req_uri_basename('example') {
    say('req_uri_basename: plain match')
}
if req_uri_basename('re:^f.*') {
    say('req_uri_basename: regex match')
}
返回值
  • 无pattern参数,返回请求URI中的文件名部分。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    /path1/path2/example.tar.bz2
  • 响应:
    req_uri_basename: example 3
    req_uri_basename: plain match
    req_uri_basename: regex match

req_uri_ext

req_uri_ext函数的说明如下:
  • 如果无pattern参数,则返回请求URI中的扩展名部分。
  • 如果有pattern参数,则针对请求URI中的扩展名部分进行匹配判断。
扩展名部分示例如下:
  • 示例1:对于/document_detail/30360.html,扩展名部分为.html。
  • 示例2:对于/M604/example_mp4/ZYJY2017BJGL****/lesson-01.mp4,扩展名部分为.mp4。
  • 示例3:对于/tarball/example.tar.bz2,扩展名部分为.tar.bz2。
函数的详细信息见下表。
项目 描述
语法 req_uri_ext([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_uri_ext
ext = req_uri_ext()
say(concat('req_uri_ext: ', ext, ' ', len(ext)))
if req_uri_ext('.tar.bz2') {
    say('req_uri_ext: plain match')
}
if req_uri_ext('re:\.tar\.bz[0-2]') {
    say('req_uri_ext: regex match')
}
返回值
  • 无pattern参数,返回请求URI中的扩展名部分。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    /path1/path2/example.tar.bz2
  • 响应:
    req_uri_ext: .tar.bz2 8
    req_uri_ext: plain match
    req_uri_ext: regex match

req_uri_seg

req_uri_seg函数的说明如下:
  • 使用正斜线(/)对uri进行分隔并返回所有段落。
    • 如果无idx参数,返回所有段落。
    • 如果有idx参数,返回指定索引后的所有段落,包含对应的索引。
  • 段落索引:段落索引从头部递增,依次从左向右。
  • 段落上限:段落上限为128个字符,超出上限的段落会被丢弃。
函数的详细信息见下表。
项目 描述
语法 req_uri_seg([idx])
参数 idx(可选参数):允许指定起始索引。
示例
# req_uri_seg
def echo_each(k, v, u) {
    say(concat(get(u, 'msg'), ' : segs[', k, ']=', v))
}
# fetch all segments
segs = req_uri_seg()
foreach(segs, echo_each, ['msg'='req_uri_seg()'])
# fetch segments from idx 3
segs = req_uri_seg(3)
if get(segs, 3) {
    say(concat('req_uri_seg(3): segs[3]=', get(segs, 3)))
}
if get(segs, 4) {
    say(concat('req_uri_seg(3): segs[4]=', get(segs, 4)))
}
if get(segs, 5) {
    say(concat('req_uri_seg(3): segs[5]=', get(segs, 5)))
}
返回值 返回值为字典类型,包含相应段落。
说明 从返回字典中获取指定索引段落时,必须判断是否为空。

本示例的返回值如下:

  • 请求:
    /path1/path2/path3/path4?mode=req2
  • 响应:
    req_uri_seg() : segs[1]=path1
    req_uri_seg() : segs[2]=path2
    req_uri_seg() : segs[3]=path3
    req_uri_seg() : segs[4]=path4
    req_uri_seg(3): segs[3]=path3
    req_uri_seg(3): segs[4]=path4

req_uri_arg

使用req_uri_arg默认返回指定参数的值,如果有pattern参数,则对指定参数的值进行匹配判断,函数的详细信息见下表。
项目 描述
语法 req_uri_arg(name, [pattern])
参数
  • name:参数名称。

    参数名称中出现的短划线(-),需要使用下划线(_)替代。例如:X-USER-ID对应为x_user_id。

  • pattern:使用该参数进行匹配,支持以下两种模式。
    • 简单匹配:相等判断,默认为简单匹配。
    • 正则匹配:re:前导的正则表达式。
示例
# req_uri_arg
uid = req_uri_arg('uid')
if uid {
    say(concat('found uid ', uid))
} else {
    say('not found uid')
}
uid_chk = req_uri_arg('uid', '058334')
if uid_chk {
    say('check uid ok. plain mode')
} else {
    say('check uid fail. plain mode')
}
uid_chk = req_uri_arg('uid', 're:[0-9]+')
if uid_chk {
    say('check uid ok. regex mode')
} else {
    say('check uid fail. regex mode')
}
返回值
  • 如果无pattern参数
    • 参数存在:返回name指定参数的字符串值。
    • 参数不存在:返回false。
  • 如果有pattern参数
    • 参数存在:进行匹配,返回true,表示匹配成功;返回false,表示匹配失败。
    • 参数不存在:返回false。

本示例的返回值如下:

  • 请求:
    /path1/path2/path3/path4?mode=req4&uid
  • 响应:
    not found uid
    check uid fail. plain mode
    check uid fail. regex mode
  • 请求:
    /path1/path2/path3/path4?mode=req4&uid=
  • 响应:
    found uid
    check uid fail. plain mode
    check uid fail. regex mode
  • 请求:
    /path1/path2/path3/path4?mode=req4&uid=12345
  • 响应:
    found uid 12345
    check uid fail. plain mode
    check uid ok. regex mode

req_uri_query_string

req_uri_query_string函数的说明如下:
  • 如果无pattern参数,则返回请求中的参数部分,不包含问号(?)。
  • 如果有pattern参数,则针对请求中的参数部分进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_uri_query_string([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_uri_query_string
say(concat('req_uri_query_string: ', req_uri_query_string()))
if req_uri_query_string('mode=') {
    say('check uri query string ok. plain mode')
} else {
    say('check uri query string fail. plain mode')
}
if req_uri_query_string('re:mode=[0-9a-z]+') {
    say('check uri query string ok. regex mode')
} else {
    say('check uri query string fail. regex mode')
}
返回值
  • 无pattern参数,返回请求中的参数部分。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    /path1/path2/path3/path4?mode=req5&token=34Deasd#243
  • 响应:
    req_uri_query_string: mode=req5&token=34Deasd
    check uri query string fail. plain mode
    check uri query string ok. regex mode

req_scheme

req_scheme函数的说明如下:
  • 如果无pattern参数,则返回请求scheme。
  • 如果有pattern参数,则针对请求scheme进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_scheme([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_scheme
say(concat('req_scheme: ', req_scheme()))
if req_scheme('https') {
    say('check scheme ok. plain mode')
} else {
    say('check scheme fail. plain mode')
}
if req_scheme('re:https?') {
    say('check scheme ok. regex mode')
} else {
    say('check scheme fail. regex mode')
}
返回值
  • 无pattern参数,返回请求scheme。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    http://xx..
  • 响应:
    req_scheme: http
    check scheme fail. plain mode
    check scheme ok. regex mode

req_method

req_method函数的说明如下:
  • 如果无pattern参数,则返回请求method。
  • 如果有pattern参数,则针对请求method进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_method([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_method
say(concat('req_method: ', req_method()))
if req_method('GET') {
    say('check method ok. plain mode')
} else {
    say('check method fail. plain mode')
}
if req_method('re:(GET|POST)') {
    say('check method ok. regex mode')
} else {
    say('check method fail. regex mode')
}
返回值
  • 无pattern参数,返回请求method。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    POST /xxxx/xxx
  • 响应:
    req_method: POST
    check method fail. plain mode
    check method ok. regex mode

req_host

req_host函数的说明如下:
  • 如果无pattern参数,则返回请求头Host的值。
  • 如果有pattern参数,则针对请求头Host的值进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_host([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_host
say(concat('req_host: ', req_host()))
if req_host('x.y.z.com') {
    say('check host ok. plain mode')
} else {
    say('check host fail. plain mode')
}
if req_host('re:.+\.y\.z\.com') {
    say('check host ok. regex mode')
} else {
    say('check host fail. regex mode')
}
返回值
  • 无pattern参数,返回请求头Host的值。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    Host: x2.y.z.com
  • 响应:
    req_host: x2.y.z.com
    check host fail. plain mode
    check host ok. regex mode

req_user_agent

req_user_agent函数的说明如下:
  • 如果无pattern参数,则返回请求头User-Agent的值。
  • 如果有pattern参数,则针对请求头User-Agent的值进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_user_agent([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_user_agent
say(concat('req_user_agent: ', req_user_agent()))
if req_user_agent('Mozilla') {
    say('check user_agent ok. plain mode')
} else {
    say('check user_agent fail. plain mode')
}
if req_user_agent('re:^Mozilla') {
    say('check user_agent ok. regex mode')
} else {
    say('check user_agent fail. regex mode')
}
返回值
  • 无pattern参数,返回请求头User-Agent的值。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
  • 响应:
    req_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
    check user_agent fail. plain mode
    check user_agent ok. regex mode

req_referer

req_referer函数的说明如下:
  • 如果无pattern参数,则返回请求头Referer的值。
  • 如果有pattern参数,则针对请求头Referer的值进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_referer([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_referer
say(concat('req_referer: ', req_referer()))
if req_referer('https://example.bar.cn/******00003') {
    say('check referer ok. plain mode')
} else {
    say('check referer fail. plain mode')
}
if req_referer('re:https://example\.bar\.cn/\*+[0-9]+') {
    say('check referer ok. regex mode')
} else {
    say('check referer fail. regex mode')
}
返回值
  • 无pattern参数,返回请求头Referer的值。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    Referer: https://example.com/******00003
  • 响应:
    req_referer: https://example.com/******00003
    check referer ok. plain mode
    check referer ok. regex mode

req_cookie

使用req_cookie默认返回指定cookie的值,如果有pattern参数,则对指定cookie的值进行匹配判断,函数的详细信息见下表。
项目 描述
语法 req_cookie(name, [pattern])
参数
  • name:cookie名称。

    cookie名称中出现的短划线(-),需要使用下划线(_)替代。例如:X-USER-ID对应为x_user_id。

  • pattern:使用该参数进行匹配,支持以下两种模式。
    • 简单匹配:相等判断,默认为简单匹配。
    • 正则匹配:re:前导的正则表达式。
示例
# req_cookie
uid = req_cookie('uid')
if uid {
    say(concat('found cookie uid ', uid))
} else {
    say('not found cookie uid')
}
uid_chk = req_cookie('uid', '058334')
if uid_chk {
    say('check cookie uid ok. plain mode')
} else {
    say('check cookie uid fail. plain mode')
}
uid_chk = req_cookie('uid', 're:^[0-9]+')
if uid_chk {
    say('check cookie uid ok. regex mode')
} else {
    say('check cookie uid fail. regex mode')
}
返回值
  • 如果无pattern参数
    • 参数存在:返回name指定cookie的字符串值。
    • 参数不存在:返回false。
  • 如果有pattern参数
    • 参数存在:进行匹配,返回true,表示匹配成功;返回false,表示匹配失败。
    • 参数不存在:返回false。

本示例的返回值如下:

  • 请求:
    Cookie: uid=123456; token=value2
  • 响应:
    found cookie uid 123456
    check cookie uid fail. plain mode
    check cookie uid ok. regex mode

req_first_x_forwarded

req_first_x_forwarded函数的说明如下:
  • 如果无pattern参数,则返回请求头X-Forwarded-For中的第一个地址。
  • 如果有pattern参数,则针对请求头X-Forwarded-For中的第一个地址进行匹配判断。
函数的详细信息见下表。
项目 描述
语法 req_first_x_forwarded_addr([pattern])
参数 pattern:使用该参数进行匹配,支持以下两种模式。
  • 简单匹配:相等判断,默认为简单匹配。
  • 正则匹配:re:前导的正则表达式。
示例
# req_first_x_forwarded
say(concat('req_first_x_forwarded: ', req_first_x_forwarded()))
if req_first_x_forwarded('10.10.10.10') {
    say('check first_x_forwarded ok. plain mode')
} else {
    say('check first_x_forwarded fail. plain mode')
}
if req_first_x_forwarded('re:1.1.1.[0-9]') {
    say('check first_x_forwarded ok. regex mode')
} else {
    say('check first_x_forwarded fail. regex mode')
}
返回值
  • 无pattern参数,返回请求头X-Forwarded-For中的第一个地址。返回值为字符串类型。
  • 有pattern参数,返回true,表示匹配成功;返回false,表示匹配失败。

本示例的返回值如下:

  • 请求:
    X-Forwarded-For: 10.10.10.10, 172.16.0.1, 192.0.2.1
  • 响应:
    req_first_x_forwarded: 10.10.10.10
    check first_x_forwarded ok. plain mode
    check first_x_forwarded ok. regex mode

req_header

使用req_header默认返回指定请求头的值,如果有pattern参数,则对指定请求头的值进行匹配判断。函数的详细信息见下表。
项目 描述
语法 req_header(name, [pattern])
参数
  • name:请求头名称。

    请求头名称中出现的短划线(-),需要使用下划线(_)替代。例如:X-USER-ID对应为x_user_id。

  • pattern:使用该参数进行匹配,支持以下两种模式。
    • 简单匹配:相等判断,默认为简单匹配。
    • 正则匹配:re:前导的正则表达式。
示例
# req_header
uid = req_header('x_uid')
if uid {
    say(concat('found header x-uid ', uid))
} else {
    say('not found header x-uid')
}
uid_chk = req_header('x_uid', 'es developer')
if uid_chk {
    say('check header x-uid ok. plain mode')
} else {
    say('check header x-uid fail. plain mode')
}
uid_chk = req_header('x_uid', 're:es [a-z]+')
if uid_chk {
    say('check header x-uid ok. regex mode')
} else {
    say('check header x-uid fail. regex mode')
}
返回值
  • 如果无pattern参数
    • 参数存在:返回name指定请求头的字符串值。
    • 参数不存在:返回false。
  • 如果有pattern参数
    • 参数存在:进行匹配,返回true,表示匹配成功;返回false,表示匹配失败。
    • 参数不存在:返回false。
本示例的返回值如下:
请求:X-UID: es developer
响应:
found header x-uid es developer
check header x-uid ok. plain mode
check header x-uid ok. regex mode
  • 请求:
    X-Forwarded-For: 10.10.10.10, 172.16.0.1, 192.0.2.1
  • 响应:
    req_first_x_forwarded: 10.10.10.10
    check first_x_forwarded ok. plain mode
    check first_x_forwarded ok. regex mode

req_id

使用req_id获取每个请求唯一的标识(EagleeyeID),用于标识对应的请求。函数的详细信息见下表。
项目 描述
语法 req_id()
参数
示例
# req_id
say(concat('req_id: ', req_id()))
返回值 返回字符串类型的请求ID。本示例的返回值为req_id: 6451c43d15815890089411000e