Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Lógica de requisição

Última atualização: Aug 26, 2026

As funções de lógica de requisição retornam atributos da requisição atual, como endereços do servidor e do cliente, localização do cliente, URI da requisição e cabeçalhos. As seções a seguir descrevem a sintaxe, os parâmetros, exemplos de código e o valor de retorno de cada função.

Índice de funções

A tabela a seguir lista as funções de lógica de requisição por categoria, o valor retornado por cada função e os parâmetros aceitos.

Categoria

Função

Retorno

Parâmetros

Atributos do servidor

server_addr

Endereço do servidor que recebeu a requisição atual.

Nenhum

Atributos do servidor

server_port

Porta do servidor que recebeu a requisição atual.

Nenhum

Atributos do cliente

client_addr

Endereço IP do cliente.

Nenhum

Atributos do cliente

client_port

Porta do cliente.

Nenhum

Geolocalização do cliente

client_country

Código do país ou região do endereço IP do cliente.

Nenhum

Geolocalização do cliente

client_region

Código da divisão administrativa (província ou cidade) do endereço IP do cliente.

Nenhum

Geolocalização do cliente

client_city

Código da cidade do endereço IP do cliente.

Nenhum

Geolocalização do cliente

client_isp

Código do ISP do endereço IP do cliente.

Nenhum

Geolocalização de um endereço IP específico

ip_country

Código do país ou região do endereço IP especificado.

ipaddr

Geolocalização de um endereço IP específico

ip_region

Código da divisão administrativa (província ou cidade) do endereço IP especificado.

ipaddr

Geolocalização de um endereço IP específico

ip_city

Código da cidade do endereço IP especificado.

ipaddr

Geolocalização de um endereço IP específico

ip_isp

Código do ISP do endereço IP especificado.

ipaddr

Análise de URI

req_uri

URI da requisição, excluindo os parâmetros de consulta.

[pattern]

Análise de URI

req_uri_basename

Nome do arquivo na URI da requisição.

[pattern]

Análise de URI

req_uri_ext

Extensão do arquivo na URI da requisição.

[pattern]

Análise de URI

req_uri_seg

Segmentos da URI da requisição, divididos por barras (/).

[idx]

Análise de URI

req_uri_arg

Valor de um parâmetro de URI específico.

name, [pattern]

Análise de URI

req_uri_query_string

Parâmetros de consulta da requisição, excluindo o ponto de interrogação (?).

[pattern]

Linha de requisição e cabeçalhos

req_scheme

Esquema da requisição.

[pattern]

Linha de requisição e cabeçalhos

req_method

Método da requisição.

[pattern]

Linha de requisição e cabeçalhos

req_host

Valor do cabeçalho de requisição Host.

[pattern]

Linha de requisição e cabeçalhos

req_user_agent

Valor do cabeçalho de requisição User-Agent.

[pattern]

Linha de requisição e cabeçalhos

req_referer

Valor do cabeçalho de requisição Referer.

[pattern]

Linha de requisição e cabeçalhos

req_cookie

Valor de um cookie específico.

name, [pattern]

Linha de requisição e cabeçalhos

req_first_x_forwarded

Primeiro endereço no cabeçalho de requisição X-Forwarded-For.

[pattern]

Linha de requisição e cabeçalhos

req_header

Valor de um cabeçalho de requisição específico.

name, [pattern]

Identificador da requisição

req_id

ID da requisição atual.

Nenhum

Considerações

A limitação a seguir se aplica a nove funções neste tópico: client_addr, client_country, client_region, client_city, client_isp, ip_country, ip_region, ip_city e ip_isp.

Importante

Se políticas de NAT de rede do provedor de service de Internet (ISP) modificarem o endereço do cliente, ou se o endereço IP não estiver na biblioteca de endereços IP da CDN, o valor de retorno real dessas funções será afetado. Use essas funções com cautela.

Correspondência de padrões

Funções cuja sintaxe inclui [pattern] aceitam um parâmetro opcional pattern. Ao especificar pattern, a função compara o valor lido com pattern e retorna um resultado booleano em vez do próprio valor.

pattern oferece suporte a dois modos de correspondência:

  • Correspondência exata — Compara o valor com pattern quanto à igualdade. Este é o modo padrão. Use-o para verificar um único valor fixo.

  • Correspondência por expressão regular — Usa pattern como uma expressão regular, prefixada com re:. Use este modo para corresponder a um conjunto de valores.

