网络夺命连环问4--说一下HTTP有哪些常用的状态码及使用场景?

本文介绍了HTTP常用状态码,如200、301、302、404和500等,并详细阐述了301永久重定向和302临时重定向的用途及其区别。301用于页面永久性转移,适用于网址结构调整;而302用于暂时性转移,常用于网址劫持。此外,还解析了内部重定向(forward)和外部重定向(redirect)的区别,内部重定向不改变URL且能共享请求参数,而外部重定向涉及两次HTTP请求,URL会发生变化。
摘要由CSDN通过智能技术生成

HTTP 哪些常用的状态码及使用场景?

状态码分类
1xx:表示目前是协议的中间状态,还需要后续请求
2xx:表示请求成功
3xx:表示重定向状态,需要重新请求
4xx:表示请求报文错误
5xx:服务器端错误

常用状态码
101 切换请求协议,从 HTTP 切换到 WebSocket

200 请求成功,有响应体

301 永久重定向:会缓存

302 临时重定向:不会缓存

304 协商缓存命中

403 服务器禁止访问

404 资源未找到

400 请求错误

500 服务器端错误

503 服务器繁忙


HTTP状态码301和302的区别,都有哪些用途?

301重定向:指页面永久性转移,表示为资源或页面永久性地转移到了另一个位置。
用途:网站目录结构的调整,扩展名的改变导致网页地址发生改变,此时用户收藏夹和搜索引擎数据库中的旧地址是一个错误的地址,访问之后会出现404页面,直接导致网站流量的损失。或者是我们需要多个域名跳转至同一个域名。
优点
有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中排名的提升。

302重定向:指页面暂时性转移,表示资源或页面暂时转移到另一个位置。
用途:常被用作网址劫持,容易导致网站降权,严重时网站会被封掉,不推荐使用。302重定向是页面暂时性转移,搜索引擎会抓取新的内容而保存旧的网址并认为新的网址只是暂时的。


外部重定向和内部重定向的区别?

1、内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象,也可以获取到请求中的属性和参数。而外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请求里的参数和属性。
2、内部跳转的url地址栏不会发生变化,外部跳转url则会发生变化。
3、内部跳转无法跳转到工程以外的jsp或者servlet,外部跳转则可以。

forward 和 redirect 的区别?

Forward 和 Redirect 代表了两种请求转发方式:直接转发和间接转发。

直接转发方式(Forward):客户端和浏览器只发出一次请求,Servlet、HTML、JSP 或其它信息资源,由第二个信息资源响应该请求,在请求对象 request 中,保存的对象对于每个信息资源是共享的。

间接转发方式(Redirect):实际是两次 HTTP 请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个 URL 发出请求,从而达到转发的目的。

  • 举个通俗的例子:

直接转发就相当于:“A 找 B 借钱,B 说没有,B 去找 C 借,借到借不到都会把消息传递给 A”;

间接转发就相当于:”A 找 B 借钱,B 说没有,让 A 去找 C 借”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值