最新消息:

ngx.var.arg与ngx.req.get_uri_args的区别

nginx admin 3498浏览 0评论

ngx.var.arg_xx与ngx.req.get_uri_args[“xx”]两者都是为了获取请求uri中的参数,例如

http://www.aikaiyuan.com/?strider=1  

为了获取输入参数strider,以下两种方法都可以:

  1. local strider = ngx.var.arg_strider
  2. local strider = ngx.req.get_uri_args[“strider”]

差别在于,当请求uri中有多个同名参数时,ngx.var.arg_xx的做法是取第一个出现的值,ngx.req_get_uri_args[“xx”]的做法是返回一个table,该table里存放了该参数的所有值,例如,当请求uri为:

http://www.aikaiyuan.com/?strider=1&strider=2&strider=3&strider=4  

时,ngx.var.arg_strider的值为”1”,而ngx.req.get_uri_args[“strider”]的值为table [“1”, “2”, “3”, “4”]。因此,ngx.req.get_uri_args属于ngx.var.arg_的增强。

  • ngx.var.arg_的实现是直接使用nginx原生的变量
  • ngx.req.get_uri_args 的实现是 lua-nginx-module

转载请注明:爱开源 » ngx.var.arg与ngx.req.get_uri_args的区别

您必须 登录 才能发表评论!