Atributos do servidor

server_addr e server_port leem atributos do servidor que recebeu a requisição atual.

server_addr

server_addr lê o endereço do servidor que recebeu a requisição atual.

  • Sintaxe — server_addr()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna o endereço do servidor. Tipo de dados: string.

O exemplo a seguir mostra como usar server_addr:

s_addr = server_addr()
say(concat('s_addr:', s_addr))

server_port

server_port lê a porta do servidor que recebeu a requisição atual.

  • Sintaxe — server_port()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna a porta do servidor. Tipo de dados: numérico.

O exemplo a seguir mostra como usar server_port:

s_port = server_port()
say(concat('s_port:', tostring(s_port)))

Atributos do cliente

client_addr e client_port leem o endereço e a porta do cliente que enviou a requisição atual.

client_addr

client_addr lê o endereço IP do cliente. Para ler o primeiro endereço no cabeçalho de requisição X-Forwarded-For, use req_first_x_forwarded.

  • Sintaxe — client_addr()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna o endereço IP do cliente. Tipo de dados: string. Para uma limitação de precisão aplicável a client_addr, consulte Considerations.

O exemplo a seguir mostra como usar client_addr:

c_addr = client_addr()
say(concat('c_addr:', c_addr))

client_port

client_port lê a porta do cliente.

  • Sintaxe — client_port()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna a porta do cliente. Tipo de dados: numérico.

O exemplo a seguir mostra como usar client_port:

c_port = client_port()
say(concat('c_port:', tostring(c_port)))

Geolocalização do cliente

As funções de geolocalização client_* leem os códigos de localização do cliente que enviou a requisição atual. Para resolver um endereço IP fornecido por você, utilize as funções ip_*.

Para uma limitação de precisão aplicável a essas funções, consulte Considerations.

client_country

client_country lê o código do país ou região do endereço IP do cliente.

  • Sintaxe — client_country()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna o código do país ou região do endereço IP do cliente. Tipo de dados: string. Para códigos de países e regiões, consulte Country codes.

O exemplo a seguir mostra como usar client_country:

c_country = client_country()
if c_country {
    say(concat('client_country:', c_country))
}

client_region

client_region lê o código da divisão administrativa (província ou cidade) do endereço IP do cliente.

  • Sintaxe — client_region()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna o código da divisão administrativa (província ou cidade) do endereço IP do cliente. Tipo de dados: string. Para códigos de divisões administrativas, consulte Administrative division codes.

O exemplo a seguir mostra como usar client_region:

c_region = client_region()
if c_region {
    say(concat('client_region:', c_region))
}

client_isp

client_isp lê o código do ISP do endereço IP do cliente.

  • Sintaxe — client_isp()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna o código do ISP do endereço IP do cliente. Tipo de dados: string. Para códigos de ISP, consulte ISP codes.

O exemplo a seguir mostra como usar client_isp:

c_isp = client_isp()
if c_isp {
    say(concat('client_isp:', c_isp))
}

Geolocalização de um endereço IP específico

As funções ip_* leem os códigos de localização do endereço IP passado em ipaddr. Para resolver o cliente que enviou a requisição atual, utilize as funções de geolocalização client_*.

Para uma limitação de precisão aplicável a essas funções, consulte Considerations.

ip_region

ip_region lê o código da divisão administrativa (província ou cidade) de um endereço IP especificado.

  • Sintaxe — ip_region(ipaddr)

  • Parâmetros — ipaddr: uma string de endereço IP em notação decimal pontuada.

  • Valor de retorno — Retorna o código da divisão administrativa (província ou cidade) do endereço IP especificado. Tipo de dados: string. Para códigos de divisões administrativas, consulte Administrative division codes.

O exemplo a seguir mostra como usar ip_region:

c_region = ip_region('192.168.0.1')
if c_region {
    say(concat('ip_region:', c_region))
}

ip_isp

ip_isp lê o código do ISP de um endereço IP especificado.

  • Sintaxe — ip_isp(ipaddr)

  • Parâmetros — ipaddr: uma string de endereço IP em notação decimal pontuada.

  • Valor de retorno — Retorna o código do ISP do endereço IP especificado. Tipo de dados: string. Para códigos de ISP, consulte ISP codes.

