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

【JavaEE初阶】HTTP响应报文

目录

📕引言

🎍200 OK

🍀404 Not Found

🎄403 Forbidden

🌴405 Method Not Allowed

🎋500 Internal Server Error

🌳504 Gateway Timeout

🌲302 Move temporarily

🎍301 Moved Permanently

🍀状态码小结

❄Header


📕引言

关于HTTP响应报文,大部分都与请求报文类似,这里主要介绍一下响应报文里面的 “状态码” (status code)

状态码就描述了这次HTTP请求是否成功,失败的原因

这里的状态码很多,只需要掌握以下常见的状态码即可

🎍200 OK

这是一个最常见的状态码, 表示访问成功.

抓包抓到的大部分结果都是 200

通过Fiddler抓取必应搜索页面:

🍀404 Not Found

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

前面讲到url中,是由IP+端口+路径+查询字符串......,这里的路径就是服务器上管理的某个资源

所谓的404就是你访问的url中的路径,这个路径所代表的资源在服务器这边不存在。

例如:打开哔哩哔哩上的某个视频:

红色方框中就表示我要访问的哔哩哔哩上的某个具体的视频资源

如果说我在这个资源路径随便修改,很可能就会得到一个404这样的响应:

有的网站做的比较简陋,就会直接显示404 Not Found,这里只是b站做得比较好

在抓包结果中也能看到:

得到的响应内容:

🎄403 Forbidden

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

例如:我退出之后访问码云上的私有仓库

抓包的响应:

🌴405 Method Not Allowed

这个可以简单了解。

表示请求中的方法,服务器不支持

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

🎋500 Internal Server Error

服务器出现内部错误. 一般是服务器的代码执行过程中遇到了一些特殊情况,出bug(服务器异常崩溃)会产生这个状态码.

例如出现一些空指针异常,下标越界异常......

咱们平时常用的网站很少会出现 500 (但是偶尔也能看到)

🌳504 Gateway Timeout

当服务器负载比较大的时候, 服务器处理单条请求的时候消耗的时间就会很长, 就可能会导致出现超时的情况.

这种情况在双十一等 “秒杀” 场景中容易出现, 平时不太容易见到.

🌲302 Move temporarily

表示临时重定向.

理解 “重定向”

就相当于手机号码中的 “呼叫转移” 功能. 比如我本来的手机号是 132-1234-5678, 后来换了个新号码135-1234-5678, 那么不需要让我的朋 友知道新号码, 只要我去办理一个呼叫转移业务, 其他人拨打 132-1234-5678 , 就会自动转移到 135-1234-5678 上.

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

登录:浏览器收到302之后,自动跳转的

登录码云通过Fiddler抓取登录响应:

后面的单词只是描述,只要是302即可。

注意:响应中的Header里面有一个Location,这是302响应中最需要体现的一个Header,描述了接下来要跳转到哪个地址上。

本次跳转就是要跳转到码云的主页上面:

在抓包结果中可以看到在302重定向之后,紧接着在下面发起了请求码云主页的请求,从302收到响应到发出码云页面请求这个过程不需要手动干预,由浏览器自动完成。

🎍301 Moved Permanently

永久重定向. 当浏览器收到这种响应时, 后续的请求都会被自动改成新的地址.

永久重定向与临时重定向:

🍀状态码小结

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。

响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):

❄Header

Header中的Content-Length,Content-Type和请求中的含义一致,不在过多讲述

补充:

构造HTTP请求:

  • 通过form表单构造HTTP请求
  • form发送GET请求
  • form发送POST请求
  • 通过ajax构造HTTP请求
  • 发送GET请求
  • 发送POST请求
  • 通过Java scoket构造HTTP请求

这些关于前端方面的知识,后续在一一讲述

除了上述通过代码构造HTTP请求的方式,还可以通过工具来构造HTTP请求。这种方式更简单,更方便,尤其是需要做一些测试类的工作。

工具有很多,这里讲述postman!

下载:Postman API Platform | Sign Up for Free


http://www.kler.cn/news/283984.html

相关文章:

  • 【C++STL详解(十三)】unordered系列容器的介绍与使用
  • linux驱动--中断等待队列
  • 在docker镜像中使用java生成图片,图片中文字乱码,将文件存入虚拟机,然后打压缩包,文件名乱码
  • LLaMA-Factory微调入门个人重制版
  • 基于Python的热门旅游景点数据分析系统【python-爬虫-大数据定制】
  • axios取消请求CancelToken的原理解析及用法示例
  • C语言练习题 包含min函数的栈
  • EmguCV学习笔记 VB.Net 8.2 分水岭法 watershed
  • 谈谈 Python 可迭代对象的实现
  • udp可靠传输中ACK与NACK的选择
  • Memcached stats sizes 命令
  • OS库学习之rename(函数)
  • python数据分析——网络爬虫和API
  • 图灵盾IOS SDK
  • 数据结构之拓扑排序
  • 【王树森】RNN模型与NLP应用(6/9):Text Generation(个人向笔记)
  • 【C#】属性的声明
  • Elasticsearch中修改mapping的字段类型该怎么操作
  • Go语言结构快速说明
  • JAVA后端框架--【Mybatis】
  • 【单片机原理及应用】实验:数字秒表显示器
  • ubuntu录屏解决ubuntu下无法播放MP4格式文件的方法
  • 【栈】| 力扣高频题: 基本计算器二
  • 忘掉 Siri 吧:苹果可能会推出拥有自己AI“个性”的机器人设备|TodayAI
  • linux信号处理机制基础(下)
  • 【 WPF 中常用的 `Effect` 类的介绍、使用示例和适用场景】
  • Qt Creator 配置pcl1.14.1
  • 物理机安装Centos后无法连接网络(网线网络)怎么办?-呕心沥血总结版-超简单
  • CSRF漏洞的预防
  • CMake基本语法大全