当前位置: 首页 > news >正文

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

目录

一、认识 “状态码”(status code)

常见的状态码

(1)200 OK

(2)404 Not Found

(3)403 ForBidden

(4)405 Method Not Allowed

(5)500 Internal Server Error

(6)504 GateWay TimeOut

(7)302 Move temporarily

(8)301 Moved Permanently

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

(10)状态码分类图

二、认识响应 “报头”(header) 

三、认识响应 “正文”(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/cssbody 数据格式是 CSS
                • application/javascriptbody 数据格式是 JavaScript 
                • application/jsonbody 数据格式是 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博客


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

相关文章:

  • IPSec VPN
  • Tensorflow2.0笔记 - 自定义Layer和Model实现CIFAR10数据集的训练
  • TCP的十个重要的机制
  • [每周一更]-第92期:Go项目中的限流算法
  • 信创环境ES索引管理脚本:close, delete
  • 优化 Nginx 处理 504 Gateway Timeout 错误
  • 【漏洞复现】WordPress Plugin LearnDash LMS 敏感信息暴漏
  • 即刻体验 | 使用 Flutter 3.19 更高效地开发
  • 【软件工程】详细设计(一)
  • Autodesk AutoCAD 2025 (macOS, Windows) - 自动计算机辅助设计软件
  • 文件操作讲解
  • Golang基础-9
  • 后端前行Vue之路(三):计算属性和监视属性
  • YARN集群 和 MapReduce 原理及应用
  • Git 常用命令集
  • axios 和 cookie 的那些事
  • css布局,左右固定中间自适应实现
  • JavaScript函数式编程(一)
  • Linux快速复制或删除大量小文件
  • miaov-React 最佳入门
  • REST架构的思考
  • spring-boot List转Page
  • TCP拥塞控制
  • vue 个人积累(使用工具,组件)
  • 高度不固定时垂直居中
  • 技术:超级实用的电脑小技巧
  • 理清楚Vue的结构
  • 提醒我喝水chrome插件开发指南
  • 跳前端坑前,先看看这个!!
  • 由插件封装引出的一丢丢思考
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​业务双活的数据切换思路设计(下)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (2)STM32单片机上位机
  • (27)4.8 习题课
  • (安卓)跳转应用市场APP详情页的方式
  • (七)c52学习之旅-中断
  • (万字长文)Spring的核心知识尽揽其中
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Mysql的优化设置
  • (转)Windows2003安全设置/维护
  • .NET Core 项目指定SDK版本
  • .Net IE10 _doPostBack 未定义
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net Remoting常用部署结构
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET中 MVC 工厂模式浅析
  • /usr/bin/env: node: No such file or directory
  • @Autowired @Resource @Qualifier的区别