Todos los productos
Search
Centro de documentos

CDN:Funciones de lógica de solicitud

Última actualización: Sep 03, 2026

Este tema describe la sintaxis, descripción, parámetros y valores de retorno de las funciones de lógica de solicitud. También se incluyen ejemplos de uso para estas funciones.

server_addr

Esta función consulta las direcciones IP de los servidores que reciben la solicitud actual. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisserver_addr()
ParámetroN/A
Ejemplo
s_addr = server_addr()
say(concat('s_addr:', s_addr))
Valor de retornoDevuelve las direcciones IP de los servidores en una cadena.

server_port

Esta función consulta el puerto del servidor que recibe la solicitud actual. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisserver_port()
ParámetroN/A
Ejemplo
s_addr = server_addr()
say(concat('s_addr:', s_addr))
Valor de retornoDevuelve el puerto del servidor que recibe la solicitud actual. Tipo de dato: numérico.

client_addr

Esta función consulta la dirección IP de un cliente. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisclient_addr()
ParámetroN/A
Ejemplo
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))
Valor de retornoDevuelve la dirección IP del cliente especificado en una cadena.

client_port

Esta función consulta el puerto de un cliente. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisclient_port()
ParámetroN/A
Ejemplo
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))
Valor de retornoDevuelve el puerto del cliente. Tipo de dato: numérico.

client_region

Esta función consulta el código de división administrativa de un cliente. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisclient_region()
ParámetroN/A
Ejemplo
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))
}
Valor de retornoDevuelve el código de división administrativa del cliente especificado en una cadena. Para obtener más información sobre los códigos de división administrativa, consulte Administrative division codes.

client_city

Esta función consulta el código de ciudad de un cliente. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisclient_city()
ParámetroN/A
Ejemplo
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))
}
Valor de retornoDevuelve el código de ciudad del cliente especificado en una cadena. Para obtener más información sobre los códigos de ciudad, consulte 城市编码表.

client_isp

Esta función consulta el código del proveedor de servicios de Internet (ISP) de un cliente. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisclient_isp()
ParámetroN/A
Ejemplo
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))
}
Valor de retornoDevuelve el código de ISP del cliente especificado en una cadena. Para obtener más información sobre los códigos de ISP, consulte ISP codes.

ip_region

Esta función consulta el código de división administrativa de la ciudad o provincia a la que pertenece una dirección IP específica. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisip_region(ipaddr)
Parámetroipaddr: especifica una dirección IP en notación decimal con puntos.
Ejemplo
c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.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))
}
Valor de retornoDevuelve el código de división administrativa de la ciudad o provincia a la que pertenece la dirección IP especificada en una cadena.Para obtener más información sobre los códigos de división administrativa, consulte Administrative division codes.

ip_city

Consulta el código de ciudad de una dirección IP específica. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisip_city(ipaddr)
Parámetroipaddr: especifica una dirección IP en notación decimal con puntos.
Ejemplo
c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.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))
}
Valor de retornoDevuelve el código de división administrativa del cliente especificado en una cadena. Para obtener más información sobre los códigos de ciudad, consulte 城市编码表.

ip_isp

Esta función consulta el código de ISP de una dirección IP específica. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisip_isp(ipaddr)
Parámetroipaddr: especifica una dirección IP en notación decimal con puntos.
Ejemplo
c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.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))
}
Valor de retornoDevuelve el código de ISP de la dirección IP especificada en una cadena. Para obtener más información sobre los códigos de ISP, consulte ISP codes.

req_uri

Notas sobre esta función:

  • Si el parámetro pattern no se incluye en la solicitud, se devuelve la URI de la solicitud sin los parámetros.

  • Si el parámetro pattern se incluye en la solicitud, la URI de la solicitud se compara con las condiciones de coincidencia.

Las siguientes tablas describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_uri([pattern])
Parámetropattern: se compara con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor de retorno
  • Si el parámetro pattern no se incluye en la solicitud, se devuelve la URI de la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no hay ninguna condición coincidente, se devuelve un valor false.
Ejemplos de valores de retorno:
Request: /path1/path2?mode=ip   
Response:
req_uri: /path1/path2
req_uri: plain match
req_uri: regex match

req_uri_basename

