应用层 HTTP 代理服务器转发消息时的相关头部 请求头 X-Forwarded-For

news/2024/5/1 10:14:11/文章来源:https://blog.csdn.net/qq_34556414/article/details/126926908

在http消息传递过程当中会经过很多正向代理服务器和反向代理服务器,这些代理服务器在转发消息的时候会涉及到http的头部,下面将会介绍这些头部,包括由于存在这些代理服务器所以客户端和源服务器之前有许多的tcp连接,有一些http头部是将客户端实际的IP地址传递给服务器做相关用途。

客户端与源服务器间存在多个代理


可以看到客户端与源服务器存在很多代理,客户端每次经过四层传输层代理就会建立新的tcp连接,tcp源端的IP地址只是tcp连接中的地址,如果想基于客户端的IP做负载均衡或者做限速限流,通过tcp连接是拿不到的,因为只能拿到Gateway的地址,要怎么传递客户端的地址到原服务器?

 

问题:如何传递 IP 地址?


要怎么样传递客户端的IP地址到源服务器呢?可以通过http头部,这个头部叫做X-Forwarded-For用于传递IP。

如果用户在家里,它的IP地址是192.168.0.x,它通过运营商进行拨号上网,运营商给它提供的公网地址为115.204.33.1,然后经过一个正向代理,这个正向代理的地址是1.1.1.1,然后再经历一个cdn,假设这个cdn的地址是2.2.2.2,然后再到后面的反向代理,如果反向代理需要拿到用户的IP地址用作负载均衡的话,115.204.33.1是一个合适的IP地址,但是反向代理是直接从tcp连接当中拿到的地址是2.2.2.2,要怎么样拿到115.204.33.1呢?

头部X-Forwarded-For就可以用来传递IP地址,从正向代理出来的时候需要将115.204.33.1添加到X-Forwarded-For头部,cnd这里又经理了一次重建tcp连接,需要将正向代理当中的1.1.1.1也放到这里,所以反向代理可以通过X-Forwarded-For中的第一个拿到相应客户端的地址。

 

 

 消息的转发


代理服务器在做消息转发的时候还有一些header头部是可以控制相关内容的,比如Max-Forwards,这个头部是用来限制最多经历多少个代理服务器去转发我们的消息,以防止过长的代理服务器转发。

Via 头部
经过了哪些代理服务器,这些代理服务器名称是什么,版本是什么。
可以看到经历两个代理服务器

为了防止代理服务器去修改服务器发给客户端响应中的包体内容,http又引入了新的header字段,
Cache-Control:no-transform表示不允许中间的代理服务器修改响应的包体。
上面就是http请求历经重重的代理服务器之后再http header中能够反馈给我们信息,服务端获取到客户端的IP是非常有用的。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_11444.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter快学快用15 服务通信:Flutter 中常见的网络协议

上一课时之前,我们的接口都是在代码中模拟假数据,并没有从服务端获取数据,但是在实际开发中,必须与服务端进行交互。本课时主要介绍在 Flutter 中常见的网络传输协议序列化方式,并对其中比较常用的协议进行简单实践&am…

大数据培训技术phoenix表操作

phoenix表操作 1 显示所有表 !table 或 !tables 2 创建表 CREATE TABLE IF NOT EXISTS us_population ( State CHAR(2) NOT NULL, City VARCHAR NOT NULL, Population BIGINT CONSTRAINT my_pk PRIMARY KEY (state, city)); 如下显示: 在p…

超级基础篇_疑惑实验

1、多态: 多态是什么? 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作多态的优点 1.消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 …

树的应用 —— 二叉树:二叉树的性质

树的应用 —— 二叉树 二叉树(Binary Tree)是n (n ≥0)个节点构成的集合,或为空树(n 0),或为非空树。 对于非空树T ,要满足: ①有且仅有一个被称为根的节点…

FFmpeg入门详解之20:视频编码原理简介

视频为何需要压缩? 原因:未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频。 ● 传输困难 ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟。 主要压缩了什么东西? 原始视频压缩的目的是去除冗余信息&a…

结构体的理解

结构体前言结构体?定义变量如何赋初值?结构体的访问结构体的嵌套使用注意事项结构体的大小内存对齐默认对齐数的修改为什么存在内存对齐?结构体传参位段什么是位段?位段的内存分配深入剖析位段“存”数据位段的“取”位段的跨平台…

