当前位置: 首页 > news >正文

怎么经营团购网站创美艺佳网站是谁做的

怎么经营团购网站,创美艺佳网站是谁做的,网页设计html代码大全颜色,网站设计与网页制作团队以下是一个实现客户端对 Shell HTTP 服务发起 POST 请求并传入 JSON 参数的完整示例。Shell 服务会解析收到的 JSON 数据,根据内容执行操作。 服务端脚本:http_server.sh 以下脚本使用 netcat (nc) 来监听 HTTP 请求,并通过 jq 工具解析 JSO…

以下是一个实现客户端对 Shell HTTP 服务发起 POST 请求并传入 JSON 参数的完整示例。Shell 服务会解析收到的 JSON 数据,根据内容执行操作。


服务端脚本:http_server.sh

以下脚本使用 netcat (nc) 来监听 HTTP 请求,并通过 jq 工具解析 JSON 数据。

脚本内容:
#!/bin/bashPORT=8080
echo "HTTP Server started on port $PORT..."while true; do{ # 读取请求行read request_lineecho "Request: $request_line"# 读取请求头,直到读取到空行(标志头部结束)content_length=0while read header && [[ "$header" != $'\r' ]]; doecho "$header"# 获取Content-Length值if [[ "$header" == Content-Length:* ]]; thencontent_length=$(echo $header | awk '{print $2}' | tr -d $'\r')fidone# 读取请求体if [[ $content_length -gt 0 ]]; thenread -n $content_length bodyecho "Received Body: $body"# 解析JSON并判断内容command=$(echo "$body" | jq -r '.command')echo "Command: $command"# 根据JSON中的command字段执行不同操作case $command in"start")response="Starting the service...";;"stop")response="Stopping the service...";;*)response="Unknown command: $command";;esac# 返回HTTP响应echo -e "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\n$response"else# 未提供JSON时返回错误echo -e "HTTP/1.1 400 Bad Request\r\nContent-Type: text/plain\r\n\r\nNo body received"fi} | nc -l -p $PORT -q 1  # 使用 netcat 监听端口
done

客户端:发送 POST 请求

客户端可以使用 curl 发送 POST 请求,并携带 JSON 数据。

客户端请求示例
# 发送启动命令
curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "start"}'# 发送停止命令
curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "stop"}'# 发送未知命令
curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "restart"}'# 未提供JSON数据
curl -X POST http://localhost:8080

完整运行过程示例

  1. 启动服务:

    $ ./http_server.sh
    HTTP Server started on port 8080...
    
  2. 客户端发起请求:

    $ curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "start"}'
    Starting the service...
    
  3. 服务端日志输出:

    Request: POST / HTTP/1.1
    Content-Type: application/json
    Content-Length: 22Received Body: {"command": "start"}
    Command: start
    
  4. 发送其他命令:

    $ curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "stop"}'
    Stopping the service...$ curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "restart"}'
    Unknown command: restart
    

注意事项

  1. 依赖工具:

    • 确保系统安装了 jq(用于解析 JSON 数据),可以通过以下命令安装:
      sudo apt install jq  # Ubuntu/Debian
      sudo yum install jq  # CentOS/Red Hat
      
    • 确保系统安装了 netcat (nc)
  2. 安全性:

    • 此实现适合测试或开发环境,不建议直接用于生产环境。
    • 生产环境建议使用更成熟的解决方案(如 Python Flask 或 Node.js)。
  3. 扩展功能:

    • 可以在 case 中增加更多命令的处理逻辑。
    • 可以验证 JSON 数据的格式,确保字段完整性。

这套脚本适合演示简单的 HTTP 服务和 JSON 数据交互,非常适合学习和快速搭建原型。


nc 命令详解

nc 是 Netcat 的命令行工具,常用于网络调试、监听端口、传输数据等。以下是命令中 nc -l -p $PORT -q 1 的含义:

选项解释
  1. -l

    • 启用监听模式,使 nc 在指定端口上等待连接。
    • 没有这个选项时,nc 作为客户端发起连接。
  2. -p $PORT

    • 指定监听的端口号(这里用变量 $PORT 表示)。
    • 例如,-p 8080 表示监听 8080 端口。
  3. -q 1

    • 在最后一次传输完成后等待 1 秒,然后关闭连接。
    • 如果没有设置 -qnc 在交互完成后可能不会立即关闭连接。

nc 常用参数