Notas sobre esta función:

  • Devuelve el nombre del archivo en la URI de la solicitud si el parámetro pattern no se incluye en la solicitud.

  • Compara el nombre del archivo en la URI de la solicitud con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

Ejemplos de nombres de archivo:

  • Ejemplo 1: Para /document_detail/30360.html, el nombre del archivo es 30360.

  • Ejemplo 2: Para /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4, el nombre del archivo es 2-1_g.

  • Ejemplo 3: Para /tarball/foo.tar.bz2, el nombre del archivo es foo.

La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisreq_uri_basename([pattern])
Parámetropattern: se compara con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# req_uri_basename
basename = req_uri_basename()
say(concat('req_uri_basename: ', basename, ' ', len(basename)))
if req_uri_basename('foo') {
    say('req_uri_basename: plain match')
}
if req_uri_basename('re:^f.*') {
    say('req_uri_basename: regex match')
}
Valor de retorno
  • Devuelve el nombre del archivo en la URI de la solicitud si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no hay ninguna condición coincidente, se devuelve un valor false.
Ejemplos de valores de retorno:
Request: /path1/path2/foo.tar.bz2
Response:
req_uri_basename: foo 3
req_uri_basename: plain match
req_uri_basename: regex match

req_uri_ext

Notas sobre esta función:

  • Devuelve la extensión en la URI de la solicitud si el parámetro pattern no se incluye en la solicitud.

  • Compara la extensión en la URI de la solicitud con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

Ejemplos de extensiones:

  • Ejemplo 1: Para /document_detail/30360.html, la extensión es .html.

  • Ejemplo 2: Para /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4, la extensión es .mp4.

  • Ejemplo 3: Para /tarball/foo.tar.bz2, la extensión es .tar.bz2.

La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisreq_uri_ext([pattern])
Parámetropattern: se compara con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor de retorno
  • Devuelve la extensión en la URI de la solicitud si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no hay ninguna condición coincidente, se devuelve un valor false.
Ejemplos de valores de retorno:
Request: /path1/path2/foo.tar.bz2
Response:
req_uri_ext: .tar.bz2 8
req_uri_ext: plain match
req_uri_ext: regex match

req_uri_seg

Notas sobre esta función:

  • En los parámetros de respuesta, los segmentos se separan con barras diagonales (/).

    • Devuelve todos los segmentos si el parámetro idx no se incluye en la solicitud.

    • Devuelve los segmentos (incluido el índice) que siguen al índice especificado si el parámetro idx se incluye en la solicitud.

  • Índices de párrafos: el índice comienza en 1 y aumenta desde el índice más a la izquierda cuando se agregan más párrafos.

  • Límite de párrafo: un párrafo puede contener hasta 128 caracteres. Los caracteres que excedan este límite se descartan.

La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisreq_uri_seg([idx])
Parámetroidx: especifica el índice inicial. Este parámetro es opcional.
Ejemplo
# 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)))
}
Valor de retornoTipo de dato: diccionario. Se incluyen los párrafos correspondientes.
Nota Cuando la función recupera el párrafo del diccionario devuelto según el índice especificado, comprueba si el párrafo está vacío.
Ejemplos de valores de retorno:
Request: /path1/path2/path3/path4?mode=req2
Response:
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

Esta función consulta el valor de un parámetro específico. Si el parámetro pattern se incluye en la solicitud, el valor del parámetro especificado se compara con las condiciones de coincidencia. La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisreq_uri_arg(name, [pattern])
Parámetro
  • name: el nombre del parámetro.
  • pattern: se compara con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
    • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
    • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor de retorno
  • Si el parámetro pattern no se incluye en la solicitud
    • El parámetro especificado existe: devuelve el valor del parámetro especificado por el parámetro name en una cadena.
    • El parámetro especificado no existe: devuelve un valor false.
  • Si el parámetro pattern se incluye en la solicitud
    • El parámetro especificado existe: devuelve un valor true si el valor coincide con las condiciones de coincidencia. De lo contrario, se devuelve un valor false.
    • El parámetro especificado no existe: devuelve un valor false.
Ejemplos de valores de retorno:
Request: /path1/path2/path3/path4?mode=req4&uid
Response:
not found uid
check uid fail. plain mode
check uid fail. regex mode

Request: /path1/path2/path3/path4?mode=req4&uid=
Response:
found uid
check uid fail. plain mode
check uid fail. regex mode

