Tous les produits
Search
Centre de documentation

Edge Security Acceleration:Fonctions de traitement des requêtes

Dernière mise à jour :Aug 12, 2026

Cette rubrique décrit la syntaxe, les paramètres et les valeurs de retour des fonctions de traitement des requêtes. Elle fournit également des exemples d'utilisation pour chacune d'elles.

add_req_header

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxeadd_req_header(name, value [, append])
DescriptionAjoute un en-tête de requête avant le transfert vers le serveur d'origine.
Paramètre
  • name : nom de l'en-tête de requête à ajouter. Type de données : chaîne.
  • value : valeur de l'en-tête de requête à ajouter. Type de données : chaîne.
  • append : indique s'il faut ajouter la value spécifiée à un en-tête existant portant le même nom. Valeurs valides : true et false. Valeur par défaut : false. Type de données : booléen. Si ce paramètre est défini sur false, la valeur spécifiée remplace celle de l'en-tête de requête existant.
Valeur de retourRenvoie true par défaut et false si l'en-tête de requête spécifié n'est pas valide.
Exemple
add_req_header('USER-DEFINED-REQ-1', '1')
add_req_header('USER-DEFINED-REQ-1', 'x', true)
add_req_header('USER-DEFINED-REQ-2', '2')
del_req_header('USER-DEFINED-REQ-2')

Note: The following request headers are added:
USER-DEFINED-REQ-1: 1
USER-DEFINED-REQ-1: x

The USER-DEFINED-REQ-2 header is added and then deleted. Therefore, the USER-DEFINED-REQ-2 request header is not included in requests that are redirected to the origin server.

del_req_header

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxedel_req_header(name)
DescriptionSupprime un en-tête de requête avant le transfert vers le serveur d'origine.
Paramètrename : nom de l'en-tête de requête à supprimer. Type de données : chaîne.
Valeur de retourRenvoie true par défaut et false si l'en-tête de requête spécifié n'est pas valide.
Exemple
add_req_header('USER-DEFINED-REQ-1', '1')
add_req_header('USER-DEFINED-REQ-1', 'x', true)
add_req_header('USER-DEFINED-REQ-2', '2')
del_req_header('USER-DEFINED-REQ-2')

Note: The following request headers are added:
USER-DEFINED-REQ-1: 1
USER-DEFINED-REQ-1: x

The USER-DEFINED-REQ-2 header is added and then deleted. Therefore, the USER-DEFINED-REQ-2 request header is not included in requests that are redirected to the origin server.

add_rsp_header

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxeadd_rsp_header(name, value [, append])
DescriptionAjoute un en-tête de réponse.
Paramètre
  • name : nom de l'en-tête de réponse à ajouter. Type de données : chaîne.
  • value : valeur de l'en-tête de réponse à ajouter. Type de données : chaîne.
    Vous pouvez utiliser l'une des expressions suivantes pour le paramètre value afin d'activer le remplacement dynamique de la valeur lors de la phase de réponse :
    • ${x} : remplacé par la valeur de ngx.var.x.
    • @{y} : remplacé par la valeur de l'en-tête de réponse y.
  • append : indique s'il faut ajouter la value spécifiée à un en-tête de réponse existant portant le même nom. Valeurs valides : true et false. Valeur par défaut : false. Type de données : booléen. Si ce paramètre est défini sur false, la valeur spécifiée remplace celle de l'en-tête de réponse existant.
Valeur de retourRenvoie true par défaut et false si l'en-tête de réponse spécifié n'est pas valide.
Exemple
add_rsp_header('USER-DEFINED-RSP-1', '1')
add_rsp_header('USER-DEFINED-RSP-1', 'x', true)
add_rsp_header('USER-DEFINED-RSP-2', '2')
del_rsp_header('USER-DEFINED-RSP-2')

Note: The following response headers are added:
USER-DEFINED-RSP-1: 1
USER-DEFINED-RSP-1: x

The USER-DEFINED-RSP-2 header is added and then deleted. Therefore, the USER-DEFINED-RSP-2 header is not included in the responses.

del_rsp_header

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxedel_rsp_header(name)
DescriptionSupprime un en-tête de réponse.
Paramètrename : nom de l'en-tête de réponse à supprimer. Type de données : chaîne.
Valeur de retourRenvoie true par défaut et false si l'en-tête de réponse spécifié n'est pas valide.
Exemple
add_rsp_header('USER-DEFINED-RSP-1', '1')
add_rsp_header('USER-DEFINED-RSP-1', 'x', true)
add_rsp_header('USER-DEFINED-RSP-2', '2')
del_rsp_header('USER-DEFINED-RSP-2')

The following response headers are added:
USER-DEFINED-RSP-1: 1
USER-DEFINED-RSP-1: x

The USER-DEFINED-RSP-2 header is added and then deleted. Therefore, the USER-DEFINED-RSP-2 header is not included in the responses.