通用选项
  1. -v

    • 启用详细模式,打印更多调试信息(如连接状态、错误等)。
    • 示例:nc -v 127.0.0.1 8080
  2. -z

    • 零 I/O 模式,用于扫描端口,不发送或接收数据。
    • 常与 -v 搭配使用,测试远程主机的端口开放状态。
    • 示例:nc -zv 127.0.0.1 22
  3. -u

    • 使用 UDP 而非默认的 TCP 协议。
    • 示例:nc -u 127.0.0.1 12345
  4. -n

    • 禁用 DNS 解析,仅允许使用 IP 地址。
    • 示例:nc -n 192.168.1.1 80
  5. -e <command>

    • 执行一个命令,将该命令的输入和输出通过网络传输(远程 shell)。
    • 示例:nc -l -p 1234 -e /bin/bash
监听模式选项
  1. -l

    • 启用监听模式。
  2. -p <port>

    • 指定监听的端口。
  3. -k

    • 保持监听状态,即使已有连接也不会退出。
    • 示例:nc -l -p 8080 -k
  4. -q <seconds>

    • 在最后一次传输完成后,等待指定的秒数后关闭连接。
文件传输相关
  1. -w <seconds>

    • 设置连接超时时间(默认无限制)。
  2. 文件传输(发送文件):

    # 在发送端:
    nc -l -p 1234 < file_to_send.txt# 在接收端:
    nc 127.0.0.1 1234 > received_file.txt
    
  3. 文件传输(目录打包):

    # 发送端打包目录
    tar -cvf - my_directory | nc -l -p 1234# 接收端解压
    nc 127.0.0.1 1234 | tar -xvf -
    

nc 的应用场景

  1. HTTP 服务测试
    模拟一个简单的 HTTP 服务器:

    echo -e "HTTP/1.1 200 OK\r\n\r\nHello World" | nc -l -p 8080
    
  2. 端口扫描
    检查远程主机开放的端口:

    nc -zv 192.168.1.1 20-100
    
  3. 远程 Shell
    在远程机器上打开一个 Shell:

    # 服务端(监听远程 Shell 连接):
    nc -l -p 1234 -e /bin/bash# 客户端:
    nc 192.168.1.2 1234
    
  4. 调试网络连接
    测试网络连通性:

    nc -v 8.8.8.8 53
    
  5. 文件传输
    通过网络快速传输文件:

    # 发送端:
    nc -l -p 1234 < file.txt# 接收端:
    nc 192.168.1.2 1234 > received_file.txt
    

注意事项

  • 使用 -e 启动远程 Shell 时需要小心,可能引发安全问题。
  • 某些系统可能使用不同版本的 Netcat,如 OpenBSD ncGNU nc,某些选项可能不支持。
  • 对于需要长期运行的服务,推荐使用 -k 持续监听。

通过 nc,我们可以快速搭建原型服务,调试网络问题,甚至完成文件传输任务,是一个非常实用的网络工具。

http://www.hyszgw.com/news/61536.html

相关文章:

  • 山西太原建站怎么做谷歌浏览器下载手机版安卓
  • 青海省住房和城乡建设厅 网站哪些网站做企业招聘不要花钱
  • 长沙 学校网站建设做网站无锡
  • 网站的设计理念网址导航网址大全
  • 个人备案的网站做企业站wordpress图片压缩
  • 无锡网站建设哪家做得比较好江西seo推广方案
  • 站长检测同ip网站很多怎么办建设银行网站点不进去
  • 仿网站收费购物网站设计欣赏
  • 成都科技网站建设电话多少网络营销渠道
  • python做的网站如何打开哈尔滨市建设工程交易中心网站
  • 长治网站制作小程序做一个网站的市场价
  • 能自己做网站吗微网站开发技巧
  • 网站网页设计怎么收费sem竞价托管多少钱
  • 阿里云服务器上的网站怎么做修改手机网站视频播放模板
  • wordpress多站点好用吗博艺园 网站建设
  • php做的网站怎么入侵vi设计公司深圳
  • 四川建设网入川备案网站软件推广方式
  • 电子商务网站建设设计网站建设公司中
  • 男女做暧暧网站如何用xshell安装wordpress
  • 接网站做项目赚钱吗如何建立公司的网站
  • wordpress安装在子目录杭州seo公司排名
  • 高端网站建设与管理wordpress 添加分类
  • 宠物狗网站建设分析网络营销推广为什么效果不好
  • 苏州建站公司精选苏州聚尚网络阿里企业邮箱价格
  • 11网站建设waocc网站公司简介模板免费下载
  • 网站建设 中企动力鄂ICP备苏州优化网站
  • 如花建站wordpress4.5 下拉菜单
  • 小程序在建网站吗企业年金个人查询
  • 高清品牌网站设计建设网站建设团队架构
  • 建设一个网站需要的空间有哪些方法东莞网站制作哪家公司好