关于中转客户端访问

zhlym 2020-10-13 12:02:56
假如 xx.com 网站是我这边的,用户A访问过来,然后要把用户A转到去访问 123.com ,让 123.com 网站取到的是用户A的相关浏览端信息,然后返回时用户A看到的就是 123.com 的返回(当然也希望我网站 xx.com 也能取到 123.com 返回),有可能这样实现吗?请大家指点下
...全文
6334 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
基于“协议”的能力,网站B可以识别用户的身份、来源等等信息,并且对A网站推送你需要的内容。不管需求多么复杂,其实做起来都很轻松。设计的基本概念和思路最重要。
  • 打赏
  • 举报
回复
通常,例如单点登录系统等等使用 30x 客户端重定向的网站,通常网站 A 要跟集中统一的中转网站B(例如用户登录认证 web 服务器)通过后台发一个消息,推送一些信息,然后将与B站约定好的信息的token编码放到重定向的url的参数中。例如重定向到
http://123.com/site1?token=adfafaxx23242
或者简单地将信息内容放到url上,例如
http://123.com/site1?token=adfafaxx23242&callback=xx.com/app1/page1
这个例子中,当callback参数值比较复杂的时候还需要url编码。

这里就需要网站之间先定出一个“协议”来。
  • 打赏
  • 举报
回复
客户端重定向是 http 古老的标准操作。你自己看一下标准。
zhlym 2020-10-26
  • 打赏
  • 举报
回复
问题还没有解决,再顶一下看有没有高手路过指点下
zhlym 2020-10-15
  • 打赏
  • 举报
回复
引用 10 楼 SpringRainy 的回复:
[quote=引用 2 楼 wanghui0380 的回复:]你那个叫代理服务器
0[/quote] 如是代理服务器的话,要怎搭建?或用什么软件?在之前也有用软件CCPROXY来做代理,也是实现不了我想要的
zhlym 2020-10-14
  • 打赏
  • 举报
回复
韩老骥 经用nginx测试,主要代码如下 server { listen 8091; server_name http://aa.com; location / { proxy_pass http://xxx.com/t.asp; proxy_set_header X-real-ip $remote_addr; proxy_set_header remote-user-ip $remote_addr; } } 在本地访问 http://aa.com:8091 能访问到 http://xxx.com/t.asp 去,但这个网站是别人的,我只有访问权,且人家是用 Request.ServerVariables["REMOTE_ADDR"] 来获取客户端IP的,我的nginx中转跟本没办法把客户的IP替换到 REMOTE_ADDR 里去交给目标网站,还望熟悉的朋友再指点下
八爻老骥 2020-10-14
  • 打赏
  • 举报
回复
引用 7 楼 zhlym 的回复:
[quote=引用 6 楼 icoolno1 的回复:][quote=引用 5 楼 zhlym 的回复:][quote=引用 4 楼 icoolno1 的回复:]百度iis,nginx反向代理


据实验,IIS反向代理,没办法把客户端的IP转到目标网站的(这是取真实IP的语句 Request.ServerVariables["REMOTE_ADDR"] 代理之后目标网站取不到客户端IP了,取到的是代理服务端的IP),这就是我要求的特殊的地方[/quote]

Head是可以转发的啊,比如nginx的配置。


location /some/path/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8000;
}
[/quote]

韩老骥 ,你这句 proxy_set_header X-Real-IP $ remote_addr 可以令目标网站 通过 Request.ServerVariables["REMOTE_ADDR"] 得到客户端的IP吗? 因我服务器是WINDOWS所以试验了IIS的反向代理,发现没办法把客户端的IP转发给目标网站(也有可能我不懂设置),如知道的告之下

[/quote]

参考这个
https://blog.csdn.net/zwmnhao1980/article/details/82267921
SpringRainy 2020-10-14
  • 打赏
  • 举报
回复
引用 2 楼 wanghui0380 的回复:
你那个叫代理服务器
0
zhlym 2020-10-13
  • 打赏
  • 举报
回复
引用 6 楼 icoolno1 的回复:
[quote=引用 5 楼 zhlym 的回复:][quote=引用 4 楼 icoolno1 的回复:]百度iis,nginx反向代理
据实验,IIS反向代理,没办法把客户端的IP转到目标网站的(这是取真实IP的语句 Request.ServerVariables["REMOTE_ADDR"] 代理之后目标网站取不到客户端IP了,取到的是代理服务端的IP),这就是我要求的特殊的地方[/quote] Head是可以转发的啊,比如nginx的配置。

location /some/path/ {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://localhost:8000;
}
[/quote] 韩老骥 ,你这句 proxy_set_header X-Real-IP $ remote_addr 可以令目标网站 通过 Request.ServerVariables["REMOTE_ADDR"] 得到客户端的IP吗? 因我服务器是WINDOWS所以试验了IIS的反向代理,发现没办法把客户端的IP转发给目标网站(也有可能我不懂设置),如知道的告之下
八爻老骥 2020-10-13
  • 打赏
  • 举报
