1. 说的这里,大家一定不学习一下http请求头部(header)详解
http请求头部(header)详解-CSDN博客https://blog.csdn.net/wq2008best/article/details/132731048
常见的请求头部字段
以下是一些常见的HTTP请求头部字段的详解:
GET:此方法用于请求指定的资源。GET请求应该安全且幂等,即多次执行相同的GET请求应该产生相同的结果。
POST:此方法用于向指定的资源提交数据,以便根据所提供的数据创建/更新资源。POST请求不是幂等的,每次执行相同的POST请求可能会产生不同的结果。
PUT:此方法用于完整地更新指定的资源。由于PUT请求是幂等的,多次执行相同的PUT请求应该产生相同的结果。
DELETE:此方法用于删除指定的资源。
HEAD:此方法与GET方法类似,只是服务器在响应中只返回HTTP头部,而不返回实际的数据。这用于检查资源的元数据。
OPTIONS:此方法用于获取指定的资源所支持的通信选项。这可以用于CORS(跨源资源共享)检查。
PATCH:此方法用于对资源进行部分更新。
Host:此头部字段指定请求的主机名和/或端口号。这是必需的,因为HTTP是一个基于TCP/IP的协议,没有主机名和端口号,服务器无法知道请求来自哪里。
User-Agent:此头部字段提供了关于发送请求的应用程序或用户代理的信息。这可以包括浏览器的名称和版本、操作系统等信息。
Accept:此头部字段指定客户端接受哪些类型的数据。例如,可以指定接受HTML、JSON、XML等格式的数据。
Content-Type:此头部字段指定在POST或PUT请求中发送的数据的类型。例如,如果发送的是JSON数据,那么此头部字段应该设置为application/json。
Content-Length:此头部字段指定POST或PUT请求中发送的数据的长度。
Cookie:此头部字段包含由服务器发送的cookie信息,这些信息将在后续的请求中自动包含,以便服务器识别用户或保存状态信息。
2. 模拟浏览器发起 GET 请求
curl -6 -I http://'[fd15:4ba5:5a2b:1008:53bd:92a3:9e83:bb22]' -X GET -H "User-Agent: Mozilla/5.0" -g
这里使用的是IPV6地址的请求,所以后缀要加 -g 这个参数
curl -6 -I http://'[fd15:4ba5:5a2b:1008:53bd:92a3:9e83:bb22]' -X GET -H "User-Agent: Mozilla/5.0" -H "X-Forwarded-For: 你的IP" -g
上面的命令是模拟代理服务器的请求效果,把x-forwrad-for参数传参。但是为了测试代理服务器所代理的请求,有好多攻击请求,而触发告警的机器只会认为是代理机器的IP是攻击源。用这个命令可以复现这个问题,不需要再搭建nginx 代理服务器。同时代理服务器后面的waf ,最好采用real-ip and x-forward-for, header 里面的参数调取真实的IP