すべてのプロダクト
Search
ドキュメントセンター

Server Load Balancer:リクエストロジック関数

最終更新日:Apr 23, 2025

このトピックでは、リクエストロジック関数の構文、機能、パラメーター、および戻り値について説明します。また、これらの関数の例も示します。

server_addr

項目

説明

構文

server_addr()

説明

server_addr は、現在のリクエストを受信するサーバーの IP アドレスを照会するために使用されます。

パラメーター

N/A

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

戻り値

サーバーの IP アドレス。データ型:文字列。

server_port

項目

説明

構文

server_port()

説明

server_port は、現在のリクエストを受信するサーバーポートを照会するために使用されます。

パラメーター

N/A

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

戻り値

現在のリクエストを受信するサーバーポート。データ型:数値。

client_addr

重要

NAT が構成されている場合、client_addr によって返される IP アドレスは、実際のクライアント IP アドレスではない可能性があります。

項目

説明

構文

client_addr()

説明

client_addr は、クライアント IP アドレスを照会するために使用されます。

パラメーター

N/A

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

戻り値

クライアント IP アドレス。データ型:文字列。

client_port

項目

説明

構文

client_port()

説明

client_port は、クライアントポートを照会するために使用されます。

パラメーター

N/A

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

戻り値

クライアントポート。データ型:数値。

req_uri

項目

説明

構文

