Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
已修改HTTP 302重定向_Http_Redirect_Http Status Code 302_Http Status Code 304 - Fatal编程技术网

已修改HTTP 302重定向

已修改HTTP 302重定向,http,redirect,http-status-code-302,http-status-code-304,Http,Redirect,Http Status Code 302,Http Status Code 304,我认为这是不可能的,但我会征求有经验的人的意见 想象一下情况: 客户端发送请求以获取内容A,即www.server.com/content/1 服务器处理请求,并生成重定向链接(每个请求=新链接)。生成重定向链接的过程非常昂贵 服务器向客户端发送找到的响应302。响应包含位置、过期、ETag和上次修改的标题以及超文本的有效负载() 客户端被重定向到新的URL(www.server2.com/c/212123123/1),在那里可以获得内容A 当客户端再次向服务器(www.server.com/c

我认为这是不可能的,但我会征求有经验的人的意见

想象一下情况:

  • 客户端发送请求以获取内容A,即www.server.com/content/1
  • 服务器处理请求,并生成重定向链接(每个请求=新链接)。生成重定向链接的过程非常昂贵
  • 服务器向客户端发送找到的响应302。响应包含位置过期ETag上次修改的标题以及超文本的有效负载()
  • 客户端被重定向到新的URL(www.server2.com/c/212123123/1),在那里可以获得内容A
  • 当客户端再次向服务器(www.server.com/content/1)发送请求时-点1-浏览器使用缓存的302 find并立即从点4(www.server2.com/c/212123123/1)转到URL

    关键是,找到的缓存的302可能已经过时。 预期的行为是,如果自以来进行了修改,则客户端首先使用发送请求,如果不匹配,则使用头发送请求到服务器,该服务器有两个选项:

  • URL是最新的=未修改
  • URL已过期,服务器将重新生成URL并发送新的302找到的
  • 而不是客户:

  • 使用找到的缓存的302(服务器发送304未修改)
  • 使用新的302找到的
  • 问题是:是否可以检查找到的302是否仍然有效,即未修改304的服务器响应或找到新的302的服务器响应?花了很多时间,但不起作用。谢谢