关于R e s p o n s e . R e d i r e c t

时间:2022-09-21 01:58:46
下面是《ASP 3 高级编程》关于R e s p o n s e . R e d i r e c t一段原文:(p58 电子版)

A S P的一个很有用的特点就是使用户能够从一个A S P网页转向到另一个网页( A S P或H T M L ),或另一个源文件(例如一个Z I P文件或文本文件)。这对用户来说是透明的,实际上是浏览器做这个工作。当使用R e s p o n s e . R e d i r e c t方法来载入一个新的网页时,实际上是发送回一个特殊的HTTP 报头到客户。此报头为:
HTTP://1.1 302 Object Moved
Location /newpath/newpage.asp

浏览器读到此报头信息,并按L o c a t i o n值的指示载入页面。这在功能上与在We b页中使用客户端H T M L < M E TA >标记相同,例如:
<meta http-equiv="Refresh" content="0,url=/newpath/newpage.asp">

这带来的一个问题是,服务器与用户之间的代理服务器可能会提供它自己的包含与新页面的链接的消息,而不是直接载入新页面。而且浏览器根据厂商和版本可能做同样的工作。这就去除了假定的透明,而且对用户来说一直收到的是错误信息,则对你的站点的访问变得比较麻烦。


从“这带来的一个问题是,”我就看不明白了,请各位朋友帮忙解释一下。

18 个解决方案

#1


我的理解是

目前的网页转向是通过浏览器完成的,假定浏览器与服务器直接连接

如果代理服务器得到新页面转移消息后,加入他自己的内容;或者浏览器以后功能修改了,造成浏览器不能正确解释页面的转向
从而造成不能正常访问站点

#2


chonboy(一只来自南方的羊):谢谢!你说的:
如果代理服务器得到新页面转移消息后,加入他自己的内容;或者浏览器以后功能修改了,造成浏览器不能正确解释页面的转向
从而造成不能正常访问站点
什么意思?

#3


用server.Transfer "you.asp"

#4


daoke(我还活着):谢谢,我知道用server.Transfer "you.asp"。

我想弄明白的是我问的问题。现在我怀疑是翻译的问题,谁有《ASP 3 高级编程》英文版?

#5


GZ

#6


就是代理服务器从中作梗,不把302传过来,而自己给了一个页面写着:点击这里到下一页

#7


迷惑中

#8


UP

#9


所以呀,在ASP3.0中 增加了server.transfer 和server.execute两个方法,很有效的改变了原来response.redirect 的必须和浏览器进行大量交换并验证的工作,而只需一次,剩下的工作都是用服务器来完成的

#10


文中应该说的是本地浏览器或者代理服务器缓存的问题

#11


谢谢各位,俺水平比较凹,俺的问题还不清楚。

julyclyde(从ASP转向CPP,到处都是P):代理服务器怎么从中作梗?详细些好吗?

liuqinyi(宝贝):请把“所以呀,……”前边原因讲出来。

#12


加20分

#13


自己UP一下

#14


怎么从中作梗?怎么都可以!反正你不知道它给你的页面是不是真的

#15


也就是说服务器和代理服务器都可能会提供自己的包含与新页面的链接的消息,这样的话,HTTP 报头传到客户端时,就不再是最初的形式了,而是多了几项,那自然这个报头就不对了,也就会出错

#16


jtmoon(逍遥小贼):看来还是俺的基础太差,介绍类似HTTP 报头等基础知识的书有什么?

一会就结贴

#17


你可以去网上找找《计算机网络》这本书,或者有本《TCP/IP详解》的,都可以,

#18


结贴!

#1


我的理解是

目前的网页转向是通过浏览器完成的,假定浏览器与服务器直接连接

如果代理服务器得到新页面转移消息后,加入他自己的内容;或者浏览器以后功能修改了,造成浏览器不能正确解释页面的转向
从而造成不能正常访问站点

#2


chonboy(一只来自南方的羊):谢谢!你说的:
如果代理服务器得到新页面转移消息后,加入他自己的内容;或者浏览器以后功能修改了,造成浏览器不能正确解释页面的转向
从而造成不能正常访问站点
什么意思?

#3


用server.Transfer "you.asp"

#4


daoke(我还活着):谢谢,我知道用server.Transfer "you.asp"。

我想弄明白的是我问的问题。现在我怀疑是翻译的问题,谁有《ASP 3 高级编程》英文版?

#5


GZ

#6


就是代理服务器从中作梗,不把302传过来,而自己给了一个页面写着:点击这里到下一页

#7


迷惑中

#8


UP

#9


所以呀,在ASP3.0中 增加了server.transfer 和server.execute两个方法,很有效的改变了原来response.redirect 的必须和浏览器进行大量交换并验证的工作,而只需一次,剩下的工作都是用服务器来完成的

#10


文中应该说的是本地浏览器或者代理服务器缓存的问题

#11


谢谢各位,俺水平比较凹,俺的问题还不清楚。

julyclyde(从ASP转向CPP,到处都是P):代理服务器怎么从中作梗?详细些好吗?

liuqinyi(宝贝):请把“所以呀,……”前边原因讲出来。

#12


加20分

#13


自己UP一下

#14


怎么从中作梗?怎么都可以!反正你不知道它给你的页面是不是真的

#15


也就是说服务器和代理服务器都可能会提供自己的包含与新页面的链接的消息,这样的话,HTTP 报头传到客户端时,就不再是最初的形式了,而是多了几项,那自然这个报头就不对了,也就会出错

#16


jtmoon(逍遥小贼):看来还是俺的基础太差,介绍类似HTTP 报头等基础知识的书有什么?

一会就结贴

#17


你可以去网上找找《计算机网络》这本书,或者有本《TCP/IP详解》的,都可以,

#18


结贴!