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

Previously, 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:

BotM Assessment

  • Command: call botm_assessment;

  • Availability: This command is available only to customers who have the bot mitigation service enabled. Additionally, the affected domain must be activated under the bot mitigation panel for this to work.

  • Description: This command retrieves advanced information about the IP address accessing your service. Based on this data, you can define a more tailored reaction to the request, such as blocking the IP, showing a CAPTCHA, or allowing the request with custom thresholds.

  • Example:

Last updated

Was this helpful?