Callable Functions
Subroutines to handle requests
Overview
These functions enhance the functionality of handling HTTP requests in various ways, including automatically redirecting to HTTPS, denying requests or bypassing cache.
NOTE: Deprecated TCDN-Command
Header
TCDN-Command
HeaderPreviously, tasks were triggered using the HTTP header TCDN-Command
. For example:
Redirect HTTP to HTTPS:
set req.http.TCDN-Command = "redirect_https";
Deny a request with a 403 error:
set req.http.TCDN-Command = "deny_request";
Bypass the cache:
set req.http.TCDN-Command = "pass";
Apply rate limit:
set req.http.TCDN-Command = "limit_rate:<key>:<limit>:<period>[:<block>][:captcha]";
However, this method had drawbacks, such as the risk of the header being overwritten later in the VCL code, leading to bugs.
Available Functions
Deny Request
Command:
call deny_request;
Description: Immediately blocks the request with a 403 error.
Example:
Redirect HTTP to HTTPS
Command:
call redirect_https;
Description: Redirects HTTP requests to HTTPS.
Example:
Bypass Cache
Command:
call bypass_cache;
Description: Bypasses/ignores the cache for the current request.
Example:
Redirect Request
Command:
call redirect_request;
Description: Redirects a request to a specified URL with the given status code. It requires setting a header,
req.http.tcdn-location
, before the call. The value of this header must follow the format<status_code>, <URL>
.Example:
Apply Rate Limit
Command:
call rate_limit;
Description: Applies the rate limit specified,
<limit>
/<period>
, for each<key>
. If exceeded, a 429 (Too Many Requests) status code is returned during the<block>
time indicated.Example:
Under Attack Mode
Command:
call under_attack;
Description: Enables Under Attack Mode conditionally, allowing to target only a particular URL or any other condition instead of the whole domain.
Example:
Show Captcha
Command:
call show_captcha;
Description: This command triggers the display of a CAPTCHA to verify that incoming traffic is from human users.
Example:
Show JSChallenge
Command:
call show_jschallenge;
Description: This command initiates an automated JavaScript challenge to verify that incoming traffic originates from consumer browsers and not from automated or other tools. Unlike a CAPTCHA, this challenge is unassisted, meaning the user does not need to perform any actions for the verification to occur.
Example:
Last updated