Request: /path1/path2/path3/path4?mode=req4&uid=12345
Response:
found uid 12345
check uid fail. plain mode
check uid ok. regex mode

req_uri_query_string

Notas sobre esta función:

  • Si el parámetro pattern no se incluye en la solicitud, se devuelven los parámetros de la solicitud sin el signo de interrogación (?).

  • Si el parámetro pattern se incluye en la solicitud, los parámetros de las solicitudes se comparan con las condiciones de coincidencia.

La siguiente tabla describe los detalles de esta función.

ElementoDescripción
Sintaxisreq_uri_query_string([pattern])
Parámetropattern: se compara con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor de retorno
  • Devuelve los parámetros de la solicitud si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no hay ninguna condición coincidente, se devuelve un valor false.
Ejemplos de valores de retorno:
Request: /path1/path2/path3/path4?mode=req5&token=34Deasd#243
Response:
req_uri_query_string: mode=req5&token=34Deasd
check uri query string fail. plain mode
check uri query string ok. regex mode

req_scheme

Notas sobre esta función:

  • Devuelve el esquema de la solicitud si el parámetro pattern no se incluye en la solicitud.

  • Compara el esquema de la solicitud con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_scheme([pattern])
Parámetropattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor devuelto
  • Devuelve el esquema de la solicitud si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no se cumple ninguna condición, se devuelve un valor false.
En este ejemplo, se devuelven los siguientes valores:
Request: http://xx..
req_scheme: http
check scheme fail. plain mode
check scheme ok. regex mode

req_method

Notas sobre esta función:

  • Devuelve el método de la solicitud si el parámetro pattern no se incluye en la solicitud.

  • Compara el método de la solicitud con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_method([pattern])
Parámetropattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor devuelto
  • Devuelve el método de la solicitud si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no se cumple ninguna condición, se devuelve un valor false.
Valores devueltos de ejemplo:
Request: POST /xxxx/xxx
Response:
req_method: POST
check method fail. plain mode
check method ok. regex mode

req_host

Notas sobre esta función:

  • Devuelve el valor del encabezado de solicitud Host si el parámetro pattern no se incluye en la solicitud.

  • Compara el valor del encabezado de solicitud Host con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_host([pattern])
Parámetropattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# req_host
say(concat('req_host: ', req_host()))
if req_host('image.developer.aliyundoc.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')
}
Valor devuelto
  • Devuelve el valor del encabezado de solicitud Host si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no se cumple ninguna condición, se devuelve un valor false.
Valores devueltos de ejemplo:
Request: Host: video.developer.aliyundoc.com
Response:
req_host: video.developer.aliyundoc.com
check host fail. plain mode
check host ok. regex mode

req_user_agent

Notas sobre esta función:

  • Devuelve el valor del encabezado de solicitud User-Agent si el parámetro pattern no se incluye en la solicitud.

  • Compara el valor del encabezado de solicitud User-Agent con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_user_agent([pattern])
Parámetropattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor devuelto
  • Devuelve el valor del encabezado de solicitud User-Agent si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no se cumple ninguna condición, se devuelve un valor false.
Valores devueltos de ejemplo:
ua: specifies user agents. Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Response:
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

Notas sobre esta función:

  • Devuelve el valor del encabezado de solicitud Referer si el parámetro pattern no se incluye en la solicitud.

  • Compara el valor del encabezado de solicitud Referer con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_referer([pattern])
Parámetropattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# req_referer
say(concat('req_referer: ', req_referer()))
if req_referer('https://example.aliyundoc.com/******00003') {
    say('check referer ok. plain mode')
} else {
    say('check referer fail. plain mode')
}
if req_referer('re:https://foo\.bar\.cn/\*+[0-9]+') {
    say('check referer ok. regex mode')
} else {
    say('check referer fail. regex mode')
}
Valor devuelto
  • Devuelve el valor del encabezado de solicitud Referer si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no se cumple ninguna condición, se devuelve un valor false.
Valores devueltos de ejemplo:
Request: Referer: https://example.aliyundoc.com/******00003
Response:
req_referer: https://example.aliyundoc.com/******00003
check referer ok. plain mode
check referer ok. regex mode

req_cookie

