如何验证CloudFlare自定义请求头是否到达S3静态网站?
验证CloudFlare自定义请求头是否到达S3静态网站
方法1:查看S3访问日志
- 先开启目标S3存储桶的访问日志记录,指定一个存储桶用来存放日志文件。
- 等待几分钟后,前往日志存储桶找到最新的日志文件,打开后就能看到每一条请求的完整头信息,直接查找你添加的自定义请求头即可确认是否存在。
方法2:通过页面代码展示请求头
- 如果你能修改页面内容或配合Lambda@Edge使用,可以通过以下方式展示请求头:
- 借助Lambda@Edge在请求转发到S3的阶段,将请求头信息注入到返回的HTML页面中;
- 注意:纯静态HTML无法直接获取请求头,必须通过边缘计算将请求头提前写入页面内容,这样用户打开网页就能看到完整的请求头信息。
方法3:用curl结合缓存刷新做对比验证
- 先清空CloudFlare的缓存,确保请求会直接转发到S3:
curl -X POST "https://api.cloudflare.com/client/v4/zones/你的ZoneID/purge_cache" \ -H "Authorization: Bearer 你的API令牌" \ -H "Content-Type: application/json" \ --data '{"purge_everything":true}'
- 分别用curl直接访问S3静态网站域名和经过CloudFlare的域名,添加
-v参数查看详细请求流程,对比两者的请求头差异。不过这种方式属于间接验证,最准确的还是查看S3的访问日志。
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