Idea工具中,使用Mapper对象有红线

背景: IDEA开发工具,springboot mybatis项目 (这个是不需要改的,也不算是问题,因为项目并不会报错,只是作者好奇找了下问题,并记录一下) 问题描述 mapper对象在service层有红线&a…

8 位卷王!总结 1135 页 Java 核心面试手册,硬钢 BATJ 一线大厂面试官

又到了金九银十求职季! HR 开始拼业绩,招聘网站也开始释放出大量岗位,转行跳槽、毕业求职的人都开始行动起来! 此时,对于大多数程序员来说,最大的目标就是:进大厂! 大厂为什么这么…

ArcGIS Map Sdk for unity使用

本文主要讨论离线模式。 目录 1.底图tpk文件制作 2.3D图层slpk文件制作 3.导入使用 1.底图tpk文件制作 软件:91卫图助手 Arcgis Pro 操作步骤: 打开91卫图助手,更换底图为高德影像/腾讯影像。(百度影像的地理投影格式有自身加密&#xff…

剖析容器运行时

特别说明:一部分转载自大佬文章:https://blog.csdn.net/weixin_39246554/article/details/120926174(不得不说大佬总结的真好啊!!!) 剩下的听老王公开课总结。 k8s官网关于运行时的说明&#x…

Typora Mac版本安装Pandoc导出文件为word格式(windows可通用)

我们在用Typora时导出的格式常常为PDF格式,但是如果我们要将文件导出为word格式的时候却需要安装插件PanDoc,我目前使用的是Mac版本的Typora,给大家分享一下如何安装Pandoc以及导出word格式文件。 1.根据Typora中的说明进入GitHub下载Pandoc…

Maven安装配置

Maven安装配置一、下载 apache-maven-3.6.1Maven官网:https://maven.apache.org/download.cgi(或)直接下载maven-3.8.6:https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip解压到当前文件夹二、配置 maven 环境变量右键此电脑 - 属性 - 高级…

MySQL学习——执行计划

MySQL中可以通过explain关键字模拟优化器执行SQL语句,从而知道MySQL是如何处理SQL语句的,这将有利我们做代码的优化。 1、MySQL查询执行过程客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,若缓存中存在,则立刻返回存储在缓存中的结果。否则进入下一阶段 服务…

扫码挪车小程序源码专业版上线了

1 、做挪车码之前,先说一些我个人的观点,大家一起探讨学习交流。 2 、挪车码已经是普遍已久的项目,其核心主要在于解决了车主的隐私问题。 3 、观察过目前市面上所有的挪车码系统, 公司也购买了一套测试了完整流程,盈…

【图像分割】基于matlab萤火虫算法图像分割【含Matlab源码 2136期】

一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【图像分割】基于matlab萤火虫算法图像分割【含Matlab源码 2136期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏图像处理(Matlab) 备注: 点击上面蓝色字体付费专栏图像处理(Matlab),…

parted分区步骤

parted分区步骤概述 通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大;而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。但是现在的磁盘空间很多都已经是远远大于2T了,甚至达到2.5T和3T,那要怎么办能,有两…

路径规划总结(一)

第三讲 路径规划 ps:排版有一些问题,懒得改了,见Github 一、导航规划简介 导航规划:在给定环境的全局或局部知识以及一个或者一系列目标位置的条件下,使机器人能够根据知识和传感器感知信息高效可靠地到达目标位置。 导航规划类…

告别传统FTP!该了解一下替代FTP的新产品了

在某些情况下,需要从服务器上传(或下载)文件。多年来,最流行的文件传输方法是文件传输协议(FTP)。FTP的一大优点是它支持断点续传。FTP收获了方便性,却在安全性上有所欠缺。FTP未加密,这意味着格…

Cache-Augmented Inbatch Importance Resampling for Training Recommender Retriever

目录概符号说明启发本文方法BIR (inbatch importance resampling)XIR (Cache-Augmented Resampling)Chen J., Lian D., Li Y., Wang B., Zheng K. and Chen E. Cache-augmented inbatch importance resampling for training recommender retriever. In Advances in Neural Info…

一条sql了解MYSQL的架构设计

1 前言 对于一个服务端开发来说 MYSQL 可能是他使用最熟悉的数据库工具,然而,大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:它可以建库、建表、建索引,然后就是对里面的数据进行增删改查,语句…