encode_args

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxeencode_args(d)
DescriptionConvertit les paires k/v du dictionnaire spécifié par d en une chaîne encodée URI au format k1=v1&k2=v2.
Paramètred : dictionnaire à convertir.
Valeur de retourRenvoie une chaîne encodée URI.
Exemple
my_args = []
set(my_args, 'signature', 'da9dc4b7-87ae-4330-aaaf-e5454e2c2af1')
set(my_args, 'algo', 'private sign1')
my_args_str = encode_args(my_args)
add_rsp_header('X-DSL-ENCODE-ARGS', my_args_str)

to_args = decode_args(my_args_str)
if get(to_args, 'algo') {
    add_rsp_header('X-DSL-DECODE-ARGS-ALGO', get(to_args, 'algo'))
}
if get(to_args, 'signature') {
    add_rsp_header('X-DSL-DECODE-ARGS-SIGN', get(to_args, 'signature'))
}

Output: The following response headers are added:
X-DSL-ENCODE-ARGS: signature=da9dc4b7-87ae-4330-aaaf-e5454e2c2af1&algo=private%20sign1
X-DSL-DECODE-ARGS-ALGO: private sign1
X-DSL-DECODE-ARGS-SIGN: da9dc4b7-87ae-4330-aaaf-e5454e2c2af1

decode_args

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxedecode_args(s)
DescriptionConvertit une chaîne encodée URI au format k1=v1&k2=v2 en une chaîne de type dictionnaire.
Paramètres : chaîne à convertir.
Valeur de retourRenvoie un objet dictionnaire converti à partir de la chaîne spécifiée.
Exemple
my_args = []
set(my_args, 'signature', 'da9dc4b7-87ae-4330-aaaf-e5454e2c2af1')
set(my_args, 'algo', 'private sign1')
my_args_str = encode_args(my_args)
add_rsp_header('X-DSL-ENCODE-ARGS', my_args_str)

to_args = decode_args(my_args_str)
if get(to_args, 'algo') {
    add_rsp_header('X-DSL-DECODE-ARGS-ALGO', get(to_args, 'algo'))
}
if get(to_args, 'signature') {
    add_rsp_header('X-DSL-DECODE-ARGS-SIGN', get(to_args, 'signature'))
}

Output: The following response headers are added:
X-DSL-ENCODE-ARGS: signature=da9dc4b7-87ae-4330-aaaf-e5454e2c2af1&algo=private%20sign1
X-DSL-DECODE-ARGS-ALGO: private sign1
X-DSL-DECODE-ARGS-SIGN: da9dc4b7-87ae-4330-aaaf-e5454e2c2af1

rewrite

ÉlémentDescription
Syntaxerewrite(url, flag, code)
DescriptionRéécrit une URI ou effectue une redirection.
Paramètre
  • url (chaîne) : URL cible de l'opération.
    • Lorsque flag vaut redirect ou break, seul le chemin URI est réécrit. Le paramètre url définit la nouvelle URI cible.
    • Lorsque flag vaut enhance_redirect ou enhance_break, l'URI entière (chemin et paramètres de requête) est remplacée. Le paramètre url spécifie la nouvelle URI cible ainsi que ses paramètres.
  • (chaîne) : mode de réécriture.
    • code : réécrit uniquement le chemin URI et effectue une redirection en conservant les paramètres de requête d'origine. Par défaut, le code d'état HTTP 302 est utilisé. Vous pouvez définir un code différent (301, 303, 307 ou 308) via le paramètre .
    • : réécrit le chemin URI vers l'url spécifiée, tout en conservant les paramètres de requête d'origine.
    • redirect : similaire à redirect, mais modifie l'URI entière, y compris le chemin et les paramètres de requête.
    • break : similaire à break, mais modifie l'URI entière, y compris le chemin et les paramètres de requête.
  • code (nombre, facultatif) : code d'état HTTP à utiliser pour la redirection. Ce paramètre s'applique uniquement lorsque flag vaut redirect ou enhance_redirect.

Valeur de retour
  • truePour une opération de réécriture (, ), la fonction renvoie .
  • Pour une opération de redirection (redirect, enhance_redirect), la fonction interrompt le traitement de la requête en cours et ne renvoie aucune valeur.
Exemple
if and($arg_mode, eq($arg_mode, 'rewrite:enhance_break')) {
  rewrite('/a/example/examplefile.txt?k=v', 'enhance_break')
}
// Rewrites the URI and query parameters for the origin request and cache key to /a/example/examplefile.txt?k=v.

if and($arg_mode, eq($arg_mode, 'rewrite:enhance_redirect')) {
  rewrite('/a/example/examplefile.txt?k=v', 'enhance_redirect')
}
if and($arg_mode, eq($arg_mode, 'rewrite:enhance_redirect_301')) {
  rewrite('/a/example/examplefile.txt?k=v', 'enhance_redirect', 301)
}
// Redirects the client to /a/example/examplefile.txt?k=v with a 302 or 301 HTTP status code.

