背景:构造http请求时,如果url带#时,#后面部分不会发送到网络中,即构造http请求时就没有#了。但还是有特殊情况的,网上查很多资料可以做到http请求时url带#,现在用openresty lua实现发送带#的请求。并且验证nginx支不支持接收带#的url。
实践省流版:
1、content_by_lua中
……
sock:send("GET /jt/te#test?key=3 HTTP/1.0\r\n\r\n")
sock:receiveuntil("xxx")
ngx.say(res)
……
2、新的location中:
location /jt {
if ($request_uri ~ ".*#.*"){
return 200 $request_uri\\0;
}
return 200 notContain#\\0;
}
以上实验中,发送的http请求带#时,$request_uri也能打印出来,即nginx支持接收带#的url。