302 found是什么意思_HTTP状态码404是啥意思?

欢迎关注公众号 学习资料不会少

 HTTP状态码

本节介绍HTTP 协议中的 HTTP 状态码(HTTP Stans Code),会对大部分的状态码进行详细的实例讲解。

要了解状态码,应该在实例中去了解状态码的意义,否则很容易忘记。

3.3.1

什么是HTTP状态码

每个HTTP响应报文都会携带一个状态码,用于告诉客户端请求是否成功。状态码是一个3位数字的代码。

HTTP状态码存在于HTTP的响应报文中,其作用是Web服务器用来告诉客户端发生了什么事。

HTTP 响应报文中的第一行,由HTTP 协议版本号、状态码、状态消息3部分组成。状态码用来告诉HTTP客户端 Web 服务器是否产生了预期的 HTTP响应。

3.3.2

状态码分类

HTTP/1. 1 中定义了5类状态码,状态码由3位数字组成,第一个数字定义了响应的类别。

HTTP 状态码被分为5大类,支持如表 3-2 所示的状态码。随着协议的发展,HTTP规范中会定义更多的状态码。

小技巧:假如看到一个状态码 518 而不知道其具体是什么意思,这时候只要知道 518 属于“5XX” (服务器错误)就可以了。

▼表3-2 HTTP1. 1 支持的状态码

状态码

已定义范围

分类

1XX

100~101

信息提示,表示请求已被成功接收,继续处理

2XX

200~206

成功,表示请求已被成功接收、理解、接受

3XX

300~305

重定向,要完成请求,必须要进行更进一步的处理

4XX

400~415

客户端错误,请求有语法错误或请求无法实现

5XX

500~505

服务器错误,服务器未能实现合法的请求

3.3.3

常见的状态码

一般来说,读者只需要了解如表3-3所示的常见的状态码就够了。

▼表3-3 常见状态码

名称

释义

200

OK:服务器成功处理了请求(这个是我们见到最多的)

301/302

Moved Permanently(重定向):请求的URL已移走。Reponse中应该包含一个Location URL,说明自由现在所处的位置

304

Not Modified(未修改):客户的缓存资源是最新的,需要客户端使用缓存

404

Not Found:未找到资源

401

禁止访问

501

Internal Server Error:服务器遇到一个错误,使其无法对请求提供服务

3.3.4

200 (OK)

最常见的状态码就是成功响应状态码200了,它表明该请求被成功地完成,所请求的资源成功地发送回客户端。

如图3-7所示,打开博客园首页后,用Fiddler 抓包可以看到状态码是200。

fb55b365cf5ed39d0997aec3959e55c3.png

▲图 3-7 状态码200

3.3.5

204 (No Content, 没有内容)

返回的HTTP 响应中只有一些 Header和一个状态行,没有实体的主题内容(没有响应Body) 。204状态码的作用如下。

(1) 在不获取资源的情况下了解资源的情况(比如判断其类型)。

(2) 通过查看HTTP响应中的状态码看某个对象是否存在。

(3) 通过查看 Header测试资源是否被修改。

实例:如图3-8所示,启动 Fiddler, 启动浏览器访问ditu.google.cn, 你会捕获到很多204.

355e3a00506d8aef9281689abadb87f5.png

▲图 3-8 状态码204

3.3.6

206 (Partial Content, 部分内容)

206 状态码代表服务器已经成功处理了部分 GET 请求(只有发送GET 方法的 HTTP请求,Web服务器才可能返回206) .

206的应用场景如下。

1.FlashGet、迅雷或者HTTP下载工具都是使用206状态码来实现断点续传的。

2.将一个大文档分解为多个下载段同时下载,比如在线看视频。

实例:如图3-9所示,一些流媒体技术,比如在线视频可以边看边下载,就是使用206 状态码来实现的。

eabdd769adc007844e8d2274bd4b0d85.png

▲图3. 9 状态码206

启动 Fiddler, 然后用浏览器打开“搜狐视频中的绿箭侠”http: //tv.sohu.com/20121011/n354681393.shtml, 然后你在Fiddler中就能看到一堆的206。

1.浏览器发送一个 GET 方法的 HTTP 请求,Header 中包含 Range:bytes=5303296-5336063 (意思就是请求得到5303296~5336063之间的数据)。

2.Web服务器返回一个206的HTTP 响应,Header 中包含Content-Range:bytes 5305296- 5336063/12129376 (表明这次返回的内容范围)。

3.3.7

301 (Moved Permanently)

服务器返回301的时候,表示请求的网页已经永久性地转移到另一个地址。

在如下情况下需要用到301。

1.防止用户输错域名。比如Google 担心用户输错域名,就把其他类似的域名买下来,比如goOgle.com, 然后重定向到www.google.com。

2.网站更换域名。一些网站壮大后,会换个更好的域名。比如京东以前的域名是www.360buy.com,现在的域名是 www.jd.com。

3.有多个权重不错的域名,需要把所有的权重都传递到新域名上,这就需要301重定向了。如果不设置 301, 多个域名绑定在一个主机头上,会被搜索引擎认为是两个相同的站点,不利于网站的排名。绑定的域名越多,内容重复度也就越高,排名越低。