if and($arg_mode, eq($arg_mode, 'rewrite:break')) {
  rewrite('/a/example/examplefile.txt', 'break')
}
// Rewrites the URI path for the origin request and cache key to /a/example/examplefile.txt, preserving the original query parameters.

if and($arg_mode, eq($arg_mode, 'rewrite:redirect')) {
  rewrite('/a/example/examplefile.txt', 'redirect')
}
if and($arg_mode, eq($arg_mode, 'rewrite:redirect_301')) {
  rewrite('/a/example/examplefile.txt', 'redirect', 301)
}
// Redirects the client to /a/example/examplefile.txt with a 302 or 301 HTTP status code, preserving the original query parameters.

say

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxesay(arg)
DescriptionAffiche un corps de réponse et ajoute un caractère de saut de ligne à la fin de la sortie.
Paramètrearg : contenu du corps de réponse. Type de données : tout type.
Valeur de retourAucune.
Exemple
say('hello')
print('byebye')
print('byebye')

Output:
hello
byebyebyebye

print

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxeprint(arg)
DescriptionAffiche un corps de réponse. Contrairement à la fonction say(), cette fonction n'ajoute pas de saut de ligne à la fin de la sortie.
Paramètrearg : contenu du corps de réponse. Type de données : tout type.
Valeur de retourAucune.
Exemple
say('hello')
print('byebye')
print('byebye')

Output:
hello
byebyebyebye

exit

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxeexit(code [, body])
DescriptionTermine la requête en cours avec le code spécifié. Si le paramètre body est également défini, une réponse contenant le corps de réponse indiqué est renvoyée.
Paramètre
  • code : code d'état HTTP à renvoyer.
  • body : corps de la réponse.
Valeur de retourAucune.
Exemple
  • Exemple 1
    if not($arg_key) {
        exit(403)
    }
    Note: If a request does not include the key parameter, the request is denied and the HTTP 403 status code is returned. 
    
    if not($cookie_user) {
        exit(403, 'not cookie user')
    }
    Note: If a request does not include cookie_user, the request is denied and a response that contains the body "not cookie user" is returned with the HTTP 403 status code.
    
    if not(0) {
        exit(403)
    }
    Note: The not(0) function returns a value of false.
    
    if not(false) {
        exit(403)
    }
    Note: The not(false) function returns a value of true.
  • Exemple 2
    pcs = capture_re($request_uri,'^/([^/]+)/([^/]+)([^?]+)\?(.*)')
        sec1 = get(pcs, 1)
        sec2 = get(pcs, 2)
        sec3 = get(pcs, 3)
        if or(not(sec1), not(sec2), not(sec3)) {
           add_rsp_header('X-TENGINE-ERROR', 'auth failed - missing necessary uri set')
           exit(403)
        }
        digest = md5(concat(sec1, sec3))
        if ne(digest, sec2) {
            add_rsp_header('X-TENGINE-ERROR', 'auth failed - invalid digest')
            exit(403)
        }

get_rsp_header

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxeget_rsp_header(str)
DescriptionRécupère un en-tête de réponse.
Paramètrestr : en-tête de réponse à obtenir. Type de données : chaîne.
Valeur de retourRenvoie l'en-tête de réponse spécifié sous forme de chaîne, nombre, dictionnaire ou booléen.
  • Si l'en-tête de réponse spécifié existe, il est renvoyé. Son type de données est alors dictionnaire ou chaîne.
  • Si l'en-tête de réponse spécifié n'existe pas, la valeur false est renvoyée.
Exemple
ct = get_rsp_header('content-type')
if ct {
    add_rsp_header('origin-content-type', 'is')
} else {
      add_rsp_header('origin-content-type', 'no')
}

add_rsp_cookie

Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxeadd_rsp_cookie(k, v [,properties])
DescriptionDéfinit le cookie de réponse. Chaque appel de cette fonction génère un nouvel en-tête de réponse Set-Cookie.
Paramètre
  • k : nom du cookie.
  • v : valeur du cookie.
  • properties : propriétés du cookie. Ce paramètre est facultatif. Pour plus d'informations, consultez Set-Cookie.
Valeur de retourRenvoie true si le cookie spécifié est défini avec succès, et false en cas d'échec.
Exemple
add_rsp_cookie('user', 'edgescript')

add_rsp_cookie('login_time', tostring(now()), [
    'path' = '/'
])

expires = cookie_time(time())
add_rsp_cookie('psid', 'SDF93745HFSDF2934JKHG', [
    'path' = '/play',
    'domain' = 'foo.com',
    'secure' = true,
    'httponly' = true,
    'expires' = expires,
    'max_age' = 100,
    'samesite' = 'Strict',
    'extension' = 'xxt3s'
])
Réponse :
Set-Cookie: user=edgescript
    Set-Cookie: login_time=1582538968.912; Path=/
    Set-Cookie: psid=SDF93745HFSDF2934JKHG; Expires=Mon, 24-Feb-20 10:09:28 GMT; Max-Age=100; Domain=foo.com; Path=/play; Secure; HttpOnly; SameSite=Strict; xxt3s