网络原理 - HTTP / HTTPS(3)——http响应

目录

[一、认识 "状态码"(status code)](#一、认识 “状态码”(status code))

常见的状态码

[(1)200 OK](#(1)200 OK)

[(2)404 Not Found](#(2)404 Not Found)

[(3)403 ForBidden](#(3)403 ForBidden)

[(4)405 Method Not Allowed](#(4)405 Method Not Allowed)

[(5)500 Internal Server Error](#(5)500 Internal Server Error)

[(6)504 GateWay TimeOut](#(6)504 GateWay TimeOut)

[(7)302 Move temporarily](#(7)302 Move temporarily)

[(8)301 Moved Permanently](#(8)301 Moved Permanently)

[(9)418 I am a teapot(彩蛋)](#(9)418 I am a teapot(彩蛋))

(10)状态码分类图

[二、认识响应 "报头"(header)](#二、认识响应 “报头”(header))

[三、认识响应 "正文"(body)](#三、认识响应 “正文”(body))


一、认识 "状态码"(status code)

状态码表示访问一个网页的结果,是成功,还是失败,还是一些其他情况,状态码有很多,如图:

上面这些状态码并不需要全部记住,只需记住一些常见的即可,下面介绍一些常见的状态码。

常见的状态码

(1)200 OK

表示访问这个页面成功了,一切顺利。我们随便抓取一个包,很多都是200的状态码,如图:

(2)404 Not Found

访问的资源找不到。我们现在给搜狗的域名后面加abc.html(带层次的文件路径),如图:

出现了404,意思是访问的资源找不到;有的网页会把这个界面做的好看一点,有的就会是版本404,像B站的404页面就具有二次元风格,如图:

(3)403 ForBidden

要访问的资源没有权限。例如访问别人gitte上的私人仓库,就会出现403。如图,访问一个别人的私有云:

(4)405 Method Not Allowed

你的服务器只支持GET方法的请求。但你发了个POST方法的请求,就会出现405。

(5)500 Internal Server Error

服务器内部错误(服务器挂了);在外面的网站很难遇到,咱们自己写的服务器很容易遇到。

(6)504 GateWay TimeOut

访问服务器超时,可能是服务器挂了,也可能是网络挂了

(7)302 Move temporarily

重定向(临时重定向,不方便缓存);指的是我明明访问的是A网站,但A网站会告诉你,你去访问B网站,浏览器就会自动跳转到B网站。

这个类似以前手机的呼叫转移 ,因为以前的漫游费很贵,要是在不同省份就会换成当前省份的手机号码,但是换了手机号后,朋友亲人怎么知道我换了手机号,要一个一个电话打给他们吗?当然不是,我们可以整一个 "呼叫转移" 业务,这样朋友亲人们打的电话还是我以前的旧号码,但是一位办了 "呼叫转移" 业务,所以实际上会转到我现在新的手机号码,这样就不用那么麻烦了,朋友亲人依然可以联系到我

而这里的重定向,可以运用在网页更新域名 的时候使用,因为更新域名前已经积攒了一些老用户,老用户不知道更新了域名,依然会使用老的域名,这时就会使用到重定向,即使老用户访问的是旧域名,还是可以通过重定向,访问到更新后的域名

有重定向的响应报文中,用 Location 描述重定向要跳转的网页在哪里

下面抓取是重定向的数据包,访问码云的登陆登录页面:https://gitee.com/login

header中的Location是 https://gitee.com/,接下来浏览器就会自动发送GET请求,获取 https://gitee.com/

(8)301 Moved Permanently

永久重定向。浏览器会把重定向的结果记录下来,后续再次访问,就会直接访问重定向的目标地址,不必再多跳转一次了(如果是临时重定向,就不太方便缓存)。

(9)418 I am a teapot(彩蛋)

我是一个茶壶(杯具),是一个彩蛋 。是设计HTTP协议的大佬,开的一个玩笑;很多程序猿也会在代码上搞类似的彩蛋(苦中作乐),但我们实际工作中,千万不要这么搞,因为商业产品往往是很严肃的,即使对产品本身逻辑没有什么影响,但指不定哪天,就会背刺你一下,就这么一下,很可能会导致我们丢饭碗;在前端,比较出名的开源库:Ant Design 组件库,就有类似的严重失误,感兴趣可以在网上搜一下。

(10)状态码分类图


二、认识响应 "报头"(header)

响应报头和请求报头的格式基本一致,类似 Content-Type 和 Content-Length 等属性也和请求中的含义一致。

这些属性的含义可以参考我的上一篇文章:网络原理 - HTTP / HTTPS(2)------http请求-CSDN博客

响应中的 Content-Type 常见取值有以下几种:

text/html : body 数据格式是 HTML

• text/css :body 数据格式是 CSS

• application/javascript :body 数据格式是 JavaScript

• application/json :body 数据格式是 JSON

关于 Content-Type 的详细情况:https://developer.mozilla.org/enUS/docs/Web/HTTP/Basics_of_HTTP/MIME_types


三、认识响应 "正文"(body)

正文(body)的具体格式取决于报头中的Content-Type,body的格式我上篇文章有,可以参考:网络原理 - HTTP / HTTPS(2)------http请求-CSDN博客


都看到这了,点个赞再走吧,谢谢谢谢谢

相关推荐
EasyDSS36 分钟前
国标GB28181-2022平台EasyGBS:安防监控中P2P的穿透方法
网络协议·php·音视频·p2p
网安墨雨1 小时前
常用网络协议
网络·网络协议
Tlzns1 小时前
Linux网络——UDP的运用
linux·网络·udp
黑客老陈1 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
HSunR3 小时前
计算机网络
网络·计算机网络
ZoeLandia3 小时前
WebSocket | 背景 概念 原理 使用 优缺点及适用场景
网络·websocket·网络协议
南七澄江3 小时前
各种网站(学习资源及其他)
开发语言·网络·python·深度学习·学习·机器学习·ai
Crossoads7 小时前
【汇编语言】端口 —— 「从端口到时间:一文了解CMOS RAM与汇编指令的交汇」
android·java·汇编·深度学习·网络协议·机器学习·汇编语言
诸葛悠闲7 小时前
SOME/IP 协议详解——信息格式
网络协议
gywl10 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos