从HTTP状态 301,302,200 来看页面跳转

301和302 Http状态有啥区别?

301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:

301 redirect: 301 代表永久性转移(Permanently Moved),

302 redirect: 302 代表暂时性转移(Temporarily Moved ),

当然 Http 状态 200 标示没有任何问题发生。

 

这两种转移在使用的时候有啥好处或者问题?

301 重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

302 重定向是临时性转移。

在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。

研究搜索引擎优化(SEO)的人,应该都知道,301,302 使用不当,或者灵活使用会有不错的效果的,比如参看下面文章:

302转向与网址劫持

301转向和网址规范化

301重定向的实现方法
51window提供的301转向的代码
一个网站十几个域名的重定向经验谈
几个常用的301重定向

 

 

如果是运维人员,配置WEB服务器的一些设置就可以实现跳转,比如下面一些关于IIS实现重定向的文章

将请求重定向到文件、目录或程序 (IIS 6.0)

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/fbcccfce-6695-4f92-bd55-869d85ff49fb.mspx?mfr=true

重定向参考 (IIS 6.0)

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true

其他WEB服务器也可以通过设置实现跳转,我就不罗列了。

 

 

从技术人员来说我们比较常用的跳转方法有以下几种:

我们使用 Fiddler 工具来监控的下面提到的几种方法,看跳转过程中HTTP状态码是301?302?200?:

 

方法1:Response.Redirect("Test.aspx");

状态码 301  临时性跳转

 

方法2:<meta http-equiv="refresh" content="5; URL=Test.aspx" />

meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。

 

方法3:Server.Transfer("Test.aspx");

这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。

 

方法4:URLRewrite

这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。

 

没有一种是301跳转。也就是上面几种跳转方式都用不到301跳转的好处。

 

使用301跳转有啥好处呢?

SEO(搜索引擎优化)中提到一点:如果我们把一个地址采用301跳转方式跳转的话,搜索引擎会把老地址的PageRank等信息带到新地址,同时在搜索引擎索引库中彻底废弃掉原先的老地址。

 

如何编码实现301跳转呢?

Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","...");

这里的 ... 表示你要跳转去的页面。

 

 

参考资料:

301永久重定向实现方式及302重定向

 
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
首先,需要明确一下什么是 AJAX,以及它与传统的表单提交有什么不同。AJAX(Asynchronous JavaScript and XML)是一种基于JavaScript和XML技术的异步数据交互方式,可以实现在不刷新页面的情况下向服务器发送请求并获取响应数据。与传统的表单提交方式不同,AJAX不需要整个页面重新加载,从而提高用户体验。 接下来,我们来看一下如何使用 AJAX 来实现登录跳转功能。 1. 在 HTML 页面中添加一个表单,用于用户输入账号和密码,并添加一个按钮用于提交表单。 ```html <form id="login-form"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br><br> <button type="submit">登录</button> </form> ``` 2. 在 JavaScript 中使用 AJAX 发送登录请求,并获取服务器返回的数据。 ```javascript var form = document.getElementById("login-form"); form.addEventListener("submit", function(event) { event.preventDefault(); // 阻止表单提交 var xhr = new XMLHttpRequest(); xhr.open("POST", "/login"); // 发送 POST 请求到 /login 接口 xhr.setRequestHeader("Content-Type", "application/json"); // 设置请求头 xhr.onreadystatechange = function() { if (xhr.readyState === 4) { // 请求完成 if (xhr.status === 200) { // 请求成功 var response = JSON.parse(xhr.responseText); if (response.success) { window.location.href = "/home"; // 登录成功,跳转到 /home 页面 } else { alert(response.message); // 登录失败,弹出错误信息 } } else { alert("请求失败:" + xhr.statusText); // 请求失败,弹出错误信息 } } }; var data = { // 构造请求参数 username: form.username.value, password: form.password.value }; xhr.send(JSON.stringify(data)); // 发送请求 }); ``` 在上面的代码中,我们使用 XMLHttpRequest 对象发送了一个 POST 请求到 /login 接口,同时设置了请求头为 application/json。在请求完成后,我们判断了请求返回的状态码和响应数据,并根据返回的数据来判断登录是否成功。如果成功,则使用 window.location.href 跳转到 /home 页面,否则弹出错误信息。 需要注意的是,为了防止表单默认的提交行为,我们在表单的 submit 事件上使用了 event.preventDefault() 方法来阻止表单的默认提交行为。 以上就是一个简单的使用 AJAX 实现登录跳转功能的示例。需要注意的是,这只是一个初级问题,实际开发中还需要考虑很多其他因素,比如安全性、用户体验等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈俊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值