O exemplo a seguir mostra como usar ip_isp:

c_isp = ip_isp('192.168.0.1')
if c_isp {
    say(concat('ip_isp:', c_isp))
}

Análise de URI

As funções a seguir leem partes individuais da URI da requisição, como o caminho, o nome do arquivo, a extensão do arquivo, os segmentos de caminho, um parâmetro de URI e a string de consulta.

req_uri

req_uri lê a URI da requisição, excluindo os parâmetros de consulta.

  • Sintaxe — req_uri([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna a URI da requisição. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_uri:

# 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')
}

Este exemplo retorna o seguinte resultado:

Request: /path1/path2?mode=ip
Response:
req_uri: /path1/path2
req_uri: plain match
req_uri: regex match

req_uri_basename

req_uri_basename lê o nome do arquivo na URI da requisição.

  • Sintaxe — req_uri_basename([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna o nome do arquivo na URI da requisição. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

Os exemplos a seguir mostram qual parte da URI da requisição corresponde ao nome do arquivo:

  • Para /document_detail/30360.html, o nome do arquivo é 30360.

  • Para /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4, o nome do arquivo é 2-1_g.

  • Para /tarball/foo.tar.bz2, o nome do arquivo é foo.

O exemplo a seguir mostra como usar req_uri_basename:

# 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')
}

Este exemplo retorna o seguinte resultado:

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

req_uri_ext lê a extensão do arquivo na URI da requisição.

  • Sintaxe — req_uri_ext([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna a extensão do arquivo na URI da requisição. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

Os exemplos a seguir mostram qual parte da URI da requisição corresponde à extensão do arquivo:

  • Para /document_detail/30360.html, a extensão do arquivo é .html.

  • Para /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4, a extensão do arquivo é .mp4.

  • Para /tarball/foo.tar.bz2, a extensão do arquivo é .tar.bz2.

O exemplo a seguir mostra como usar req_uri_ext:

# 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')
}

Este exemplo retorna o seguinte resultado:

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

req_uri_seg divide a URI da requisição em segmentos usando barras (/).

Importante

Um segmento pode conter até 128 caracteres. O conteúdo que exceder esse limite será descartado.

  • Sintaxe — req_uri_seg([idx])

  • Parâmetros — idx (opcional): especifique o índice inicial. Os índices dos segmentos começam em 1 e aumentam a partir do início da URI da requisição, da esquerda para a direita.

  • Valor de retorno

    • Sem idx: retorna um dicionário contendo todos os segmentos. Tipo de dados: dicionário.

    • Com idx: retorna um dicionário contendo os segmentos a partir do índice especificado, incluindo o segmento nesse índice. Tipo de dados: dicionário.

Nota

Ao obter um segmento em um índice específico do dicionário retornado, verifique se o segmento está vazio.

O exemplo a seguir mostra como usar req_uri_seg:

# 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)))
}

Este exemplo retorna o seguinte resultado:

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

req_uri_arg lê o valor de um parâmetro de URI específico.

  • Sintaxe — req_uri_arg(name, [pattern])

  • Parâmetros

    • name: o nome do parâmetro.

    • pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern:

      • O parâmetro existe: retorna o valor em string do parâmetro especificado por name. Tipo de dados: string.

      • O parâmetro não existe: retorna false.

    • Com pattern:

      • O parâmetro existe: executa a correspondência e retorna true se for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

      • O parâmetro não existe: retorna false.

O exemplo a seguir mostra como usar req_uri_arg:

# 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')
}

Este exemplo retorna os seguintes resultados:

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

req_uri_query_string lê os parâmetros de consulta da requisição, excluindo o ponto de interrogação (?).

  • Sintaxe — req_uri_query_string([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna os parâmetros de consulta da requisição. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_uri_query_string:

# 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')
}

Este exemplo retorna o seguinte resultado:

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

Linha de requisição e cabeçalhos

As funções a seguir leem os atributos da linha de requisição, os valores dos cabeçalhos de requisição e os valores dos cookies da requisição atual.

req_scheme

req_scheme lê o esquema da requisição.

  • Sintaxe — req_scheme([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna o esquema da requisição. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_scheme:

# 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')
}

Este exemplo retorna o seguinte resultado:

Request: http://xx..
Response:
req_scheme: http
check scheme fail. plain mode
check scheme ok. regex mode

req_method

req_method lê o método da requisição.

  • Sintaxe — req_method([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna o método da requisição. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_method:

# 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')
}

Este exemplo retorna o seguinte resultado:

Request: POST /xxxx/xxx
Response:
req_method: POST
check method fail. plain mode
check method ok. regex mode

req_host

req_host lê o valor do cabeçalho de requisição Host.

  • Sintaxe — req_host([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna o valor do cabeçalho de requisição Host. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_host:

# 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')
}

Este exemplo retorna o seguinte resultado:

Request: Host: image.developer.aliyundoc.com
Response:
req_host: image.developer.aliyundoc.com
check host fail. plain mode
check host ok. regex mode

req_user_agent

req_user_agent lê o valor do cabeçalho de requisição User-Agent.

  • Sintaxe — req_user_agent([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna o valor do cabeçalho de requisição User-Agent. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_user_agent:

# 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')
}

Este exemplo retorna o seguinte resultado:

Request: User-Agent: 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

req_referer lê o valor do cabeçalho de requisição Referer.

  • Sintaxe — req_referer([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna o valor do cabeçalho de requisição Referer. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_referer:

# 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')
}

Este exemplo retorna o seguinte resultado:

Request: Referer: https://example.aliyundoc.com/******00003
Response:
req_referer: https://example.aliyundoc.com/******00003
check referer ok. plain mode
check referer fail. regex mode

req_first_x_forwarded

req_first_x_forwarded lê o primeiro endereço no cabeçalho de requisição X-Forwarded-For. Para ler o endereço IP do cliente, use client_addr.

  • Sintaxe — req_first_x_forwarded([pattern])

  • Parâmetros — pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern: retorna o primeiro endereço no cabeçalho de requisição X-Forwarded-For. Tipo de dados: string.

    • Com pattern: retorna true se a correspondência for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

O exemplo a seguir mostra como usar req_first_x_forwarded:

# req_first_x_forwarded
say(concat('req_first_x_forwarded: ', req_first_x_forwarded()))
if req_first_x_forwarded('203.0.113.1') {
    say('check first_x_forwarded ok. plain mode')
} else {
    say('check first_x_forwarded fail. plain mode')
}
if req_first_x_forwarded('re:203.0.113.[0-9]') {
    say('check first_x_forwarded ok. regex mode')
} else {
    say('check first_x_forwarded fail. regex mode')
}

Este exemplo retorna o seguinte resultado:

Request: X-Forwarded-For: 203.0.113.1, 10.10.10.10, 172.16.0.1
Response:
req_first_x_forwarded: 203.0.113.1
check first_x_forwarded ok. plain mode
check first_x_forwarded ok. regex mode

req_header

req_header lê o valor de um cabeçalho de requisição específico.

  • Sintaxe — req_header(name, [pattern])

  • Parâmetros

    • name: o nome do cabeçalho de requisição. Substitua cada hífen (-) no nome do cabeçalho de requisição por um sublinhado (_). Por exemplo, X-USER-ID torna-se x_user_id.

    • pattern: o padrão usado para correspondência. Para os modos de correspondência suportados, consulte Pattern matching.

  • Valor de retorno

    • Sem pattern:

      • O cabeçalho de requisição existe: retorna o valor em string do cabeçalho de requisição especificado por name. Tipo de dados: string.

      • O cabeçalho de requisição não existe: retorna false.

    • Com pattern:

      • O cabeçalho de requisição existe: executa a correspondência e retorna true se for bem-sucedida, ou false se falhar. Tipo de dados: booleano.

      • O cabeçalho de requisição não existe: retorna false.

O exemplo a seguir mostra como usar req_header:

# 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')
}

Este exemplo retorna o seguinte resultado:

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

Identificador da requisição

A função a seguir lê o ID da requisição atual.

req_id

req_id lê o ID da requisição, que é o identificador exclusivo de cada requisição.

  • Sintaxe — req_id()

  • Parâmetros — Nenhum.

  • Valor de retorno — Retorna o ID da requisição. Tipo de dados: string.

O exemplo a seguir mostra como usar req_id:

# req_id
say(concat('req_id: ', req_id()))

Este exemplo retorna req_id: 6451c43d15815890089411000e.