req_uri([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、パラメーターを除くリクエストの URI が返されます。

  • リクエストに pattern パラメーターが含まれている場合、リクエストの URI が一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

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

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、リクエスト URI が返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

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

req_uri_basename

項目

説明

構文

req_uri_basename([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、リクエスト URI のファイル名が返されます。

  • リクエストに pattern パラメーターが含まれている場合、リクエスト URI のファイル名が一致条件と比較されます。

ファイル名の例:

  • /document_detail/30360.html の場合、ファイル名は 30360 です。

  • /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4 の場合、ファイル名は 2-1_g です。

  • /tarball/foo.tar.bz2 の場合、ファイル名は foo です。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

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

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、リクエスト URI のファイル名が返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

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([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、リクエスト URI の拡張子が返されます。

  • リクエストに pattern パラメーターが含まれている場合、リクエスト URI の拡張子が一致条件と比較されます。

拡張子の例:

  • /document_detail/30360.html の場合、拡張子は .html です。

  • /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4 の場合、拡張子は .mp4 です。

  • /tarball/foo.tar.bz2 の場合、拡張子は .tar.bz2 です。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

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

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、リクエスト URI の拡張子が返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

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([idx])

説明

  • レスポンスパラメーターでは、セグメントはスラッシュ (/) で区切られます。

    • リクエストに idx パラメーターが含まれていない場合、すべてのセグメントが返されます。

    • リクエストに idx パラメーターが含まれている場合、指定されたインデックス以降のセグメント (インデックスを含む) が返されます。

  • 段落のインデックス:インデックスは 1 から始まり、段落が追加されると左端のインデックスから増加します。

  • 段落の制限:段落には最大 128 文字を含めることができます。この制限を超える文字は削除されます。

パラメーター

idx:開始インデックスを指定します。このパラメーターはオプションです。

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

戻り値

データ型:辞書。関連する段落が含まれています。

説明

関数が指定されたインデックスに基づいて返された辞書から段落を取得する場合、関数は段落が空かどうかを確認します。

この例では、次の値が返されます。

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(4): segs[4]=path4

req_uri_arg

項目

説明

構文

req_uri_arg(name, [パターン])

説明

この関数は、指定されたパラメーターの値を照会します。リクエストに pattern パラメーターが含まれている場合、指定されたパラメーターの値が一致条件と比較されます。次の表に、この関数の詳細を示します。

パラメーター

  • name:パラメーターの名前。

  • pattern:一致条件と比較されます。次の照合タイプがサポートされています。

    • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

    • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# req_uri_arg
uid = req_uri_arg('uid')
if uid {
    say(concat('found uid ', uid)) // uid を検出しました
} else {
    say('not found uid') // uid を検出しませんでした
}
uid_chk = req_uri_arg('uid', '058334')
if uid_chk {
    say('check uid ok. plain mode') // uid のチェックに成功しました。プレーンモード
} else {
    say('check uid fail. plain mode') // uid のチェックに失敗しました。プレーンモード
}
uid_chk = req_uri_arg('uid', 're:[0-9]+')
if uid_chk {
    say('check uid ok. regex mode') // uid のチェックに成功しました。正規表現モード
} else {
    say('check uid fail. regex mode') // uid のチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、返される値は次のシナリオによって異なります。

    • 指定されたパラメーターが存在する:name パラメーターで指定されたパラメーターの値を文字列で返します。

    • 指定されたパラメーターが存在しない:false の値を返します。

  • リクエストに pattern パラメーターが含まれている場合、返される値は次のシナリオによって異なります。

    • 指定されたパラメーターが存在する:値が一致条件に一致する場合、true を返します。それ以外の場合は、false が返されます。

    • 指定されたパラメーターが存在しない:false を返します。

この例では、次の値が返されます。

Request: /path1/path2/path3/path4?mode=req4&uid
Response:
not found uid // uid を検出しませんでした
check uid fail. plain mode // uid のチェックに失敗しました。プレーンモード
check uid fail. regex mode // uid のチェックに失敗しました。正規表現モード

Request: /path1/path2/path3/path4?mode=req4&uid=
Response:
found uid  // uid を検出しました
check uid fail. plain mode // uid のチェックに失敗しました。プレーンモード
check uid fail. regex mode // uid のチェックに失敗しました。正規表現モード

Request: /path1/path2/path3/path4?mode=req4&uid=12345
Response:
found uid 12345 // uid 12345 を検出しました
check uid fail. plain mode // uid のチェックに失敗しました。プレーンモード
check uid ok. regex mode // uid のチェックに成功しました。正規表現モード

req_uri_query_string

項目

説明

構文

req_uri_query_string([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、疑問符 (?) を除くリクエストのパラメーターが返されます。

  • リクエストに pattern パラメーターが含まれている場合、リクエストのパラメーターが一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# 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') // URI クエリ文字列のチェックに成功しました。プレーンモード
} else {
    say('check uri query string fail. plain mode') // URI クエリ文字列のチェックに失敗しました。プレーンモード
}
if req_uri_query_string('re:mode=[0-9a-z]+') {
    say('check uri query string ok. regex mode') // URI クエリ文字列のチェックに成功しました。正規表現モード
} else {
    say('check uri query string fail. regex mode') // URI クエリ文字列のチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、リクエストのパラメーターが返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

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 // URI クエリ文字列のチェックに失敗しました。プレーンモード
check uri query string ok. regex mode // URI クエリ文字列のチェックに成功しました。正規表現モード

req_scheme

項目

説明

構文

req_scheme([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、リクエストスキームが返されます。

  • リクエストに pattern パラメーターが含まれている場合、リクエストスキームが一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# 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') // スキームのチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、リクエストスキームが返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

Request: http://xx..
req_scheme: http
check scheme fail. plain mode // スキームのチェックに失敗しました。プレーンモード
check scheme ok. regex mode // スキームのチェックに成功しました。正規表現モード

req_method

項目

説明

構文

req_method([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、リクエストメソッドが返されます。

  • リクエストに pattern パラメーターが含まれている場合、リクエストメソッドが一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# 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') // メソッドのチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、リクエストメソッドが返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

Request: POST /xxxx/xxx
Response:
req_method: POST
check method fail. plain mode // メソッドのチェックに失敗しました。プレーンモード
check method ok. regex mode // メソッドのチェックに成功しました。正規表現モード

req_host

項目

説明

構文

req_host([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、Host リクエストヘッダーの値が返されます。

  • リクエストに pattern パラメーターが含まれている場合、Host リクエストヘッダーの値が一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# 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') // ホストのチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、Host リクエストヘッダーの値が返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

Request:
Host: image.developer.aliyundoc.com
Response:
req_host: image.developer.aliyundoc.com
check host ok. plain mode // ホストのチェックに成功しました。プレーンモード
check host fail. regex mode // ホストのチェックに失敗しました。正規表現モード

req_user_agent

項目

説明

構文

req_user_agent([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、User-Agent リクエストヘッダーの値が返されます。

  • リクエストに pattern パラメーターが含まれている場合、User-Agent リクエストヘッダーの値が一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# req_user_agent
say(concat('req_user_agent: ', req_user_agent()))
if req_user_agent('Mozilla') {
    say('check user_agent ok. plain mode') // user_agent のチェックに成功しました。プレーンモード
} else {
    say('check user_agent fail. plain mode') // user_agent のチェックに失敗しました。プレーンモード
}
if req_user_agent('re:^Mozilla') {
    say('check user_agent ok. regex mode') // user_agent のチェックに成功しました。正規表現モード
} else {
    say('check user_agent fail. regex mode') // user_agent のチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、User-Agent リクエストヘッダーの値が返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

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 // user_agent のチェックに失敗しました。プレーンモード
check user_agent ok. regex mode // user_agent のチェックに成功しました。正規表現モード

req_referer

項目

説明

構文

req_referer([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、Referer リクエストヘッダーの値が返されます。

  • リクエストに pattern パラメーターが含まれている場合、Referer リクエストヘッダーの値が一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# req_referer
say(concat('req_referer: ', req_referer()))
if req_referer('https://example.aliyundoc.com/******00003') {
    say('check referer ok. plain mode') // referer のチェックに成功しました。プレーンモード
} else {
    say('check referer fail. plain mode') // referer のチェックに失敗しました。プレーンモード
}
if req_referer('re:https://foo\.bar\.cn/\*+[0-9]+') {
    say('check referer ok. regex mode') // referer のチェックに成功しました。正規表現モード
} else {
    say('check referer fail. regex mode') // referer のチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、Referer リクエストヘッダーの値が返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

Request: Referer: https://example.aliyundoc.com/******00003
Response:
req_referer: https://example.aliyundoc.com/******00003
check referer ok. plain mode // referer のチェックに成功しました。プレーンモード
check referer fail. regex mode // referer のチェックに失敗しました。正規表現モード

req_cookie

項目

説明

構文

req_cookie(name, [パターン])

説明

この関数は、指定された Cookie の値を照会します。リクエストに pattern パラメーターが含まれている場合、指定された Cookie の値が一致条件と比較されます。次の表に、この関数の詳細を示します。

パラメーター

  • name:Cookie の名前を指定します。

  • pattern:一致条件と比較されます。次の照合タイプがサポートされています。

    • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

    • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# req_cookie
uid = req_cookie('uid')
if uid {
    say(concat('found cookie uid ', uid)) // Cookie uid を検出しました
} else {
    say('not found cookie uid') // Cookie uid を検出しませんでした
}
uid_chk = req_cookie('uid', '058334')
if uid_chk {
    say('check cookie uid ok. plain mode') // Cookie uid のチェックに成功しました。プレーンモード
} else {
    say('check cookie uid fail. plain mode') // Cookie uid のチェックに失敗しました。プレーンモード
}
uid_chk = req_cookie('uid', 're:^[0-9]+')
if uid_chk {
    say('check cookie uid ok. regex mode') // Cookie uid のチェックに成功しました。正規表現モード
} else {
    say('check cookie uid fail. regex mode') // Cookie uid のチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、返される値は次のシナリオによって異なります。

    • 指定された Cookie が存在する:name パラメーターで指定された Cookie の値を文字列で返します。

    • 指定されたパラメーターが存在しない:false を返します。

  • リクエストに pattern パラメーターが含まれている場合、返される値は次のシナリオによって異なります。

    • 指定されたパラメーターが存在する:値が一致条件に一致する場合、true を返します。それ以外の場合は、false が返されます。

    • 指定されたパラメーターが存在しない:false を返します。

この例では、次の値が返されます。

Request: Cookie: uid=123456; token=value2
Response:
found cookie uid 123456 // Cookie uid 123456 を検出しました
check cookie uid fail. plain mode // Cookie uid のチェックに失敗しました。プレーンモード
check cookie uid ok. regex mode // Cookie uid のチェックに成功しました。正規表現モード

req_first_x_forwarded

項目

説明

構文

req_first_x_forwarded([パターン])

説明

  • リクエストに pattern パラメーターが含まれていない場合、X-Forwarded-For リクエストヘッダーの最初のアドレスが返されます。

  • リクエストに pattern パラメーターが含まれている場合、X-Forwarded-For リクエストヘッダーの最初のアドレスが一致条件と比較されます。

パラメーター

pattern:一致条件と比較されます。次の照合タイプがサポートされています。

  • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

  • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# 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') // first_x_forwarded のチェックに成功しました。プレーンモード
} else {
    say('check first_x_forwarded fail. plain mode') // first_x_forwarded のチェックに失敗しました。プレーンモード
}
if req_first_x_forwarded('re:1.1.1.[0-9]') {
    say('check first_x_forwarded ok. regex mode') // first_x_forwarded のチェックに成功しました。正規表現モード
} else {
    say('check first_x_forwarded fail. regex mode') // first_x_forwarded のチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、X-Forwarded-For リクエストヘッダーの最初のアドレスが返されます。データ型:文字列。

  • リクエストに pattern パラメーターが含まれており、リクエストが一致条件に一致する場合、true が返されます。一致する条件がない場合は、false が返されます。

この例では、次の値が返されます。

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 // first_x_forwarded のチェックに成功しました。プレーンモード
check first_x_forwarded ok. regex mode // first_x_forwarded のチェックに成功しました。正規表現モード

req_header

項目

説明

構文

req_header(name, [パターン])

説明

この関数は、指定されたリクエストヘッダーの値を照会します。リクエストに pattern パラメーターが含まれている場合、指定されたリクエストヘッダーの値が一致条件と比較されます。

パラメーター

  • name:リクエストヘッダーの名前を指定します。

    リクエストヘッダーのハイフン (-) をアンダースコア (_) に置き換えます。たとえば、X-USER-ID は x_user_id に変更する必要があります。

  • pattern:一致条件と比較されます。次の照合タイプがサポートされています。

    • 総当たりアルゴリズム:総当たりアルゴリズムに基づいて値を比較します。これはデフォルトの照合タイプです。

    • 正規表現:re: で指定された先頭の正規表現に基づいて値を比較します。

# req_header
uid = req_header('x_uid')
if uid {
    say(concat('found header x-uid ', uid)) // ヘッダー x-uid を検出しました
} else {
    say('not found header x-uid') // ヘッダー x-uid を検出しませんでした
}
uid_chk = req_header('x_uid', 'es developer')
if uid_chk {
    say('check header x-uid ok. plain mode') // ヘッダー x-uid のチェックに成功しました。プレーンモード
} else {
    say('check header x-uid fail. plain mode') // ヘッダー x-uid のチェックに失敗しました。プレーンモード
}
uid_chk = req_header('x_uid', 're:es [a-z]+')
if uid_chk {
    say('check header x-uid ok. regex mode') // ヘッダー x-uid のチェックに成功しました。正規表現モード
} else {
    say('check header x-uid fail. regex mode') // ヘッダー x-uid のチェックに失敗しました。正規表現モード
}

戻り値

  • リクエストに pattern パラメーターが含まれていない場合、返される値は次のシナリオによって異なります。

    • 指定されたリクエストヘッダーが存在する:name パラメーターで指定されたリクエストヘッダーの値を文字列で返します。

    • 指定されたパラメーターが存在しない:false の値を返します。

  • リクエストに pattern パラメーターが含まれている場合、返される値は次のシナリオによって異なります。

    • 指定されたパラメーターが存在する:値が一致条件に一致する場合、true を返します。それ以外の場合は、false が返されます。

    • 指定されたパラメーターが存在しない:false を返します。

この例では、次の値が返されます。

Request: X-UID: es developer
Response:
found header x-uid es developer // ヘッダー x-uid es developer を検出しました
check header x-uid ok. plain mode // ヘッダー x-uid のチェックに成功しました。プレーンモード
check header x-uid ok. regex mode // ヘッダー x-uid のチェックに成功しました。正規表現モード