重定向URL

重定向的原因有哪些?【1】网址变更了【2】权限不够

【1】网址变更了

【举例】以google为例,之前我们可以访问www.google.cn,但是后来Z.F不让我们访问它了,那么google公司为了避免用户无法访问google的搜索引擎,就做了1个引导用户的跳转。

当你在浏览器内输入www.google.cn,此时显示如下图:

这里引导用户去点击中心区域的图片,并且你看,在图片内也做了比较负责任的说明“请收藏我们的网址:google.com.hk”

当你点击了中心区域的图片,浏览器此时会显示“https://www.google.com.hk/webhp?hl=zh-CN&sourceid=cnhp”。【这串URL就是重定向了】

【2】权限不够

【举例】清空本地的cookies和缓存,访问http://www.lofter.com/uappsetting 试试看什么效果

试出来下面这个效果没?【下图的地址栏内的这串URL就是重定向了】

重定向在HTTP状态码内是3XX,具体可以参考别人的这篇文档:http://www.cnblogs.com/cathsfz/archive/2012/06/19/2553431.html

这篇文档非常好,摘录其中的1、2条摆在这里如下:

3xx


301 Moved Permanently

永久性重定向。目标由 header 的 Location 字段给出,同时 body
中也应该有指向目标的链接。新请求使用的方法应该和原请求的一致。如果用户使用 HEAD 和 GET 以外的方式发起原请求,客户端在遇到 301
Moved Permanently
 后应当询问用户是否对新的 URI 发起新请求。

302 Found

临时性重定向。

这应该是浏览器实现最不符合标准的一个状态码了。理论上,除了临时性这一点,302
Found
 跟 301 Moved
Permanently
 应该是完全一样的。然而实质上,很多浏览器在遇到 302
Found
 后就会使用 GET 去请求新的
URI,而无论原请求使用的是何种方法。由于这种现象的普遍存在,使得这成为了一个与书面标准相违背的事实标准,新的客户端在实现时很难选择应该遵守哪一个标准,所以
RFC 2616 专门新增了 303 See Other 和 307 Temporary
Redirect
 两个状态码来消除二义性。

303 See Other

临时性重定向,且总是使用 GET 请求新的 URI。

304 Not Modified

如果客户端发起了一个「条件 GET」,同时资源确实没被修改过,那么服务器端就应该返回 304
Not Modified
,同时 body 不包含任何内容。

所谓的「条件 GET」,是指 GET 的 header
带上了 If-Modified-Since 或 If-None-Match 字段。这两个
header 就是「条件」,如果条件符合了 GET 就应该正常执行,否则就应该返回 304
Not Modified
,以便告诉客户端它想要请求的资源在上一次请求之后没有被更新过,客户端可以继续使用之前的版本。

307 Temporary Redirect

临时性重定向,且总是使用原请求的方法来进行新请求。

重定向URL

时间: 2024-10-09 17:14:27

重定向URL的相关文章

haproxy配置直接重定向url

在邮件列表看到有个人问haproxy能否在接到一个请求时选择一个后端服务器,然后301重定向url .主要原因是他有5个1G的出口,这样就能充分利用其带宽.测试了一下是可以的 frontend free        bind *:80        default_backend lvs2 backend lvs2 mode http option forwardfor header ORIG_CLIENT_IP server free174 10.253.3.16:8081 redir ht

【转】PHP获取重定向URL的几种方法

有时候我们会在开发中,经常会遇到有URL 301或 302重定向的情况,这时候我们可能需要获取重定向之后的url,下面我们介绍一下几种获取重定向url的方法: 1.用get_headers函数php自带的get_headers函数可以获取服务器响应一个HTTP请求所发送的所有标头,我们可以尝试用该函数实现. function get_redirect_url($url){ $header = get_headers($url, 1); if (strpos($header[0], '301′)

nginx 配置web 虚拟文件夹 而且codeIgniter,thinkphp 重定向url 地址

nginx 配置虚拟文件夹而且url 重定向 server { #侦听80port listen 8090; #定义使用www.xx.com訪问 server_name 127.0.0.1; #设定本虚拟主机的訪问日志 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /home/lxy/www/cs/; #定义服务器的默认站点根文件夹位置 #默认请求 location / { index

Apache重定向URL

(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号; (2)然后再在httpd.conf中书写如下规则在apache的配置文件中新增: RewriteEngine onRewriteRule ^/(.*).(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|mp3|wav)$ https://abc.com/$1.$2 [

Nginx SSL 结合Tomcat 重定向URL变成HTTP的问题

http://www.siven.net/posts/d925bb5d.html *********************************************** 问题描述 由于要配置服务器(Nginx + Tomcat)的SSL的问题(Nginx同时监听HTTP和HTTPS),但是,如果用户访问的是HTTPS协议,然后Tomcat进行重定向的时候,却变成了HTTP. 逐步实践过程 在网上找了一些资料,有些是通过修改Nginx配置即可解决,也有只对Tomcat配置进行调整解决的-

JSTL核心标签库——重定向URL处理标签、网页导入标签

<c:redirect>重定向标签 相当于HttpServletResponse的sendRedirect()方法. <%@page contentType="text/html" pageEncoding="UTF-8" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html&

Java 获取网络重定向URL(302重定向)

方法1: 1 import java.net.HttpURLConnection; 2 import java.net.URL; 3 4 import org.junit.Assert; 5 import org.junit.Test; 6 7 public class GetRedirectUrlTest { 8 @Test 9 public void test_getRedirectUrl() throws Exception { 10 String url="http://www.baid

解析http302重定向url

bool urlparse(const u_char* data,u_int len) { ip_header *ih; udp_header *uh; tcp_header *th; u_short sport,dport; int ip_len = 0; ih = (ip_header *)(data+0xE); ip_len = (ih->ver_ihl & 0xf) * sizeof(unsigned long); th = (tcp_header *) ((u_char*)ih +

linux内核netfilter实现url重定向

url_redirect.c: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81