HTTP响应
我们的HTTP响应格式,之前已经学习过了!
我们知道每次响应都会在第一行状态行中返回响应的信息!
而最重要的信息就是状态码,不同的状态码表示不同的响应状态,对于请求的结果是否失败或者成功或者出现了什么bug都可以通过这个状态码来体现!
状态码
状态码一般由3位十进制数据构成!
不同数字开头的状态码有不同的含义!
从1开头到5开头分别代表不同类别的状态码!
上面就是状态码的分类及其每个分类含义!
我们主要介绍几个常见的状态码信息!
200 OK
状态码200 OK表示浏览器获取到了响应结果,并且一切顺利!
如果我们我们的网络啥的没有问题基本上抓取到都是200 OK这个状态码!
301 Moved Permanently
在请求的 URL 已被移除时使用。
响应的 Location 首部中应该包含 资源现在所处的 URL。除非额外指定,否则这个响应也是可缓存的.
就是直接跳转到该URL!
302 Found
请求的资源现在临时从不同的 URI 响应请求。
由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。客户端应该使用 Location 首部给出的 URL 来临时定位资源。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
Location记录了重定向后的网页URL!
状态码301和302作用有点类似!
301重定向是永久跳转到location而302只是暂时重定向!
401 Unauthorized
表示这个请求需要用户验证!
402 Payment Required
此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用!
403 Forbidden
如果你访问的资源没有权限,服务器就会返回403 Forbidden这个状态码!
但我们访问bilibili下的/1.html网页时,因为压根就没有这个网页,资源不存在就会触发Not found 但是bilibili设计的比较卡哇伊,返回了一个动漫给你看!
可以看到当我们访问一个不存在的网站时,服务器就会返回一个404 Not Found状态码!
405 Method Not Allowed
前面我们已经学过了GET和HOST等方法!
有些服务器只能允许用GET方法请求访问,如果用POST方法进行请求服务器就会返回这个405 Method Not Allowed响应!
这样的状态码比较难抓包,一般在我们自己的服务器构造请求和响应就很常遇到这个响应!也就定位了bug!
418 I’m a teapot
HTTP文档指出:当客户端给一个茶壶发送泡咖啡的请求时,茶壶就返回一个418错误状态码,表示“我是一个茶壶”。
这就是一个菜单,程序员的浪漫!
就是可以设置某一时刻你访问的某一个网站,该网站返回的响应和此前的不一样,就有点惊喜,也可能是惊喜,还是少写几行代码舒服!!!
500 Internal Server Error
服务器出现了重大故障!服务器出bug了!
这个状态码也比较少见,在后面自己编写服务器时会出现!
504 Gateway Timeout
服务器繁忙,它们在 等待另一服务器对其请求进行响应时超时了!
总结
我们通过状态码的开头就可以知道该响应信息当前状态!
100开头是接收的请求正在处理!
200开头是请求处理成功!
300开头是重定向状态!
400开头是客户端的问题!
500开头是服务器的问题!