回复
引用 5 楼 zhlym 的回复:
[quote=引用 4 楼 icoolno1 的回复:]百度iis,nginx反向代理


据实验,IIS反向代理,没办法把客户端的IP转到目标网站的(这是取真实IP的语句 Request.ServerVariables["REMOTE_ADDR"] 代理之后目标网站取不到客户端IP了,取到的是代理服务端的IP),这就是我要求的特殊的地方[/quote]

Head是可以转发的啊,比如nginx的配置。


location /some/path/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8000;
}
zhlym 2020-10-13
  • 打赏
  • 举报
回复
引用 4 楼 icoolno1 的回复:
百度iis,nginx反向代理
据实验,IIS反向代理,没办法把客户端的IP转到目标网站的(这是取真实IP的语句 Request.ServerVariables["REMOTE_ADDR"] 代理之后目标网站取不到客户端IP了,取到的是代理服务端的IP),这就是我要求的特殊的地方
八爻老骥 2020-10-13
  • 打赏
  • 举报
回复
百度iis,nginx反向代理
zhlym 2020-10-13
  • 打赏
  • 举报
回复
引用 2 楼 wanghui0380 的回复:
你那个叫代理服务器
如果只是常用的代理方式 是实现不了我的说,比如 123.com 目标网站是取到代理服务器的IP,是取不到客户端真实IP的(我指 Request.ServerVariables["REMOTE_ADDR"] )
wanghui0380 2020-10-13
  • 打赏
  • 举报
回复
你那个叫代理服务器
耗子哭死猫 2020-10-13
  • 打赏
  • 举报