Esta función consulta el valor de una cookie específica. Si el parámetro pattern se incluye en la solicitud, el valor de la cookie especificada se compara con las condiciones de coincidencia. A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_cookie(name, [pattern])
Parámetro
  • name: especifica el nombre de la cookie.
  • pattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
    • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
    • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor devuelto
  • Si el parámetro pattern no se incluye en la solicitud
    • La cookie especificada existe: devuelve el valor de la cookie indicada por el parámetro name en formato de cadena.
    • El parámetro especificado no existe: devuelve un valor false.
  • Si el parámetro pattern se incluye en la solicitud
    • El parámetro especificado existe: devuelve un valor true si el valor coincide con las condiciones de coincidencia. De lo contrario, se devuelve un valor false.
    • El parámetro especificado no existe: devuelve un valor false.
Valores devueltos de ejemplo:
Request: Cookie: uid=123456; token=value2
Response:
found cookie uid 123456
check cookie uid fail. plain mode
check cookie uid ok. regex mode

req_first_x_forwarded

Notas sobre esta función:

  • Devuelve la primera dirección del encabezado de solicitud X-Forwarded-For si el parámetro pattern no se incluye en la solicitud.

  • Compara la primera dirección del encabezado de solicitud X-Forwarded-For con las condiciones de coincidencia si el parámetro pattern se incluye en la solicitud.

A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_first_x_forwarded_addr([pattern])
Parámetropattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
  • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
  • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# req_first_x_forwarded
say(concat('req_first_x_forwarded: ', req_first_x_forwarded()))
if req_first_x_forwarded('1.1.1.1') {
    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')
}
Valor devuelto
  • Devuelve la primera dirección del encabezado de solicitud X-Forwarded-For si el parámetro pattern no se incluye en la solicitud. Tipo de dato: cadena.
  • Si el parámetro pattern se incluye en la solicitud y esta coincide con las condiciones de coincidencia, se devuelve un valor true. Si no se cumple ninguna condición, se devuelve un valor false.
Valores devueltos de ejemplo:
Request: X-Forwarded-For: 1.1.1.1, 10.10.10.10, 172.16.0.1
Response:
req_first_x_forwarded: 1.1.1.1
check first_x_forwarded ok. plain mode
check first_x_forwarded ok. regex mode

req_header

Esta función consulta el valor de un encabezado de solicitud específico. Si el parámetro pattern se incluye en la solicitud, el valor del encabezado de solicitud especificado se compara con las condiciones de coincidencia. A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_header(name, [pattern])
Parámetro
  • name: especifica el nombre del encabezado de solicitud.

    Reemplace los guiones (-) del encabezado de solicitud con guiones bajos (_). Por ejemplo, X-USER-ID debe cambiarse a x_user_id.

  • pattern: comparado con las condiciones de coincidencia. Se admiten los siguientes tipos de coincidencia:
    • Algoritmo de fuerza bruta: compara los valores mediante un algoritmo de fuerza bruta. Este es el tipo de coincidencia predeterminado.
    • Expresión regular: compara los valores mediante una expresión regular precedida por re:.
Ejemplo
# 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')
}
Valor devuelto
  • Si el parámetro pattern no se incluye en la solicitud
    • El encabezado de solicitud especificado existe: devuelve el valor del encabezado de solicitud indicado por el parámetro name en formato de cadena.
    • El parámetro especificado no existe: devuelve un valor false.
  • Si el parámetro pattern se incluye en la solicitud
    • El parámetro especificado existe: devuelve un valor true si el valor coincide con las condiciones de coincidencia. De lo contrario, se devuelve un valor false.
    • El parámetro especificado no existe: devuelve un valor false.
Valores devueltos de ejemplo:
Request: X-UID: es developer
Response:
found header x-uid es developer
check header x-uid ok. plain mode
check header x-uid ok. regex mode

req_id

Esta función consulta el ID de Eagle Eye de una solicitud. Cada ID de Eagle Eye identifica de forma única una solicitud. A continuación, se describen los detalles de esta función.

ElementoDescripción
Sintaxisreq_id()
ParámetroN/A
Ejemplo
# req_id
say(concat('req_id: ', req_id()))
Valor devueltoDevuelve el ID de la solicitud en formato de cadena. El valor devuelto en este ejemplo es req_id: 6451c43d15815890089411000e.

Códigos de división administrativa