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

[JavaEE初阶]网络协议-状态码

上节回顾

HTTP请求格式:

  • 首行(方法,UR,L版本号)
  • 请求头(header) 由若干个键值对组成
  • 空行(分隔头部和正文)
  • 正文(body)

HTTP响应格式:

  • 首行(版本号 状态码 状态码描述)
  • 响应头(由键值对组成)
  • 空行
  • 正文(body)

四个方法:

  • GET
  • POST
  • PUT
  • DELETE

GET和POST的区别(常见面试题)

  • 语义区别:GET是从服务器拿数据;POST是往服务器提交数据
  • 存放位置不同:GET把数据放在URL的query string中;POST把数据放在body中

URL格式:   协议名://ip:端口号/路径?查询字符串

查询字符串:

  • 键值对 之间用&分隔
  • 键和值之间用 = 分隔

关于HTTP版本

  • 当前大部分用的都是HTTP/1.1版本

请求头的关键属性

Host访问服务器的主机ip和端口
Content-Lengthbody的长度(单位是字节)
Content-Typebody的数据格式(html,css,js,json,图片等)
Referer当前页面是从哪里跳转来的
User-Agent描述当前正在上网的设备的 操作系统版本和浏览器信息
Cookie

浏览器在本地 存储数据的一种方式(由键值对构成)

  • 从哪来:服务器通过 Set-Cookie返回的
  • 到哪去:后续给浏览器发送的请求 都会带上Cookie
  • 怎么存储:按照域名来区分,以键值对的形式存储
  • 有什么用:Cookie中的内容都是由程序员自定义的,最典型的应用场景就是:登录时身份认证

状态码:

描述了响应结果,是正确了还是出错了,出错的原因是什么

  • 举个栗子:洗衣服过程中,突然系统开始"滴滴滴",液晶屏上显示出了"E02"的编号
  • 这里这个"E02"就是状态码,这时候你在网上搜了一下洗衣机"E02"代表什么
  • 原来是洗衣机上盖被打开->那我就知道要怎么解决这个故障了->把上盖关上

这里,状态码就是返回出错原因的关键手段

HTTP中的状态码都是制定HTTP标准的大佬定义好的,我们直接用就行

HTTP状态码表

200 OK

最常见到的状态码,表示访问成功

404 Not Found

访问的资源没找到(路径有问题,但是网站还在).请求的路径 和 路由描述的路径不一致,就会404

Not Found的过程:

  • URL中的IP定位到主机(成功)
  • port定位到程序(成功)
  • path定位到程序管理的资源(失败)->path访问的资源 在服务器上没有

即使状态码显示 当前访问出错 但是也可以在响应的body中返回一些html之类的语句,把这个404的页面打扮一番(就是说即使网页找不到,也可以做一个好看的404提示页面)

403 Forbidden

访问被拒绝了(你没有权限访问)

405 Methond Not Allowed

你发的请求的方法和服务器这边声明的注解不匹配,就会出现405

网上找别人的网站出现405比较难找,但是自己开发过程中,很容易出现405

500 Internal Server Error

服务器出错

出现原因:服务器处理逻辑代码中抛出了异常,但是开发者没有catch到,没有及时解决,导致服务器挂了

504 Gateway Timeout

网关或代理服务器在规定时间内 没有收到上游服务器的响应(请求超时)

网关(Gateway):

  • 网络的关口(一夫当关的关)
  • 网关可以认为是"入口服务器"(网关可能是一个软件也可能是一个专门的机器)

网关 的作用

在服务器资源紧张的时候容易触发"请求超时" 例如:选课系统

302 Move temporarily

重定向:你本来是去访问服务器A的,服务器A告诉你去找B

比如某网站A迁移域名:

  • 如果直接迁移,就会使保存旧域名的用户无法访问了
  • 但是如果把服务器架设在新域名上,给旧域名设置重定向,那么点击进入旧域名的时候,就会自动跳转至新域名
  • 这时候,用户可以直接用新域名访问服务器,也可以访问旧域名,然后自动跳转至新域名

502 Bad Gateway

错误的网关

描述的比较含糊,具体是哪里错了呢?->要根据你的代码来判断哪个部分错了

一个典型的例子

  • 网关后面要调用的某个服务器出问题了(比如某个服务器/某组服务器挂了)
  • 网关感知到了这一情况后认为,当前剩余的服务器不足以支持整个业务,就报一个502
  • 具体错在哪,还要程序员自己看代码找bug

小结:

状态码整体有很多:

  • 2xxx 都可以认为是成功
  • 3xx 都是重定向
  • 4xx 是客户端出错,用户构造的请求有问题
  • 5xx 是服务器出错(程序员一般关注的是这个,服务器出问题大概率是你的代码有bug!)

上述HTTP报文格式的内容要重点掌握!

工作经常用到&面试高频考题~~

END✿✿ヽ(°▽°)ノ✿

http://www.dtcms.com/a/503077.html

相关文章:

  • 5.2 UDP (答案见原书 P230)
  • 做资讯类网站需要什么资质宁波seo推广公司电话
  • 第十五部分:信号量和读写锁
  • 无刷直流电机(BLDC)数学模型深度解析
  • 第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第二赛季--最后一题解读
  • Spring Boot 3零基础教程,WEB 开发 内容协商源码分析 默认的 HttpMessageConverter 自定义返回值格式 笔记34
  • 【嵌入式面试题】STM32F103C8T6 完整元器件解析 + 面试问题答案
  • docker入门教程--部署nginx和tomcat
  • 3.1.2 从NoSQL到图数据库的转型
  • 【洛谷】哈希表实战:5 道经典算法题(unordered_map/set 应用 + 避坑指南)
  • 昆明 网站推广营销策划公司简介
  • 医院做网站是最简单的前端吗长沙水业网站是哪家公司做的
  • GridPlayer,一个好用的多视频同步播放器
  • 用 Go 语言实现《周易》大衍筮法起卦程序
  • 2025年渗透测试面试题总结-209(题目+回答)
  • 深度学习6-激活函数-参数初始化和正则化-搭建神经网络-损失函数
  • HakcMyVM-Apaches
  • OCR文字识别前沿:PaddleOCR/DBNet++的端到端文本检测与识别
  • 例行性工作任务(定时任务)
  • C++——list链表
  • 泉州网站关键词推广费用泉州网站建设优化公司
  • 动画基础:动画里的18种基本相机角度
  • 上海做高端网站建设wordpress自动分享
  • 【含文档+PPT+源码】基于小程序开发的宠物寄养平台管理系统
  • 【LeetCode】81. 搜索旋转排序数组 II
  • 力扣21:合并两个有序链表
  • FastAPI之 HTTP响应
  • 中国建设银行广西分行网站首页wordpress 数字商城
  • UE5 材质-5:砖缝不透明材质系列,掩码节点 ComponentMask,材质函数 CustomRotator 旋转UV,
  • 2510C++,rest_rpc