【网络原理】HTTP响应详解|认识状态码|200 OK|404 Not Found|403 Forbidden|302 Move temporarily|301 Moved Permanently

目录

 认识“状态码”

200 OK

404 Not Found

403 Forbidden

405 Method Not Allowed

500 Internal Server Error

504 Gateway Timeout

302 Move temporarily

理解"重定向"

301 Moved Permanently

状态码总结


💡推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站


 认识“状态码”

描述了这次HTTP请求是否成功,以及失败的原因,HTTP比较早,当年还没有成熟的“异常”这样的机制去参考,也仍然是通过状态码来表示错误的形态

每个状态码都会用一个/一组单词来描述


200 OK

表示访问成功

抓包抓到的⼤部分结果都是200,例如访问搜狗主⻚

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 10 Jun 2021 06:07:27 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Set-Cookie: black_passportid=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; do
Pragma: No-cache
Cache-Control: max-age=0
Expires: Thu, 10 Jun 2021 06:07:27 GMT
UUID: 80022370-065c-49b0-a970-31bc467ff244
Content-Length: 14805

<!DOCTYPE html><html lang="cn"><head><meta name="viewport" content="width=device
......

404 Not Found

客户端请求的资源在服务器这边不存在

这里的资源就是URL(ip+端口+路径+查询字符串...)中的路径,服务器上管理的某个资源

HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 10 Jun 2021 05:19:04 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Content-Length: 564

<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

403 Forbidden

客户端的权限不足,被禁止访问了,有的页面通常需要用户具有一定的权限才能访问(登陆后才能访问),如果用户没有登陆直接访问,就容易见到403

eg:查看码云的私有仓库,如果不登陆,就会出现403

HTTP/1.1 403 Forbidden
Date: Thu, 10 Jun 2021 06:05:36 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=60
Server: nginx
Vary: Accept-Encoding
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Expires: Sun, 1 Jan 2000 01:00:00 GMT
Pragma: must-revalidate, no-cache, private
Cache-Control: no-cache
Set-Cookie: oschina_new_user=false; path=/; expires=Mon, 10 Jun 2041 06:05:40 -0
Set-Cookie: gitee-session-n=ejEvQnYza2RlaXh0KzRaN3QrNWI2TzdLOE03bU5UNjRKdGlqWUFk
X-Request-Id: 82a740fb98838c305c4cc597ab6f48c0
X-Runtime: 0.020299
Content-Length: 7092

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>您的访问受限 (403)</title>
.....

405 Method Not Allowed

 请求中(GET,POST,PUT,DELETE...)的方法,服务器不支持,这个简单了解即可

服务器的代码逻辑就需要处理上述请求,假如服务器没有实现对应的逻辑,比如只实现了处理GET,没实现处理POST,此时你发送POST就可能得到405


500 Internal Server Error

服务器内部错误,一般是服务器的代码执行过程中遇到一些特殊情况(服务器异常崩溃)(比如:空指针异常,下标越界异常...)会产生这个状态码,咱们平时常⽤的⽹站很少会出现500(但是偶尔也能看到)

现在的互联网产品,讲究一个“高可用”,可用性要达到99.99% 这样的程度,一年下来,只有几分钟的时间不可用,高可用的核心思想:冗余,你访问的服务器不是一台,而是很多台,甚至这些服务器会分布在多个机房,多个地区,甚至多个国家,哪怕其中有一台或者多台机器挂了,不影响,其他的机器还能提供服务,仍然可以正常进行使用

500 后面自己写代码,就会经常涉及到,如果你自己的代码 500 了咋办->查看服务器的日志,都会明确告诉你是哪个代码出现异常了,异常原因


504 Gateway Timeout

服务器访问超时了,这种问题常见于”服务器比较繁忙的情况“

Gateway就是网关,要访问的服务器,不止一台,可能是很多,会有一个入口服务器,就是称为网关服务器


302 Move temporarily

临时重定向(临时的从旧地址转向新地址)

理解"重定向"

就相当于⼿机号码中的"呼叫转移"功能.

⽐如我本来的⼿机号是186-1234-5678,后来换了个新号码135-1234-5678,那么不需要让我的朋友知道新号码,只要我去办理⼀个呼叫转移业务,其他⼈拨打186-1234-5678,就会⾃动转到135-1234-5678上

访问某个地址的时候,访问的是旧地址,自动跳转到新地址上

大部分网站是这么实现的,也有的网站不是通过302来实现的,最需要体现的一个就是header,描述了接下来要跳转到哪个地址上


301 Moved Permanently

永久重定向(访问的旧地址和新地址之间的映射关系,就固定了),此时浏览器就会缓存这样的结果,后续再次访问旧地址的时候,浏览器就可以直接构造新地址的请求,就减少一次HTTP访问了(无需跳转)

如果使用 302 作为重定向,临时重定向,旧地址是否要重定向,以及重定向到哪里, 就是可变的,因此每次访问旧地址,都需要使用旧地址访问服务器,获取到 响应的 Location 属性再进行跳转

啥时候使用 301?

服务器迁移了,域名更新了.….比如本来服务器 ip 是 1.2.3.4;后来换了个服务器,5.6.7.8就可以给 1.2.3.4 这个旧服务器的相应设置成 301 重定向

但是像搜狗搜索这里跳转页面涉及到的 重定向,这种情况就使用 302 作为重定向,每个广告,最终跳转到哪里,结果都是不一定的,不应该进行缓存


状态码总结

200 成功

404 资源不存在

403 权限不够

405 方法不支持

500 服务器出现问题

504 服务器返回结果超时

302 临时重定向

301 永久重定向

  • 49
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

深鱼~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值