回复
读取浏览信息这种早就有了,还有现成的。 好像是一个什么统计的网站,你注册会得到一个js连接地址,把js链接地址嵌入到你主页中。浏览你的网站同时,也会把浏览信息抓取到统计网站中,你登录统计后台就可以得到这心数据了
本软件由服务端 、 客户端和采集端三部分组成,用于将采集端计算机上的 TCP 端口映射 到客户端计算机 上,使 客户端计算机上的应用软件可以像访问本机上的 TCP 端口一样访问采 集端计算机上的 TCP 端口。注:采集端也被称作监测点。 本软件的采集端可以运行在 X86-Linux 、 ARM7-ucLinux 或 Windows 2000/XP 系统 上,本软件的客户端和服务端只能运行在 Windows 2000/XP 系统上。 本软件要解决的问题:如下图所示,采集端计算机(采集端 1)是一台运行 Linux 操作系 统的X86 嵌入式计算机,通过ADSL 接入Internet,该计算机上开有Telnet服务(TCP-23) 。 因网络设备限制,只允许该计算机访问外界计算机,而外界计算机无法访问该计算机的 TCP- 23 端口。客户端计算机(客户端 3)是某公司内部网络中的一台运行 Windows2000 操作系 统的计算机,通过公司的交换机接入 Internet。因为采集端计算机网络设备的限制,客户端 计算机无法访问采集端计算机上的 Telnet 服务。 为使采集端计算机上的 Telnet 服务可被客户端计算机 访问,在 客户端计算机上运行 TCP 中转客户端软件,在采集端计算机上运行 TCP 中转站采集端软件。运行 TCP 中转站服务 端软件的服务器,是一台运行 Windows2000 系统有公网 IP 的计算机,客户端计算机和采 集端计算机均可以访问该服务器。 TCP 中转站软件将把采集端计算机的 TCP-23 端口映射到客户端计算机上,使用客户端 计算机的操作者用 Telnet 命令或 PuTTY 软件访问本机的 TCP-23 端口,即可与采集端计算 机的 TCP-23(Telnet 服务)通讯。每个客户端计算机可以映射多个采集端计算机的多个 TCP 端口,在客户端计算机上为每个映射的采集端计算机分配一个私有 IP:127.1.0.X 。例如: 客户端计算机与三台采集端计算机建立了映射,则这三台采集端计算机分别映射到这台客户 端计算机的 127.1.0.11、127.1.0.12 和 127.1.0.13 三个私有 IP 地址上,如果客户端计 算机上的应用软件(例如 PuTTY)访问本台计算机私有 IP 127.1.0.11 的 TCP23 端口,则应 用软件(PuTTY)实际访问的是采集端计算机 1 的 TCP-23 端口。
提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术盛宴! 重点内容及特色 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握的技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的数据库技术与AOP等。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书相比,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》讲解由浅入深,涵盖更多内容,列举了大量典型实例具有超强的实用性,另外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》各篇独立,适合读者全面学习或对部分内容重点学习。 读者对象 有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头必备查询手册的程序员 光盘内容 6小时多媒体体视频讲解 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书。尤其在计算机图书出版领域更是形成了鲜明特色,所出版的各类计算机图书受到了广大读者的好评。本次出版的“原创经典,程序员典藏”系列图书是清华大学出版社的重点精品计算机图书,旨在帮助读者全面学习各类程序设计语言和开发工具,提高开发水平。同时也为广大程序员提供良好的技术参考,以便作为案头必备的查询手册。 内容提要 -------------------------------------------------------------------------------- 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、Spring AOP等)以及 Hibernate(会话、映射、标准查询API、HQL、事务管理、锁等)。除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是目前最流行的Java Web开发技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》适合广大从事Java Web开发工作的技术人员、对SSH开发感兴趣的人员以及大专院校学生阅读,尤其是具有一定的Web开发经验的技术人员。 目录 -------------------------------------------------------------------------------- 第1篇 web开发基础篇 第1章 搭建开发环境 1.1 本书使用的软件和框架的版本 1.2 JDK6的下载与安装 1.3 Eclipse3.4 的下载与安装 1.4 MyEclipse6.5 的下载与安装 1.5 Eclipse:IDEforJavaEEDevelopers的下载与安装 1.6 Tomcat6的下载与安装 1.7 在MyEclipse中配置。Tomcat 1.8 在EclipseIDEforJavaEEDevelopers中配置Tomcat 1.9 小结 第2章 JavaWeb应用开发基础 2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 Java,Web程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序需要的基础服务 2.3.3 MVC模式概述 2.3.4 常用的MvC框架 2.4 小结 第3章 Web开发中的客户端技术 3.1 常用的JavaScriptIDE简介 3.1.1 在MyEclipse中使用JavaScript 3.1.2 在EclipseIDEforJavaEE中使用JavaScript 3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3种方法 3.3.3 实例:图像自动切换 3.3.4 正则表达式 3.3.5 实例:表格排序 3.4 CSS基础 3.4.1 CSS的基本语法 3.4.2 在Style属性中定义样式 3.4.3 在HTML中定义样式 3.4.4 在外部文件中定义样式 3.4.5 样式的继承 3.5 AJAX.基础 3.5.1 AJAX概述 3.5.2 实例:使用XMLHttpRequest获得Web资源 3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 实例:手工编写:Helloworld程序 4.2 Servlet基础 4.2.1 配置数据库连接池 4.2.2 数据库连接池的应用 4.2 -3实例:用doGet方法处理客户端请求 4.2.4 实例:用doPost方法处理客户端请求 4.2.5 实例:用service方法处理客户端请求 4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得请求消息 4.4.1 获取请求行消息 4.4.2 获取网络连接消息 4.4.3 获取请求头消息 4.5 处理Cookie 4.5.1 什么是Cookie 4.5.2 Cookie类中的方法 4.5.3 实例:用Cookie读写客户端信息 4.5.4 实例:用Cookie读写复杂数据 4.6 处理Session 4.6.1 什么是Session 4.6.2 HttpSession接口中的方法 4.6.3 HttpServletRequest接口中的Session方法 4.6.4 实例:通过Cookie跟踪Session 4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个JSP程序 5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的Servlet代码 5.3 JSP基本语法 5.3.1 JSP表达式 5.3.2 在JSP中嵌入Java代码 5.3.3.JSP声明 5.3.4.JSP表达式语言(EL) 5.3.5 实例:用EL函数替换HTML中的特殊字符 5.3.6 JSP页面中的注释 5.4 JSP指令 5.4.1 JSP指令简介 5.4.2 page页面指令 5.4.3 include加入指令 5.5.JSP的9个内置对象 5.5.1 out输出对象 5.5.2 pageContext封装对象 5.5.3 其他的JSP内置对象 5.6 JSP标签 5.6.1 插入标签 5.6.2 转发标签 5.6.3 传参标签 5.6.4 创建:Bean标签 5.6.5 设置属性值标签 5.6.6 获取属性值标签 5.7 JSP的标准标签库(JSTL) 5.7.1 如何使用JSTL 5.7.2 条件标签 5.7.3 循环标签 5.8 小结 第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和下载 第13章 国际化 第14章 Struts 2的标签库 第15章 Struts 2对AJAX的支持 第16章 用Struts 2实现注册登录系统 第3篇 Hibernate篇 第17章 Hibernate的Helloworld程序 第18章 配置Hibernate 第19章 Hibernate的会话与O/R映射 第20章 Hibernate的查询与更新技术 第21章 Hibernate的高级技术 第4篇 Spring篇 第22章 Spring的Helloworld程序 第23章 反向控制(Ioc)与装配JavaBean 第24章 Spring中的数据库技术 第25章 Spring的其他高级技术 第5篇 综合实例篇 第26章 Struts 2与Hibernate、Spring的整合 第27章 网络硬盘 第28章 论坛系统

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