如何在单条netcat命令的同连接中返回请求头作为响应?
用Netcat实现返回请求头的简易Web服务器
你可以利用nc的-c参数,指定连接建立后执行一段shell脚本,在脚本里读取收到的请求头,再构造包含这些内容的响应返回,无需再次调用netcat,同一个连接内就能完成:
nc -l -p 8080 -c ' # 读取请求头直到空行(HTTP请求头结束标记) request="" while IFS= read -r line; do request+="$line\n" # 遇到空行就停止读取 [ -z "$line" ] && break done # 构造HTTP响应,把请求头作为内容返回 echo -ne "HTTP/1.1 200 OK\nContent-Type: text/plain\n\n$request" '
关键说明:
-c参数让netcat在每次建立连接后,运行指定的shell命令- 循环读取请求的每一行,直到遇到空行(HTTP请求头和正文的分隔符),把所有请求头内容存入变量
- 最后返回标准的200响应,将收集到的请求头作为响应正文输出
内容的提问来源于stack exchange,提问作者Cardeal Russo
相关产品推荐
相关产品推荐