实例:查看京东的老域名跳转到新域名。

启动 Fiddler, 在浏览器中输入www.360buy.com,可以看到跳转过程如图3-10 所示。

95a883997c2a9433aca68f02900ff97c.png

▲图 3-10 状态码301

1.浏览器发送请求访问www.360buy.com,服务器返回301, 并且 Location 是www.jd.com。

2.浏览器会读取Location 中的URL, 自动发送一个新的HTTP请求去访问www.jd.com。

3.3.8

302 (Found)

当我们访问一个 URL的时候,服务器要我们访问另一个资源,这时候浏览器会继续发一个HTTP, 请求访问新的资源。

实例:如图3-11所示,在未登录状态下,直接访问需要登录才能访问的页面,会被服务器返回302, 跳转到登录页面。具体操作步骤如下。

52cf155fc3cc511b04ff44ef022666f9.png

▲图3-11 状态码302

1.启动Fiddler, 打开浏览器,直接在地址栏中输入https: //i.cnblogs.com/。

2.在Fiddler中可以看到服务器返回302, 并且 Location=/user/signin? ReturnUrl=%2f (告诉客户端,新的资源在这里)。

3.浏览器会自动再发送一个新的 HTTP 请求-去访问  http://49.233.108.117:3000/signin

3.3.9

301和302的区别

状态码301和302在语法上是一模一样的,都是在 Location 中返回新的URL.两者的34第3章 HTTP 协议请求方法和状态码

区别在于:

1.301表示旧地址的资源已经被永久地移除了(这个资源不可访问了), 搜索引擎会把权重算到新地址;

2.302表示旧地址的资源还在(仍然可以访问), 这个重定向只是临时地从旧地址跳转到新地址,搜索引擎会把权重算到旧地址。

3.3.10

304 (Not Modified)

304状态码代表上次的文档已经被缓存了,还可以继续使用。

例如打开l论坛首页,会发现很多HTTP响应的状态码都是304, 如图3-12所示。304 的响应是没有Body的。

0e68252789661d38d59e7559238d4ebb.png

▲图3-12 状态码304

如果你不想使用本地缓存,可以用【Ctrl+F5】组合键强制刷新页面。

3.3.11

400 (Bad Request)

状态码400表示客户端请求有语法错误,发送的HTTP请求中的数据有错误(如表单有错误、Cookie有错误)。不能被服务器所理解。

实例:快递查询接口,如果参数不对,服务器会返回400状态码。

如图3-13所示,打开Fiddler, 在浏览器中输入http://www.kuaidi100.com/query?type={%22code%22: %22100%22} 。

cebac66e1005285bb71da1f689550c5a.png

▲图 3-13 状态码400

3.3.12

401 (Unauthorized)

状态码401 是指未授权错误。有些网页采用的是HTTP基本认证(Basic Authentication) ,需要在 HTTP 请求中带上 Authorization Header, 否则服务器会返回状态码401。

3.3.13

403 (Forbidden)

403 状态码表示 Web 客户端发送的请求被Web服务器拒绝了。如果服务器想说明为什么拒绝请求,可以在Body中描述原因。但这个状态码通常表示服务器不想说明拒绝原因。

访问URL:

http: //t2.baidu.com/it/u=1791561788, 200960144&fm=0&gp=0.jpg,

 会被服务器拒绝,并且返回403状态码,如图3-15所示。

560e596b89cbf06598d0cd749ae55fd4.png

▲图 3-15 状态码 403

3.3.14

404 (Not Found)

当你访问一个URL, 这个 URL 的域名是正确的,但是资源不存在,服务器就会返回404状态码,告诉浏览器资源不存在(意味着输错了URL) .

启动 Fiddler, 输入

http://49.233.108.117:3000/8888.Html (888.html 这个文件在服务器上不存在)。

如图3-16所示,我们可以看到Web服务器会返回404状态码,这个404页面是可以自定义的。

9271bac559335c8c1846584b718e3a7e.png

▲图 3-16 状态码 404

3.3.15

500 (Internal Server Error)

状态码500代表服务器内部错误。出现错误的原因有很多,比如代码的错误、数据库连接语句出错、程序内部抛出异常、空指针错误等。

如图3-17所示,当数据库连接不成功的时候,服务器返回500状态码。

3.3.16

503 (Server Unavailable)

状态码503表示服务器暂时不可用。由于服务器维护或者过载,服务器当前无法处理请求;这个状况是临时的,并且将在一段时间以后恢复,如图3-17所示。

b8bdcdcc261b1b9f84f646a428f7bfdb.png

▲图 3-17 状态码 503

往期精彩文章

喜报来了!凡猫学员薪资最高16K!

金融行业软件测试介绍

2020年为什么大家都开始学习自动化测试?

学习测试开发前 你需要掌握的python 代码水平

1万+软件测试人员都在学的精品课程免费送,大家别错过

b9c7497d2e5f7a52bc77e5006cbbdfdb.gif
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值