前言 最近几篇我对Spring Security中用户认证流程进行了分析,同时在分析的基础上我们实现了一个验证码登录认证的实战功能。...今天来谈谈两个和认证授权息息相关的两个状态401和403以及它们如何在Spring Security融入体系中的。 2. 401 未授权 我在RFC 7235[1]中找到了相关的表述。...当客户端收到401状态码时,表明了该请求因为缺乏了被信任的认证凭据而被拒绝访问目标资源。 如果用户在请求中携带了认证凭据,那么401响应表明该凭据是未授信的,不能访问目标资源。...403状态代码表示服务器已理解了客户端的请求,但拒绝授权。如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限。客户端不应自动携带相同的重复证书再次请求。...Spring Security 中的这两种状态 通常情况Spring Security中的401和403两种状态都是以异常的形式来进行体现的,由AuthenticationException和AccessDeniedException
HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 ...如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。 本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了。 ...可以参考【Fiddler Composer创建和发送HTTP Request】 什么是HTTP状态码 HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事。 ...(重置内容) 另一个主要用于浏览器的代码。...这个代码是和一个选项列表一起返回的,然后用户就可以选择他希望的选项了 301 Moved Permanently(永久移除) 请求的URL已移走。
向服务器请求时,服务器会返回401的状态码来告诉用户此token过期了,此时就需要用到登录时返回的refreshToken调用刷新Token的接口(Refresh)来更新下新的token再发送请求即可。...当响应码为401时,响应拦截器会走中第二个回调函数onRejected 下面代码分段可能会让大家阅读起来不是很顺畅,我直接把整份代码贴在下面,且每一段代码之间都添加了对应的注释 // 最大重发次数const...,这里仅展示处理状态码为401的情况 if (statusCode === 401) { // accessToken失效 // 判断本地是否有缓存有refreshToken const...token的代码抽离成一个refreshToken函数,单独处理这一情况,这样子做有利于提高代码的可读性和维护性,且让看上去代码不是很臃肿// refreshToken.tsexport default...status; // 为了节省多余的代码,这里仅展示处理状态码为401的情况 if (statusCode === 401) { refreshToken() } return Promise.reject
而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。...接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。...HTTP 协议 中几个状态码的含义 :503 500 401 200 301 302 200 客户端请求成功 301 请求的网页已永久移动到新位置 302 服务器目前从不同位置的网页响应请求 401 请求未经授权...,这个状态代码必须和WWW-Authenticate报头域一起使用 500 服务器发生不可预期的错误 503 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 4.请写出HTTP头,并符合以下要求...3、最关键的,只需要画出正确的“轮廓”(还记得httpwatch 等工具打印出来的头部吗?那就是“轮廓” 的含义),也会有分数,但如果,链“”都写错了,那么就很遗憾了。
前端 WebView 的请求会涉及到跨域 CORS 其实简单来说,客户端工程师最关心两个问题: 第一,接口有没有通。 第二,接口有没有返回我想要的数据。...客户端排除法 客户端 HTTP 请求的通用方法是采用排除法,什么是排除法,客户端在请求服务端的 REST 接口时,会先在网络层面判断接口是否通,包括 404 或者 200常见几个状态 。...for the browser and node.js 以下代码是两段响应拦截,分别是拦截 HTTP 协议的 401 验证不通过,自定义业务代码的验证不通过。...这里应该以 HTTP 状态码为依据,主要有 200, 401 ,表明请求是【触碰到关于的数据处理的业务部分了】如 HTTP/1.1 200 OK{ "code": 0, "message": "客户端已是最新版本...当然是先接收 HTTP 状态码,其次是业务状态码,不混淆,也不能混淆。从软件分层的角度来说,接收 HTTP 状态码在接收业务状态码的上层,通常由拦截器来做,比如 token 过期的 401 阻挡。
1×× 提示信息类状态码 1xx 提示信息类状态代码表示在完成请求的动作并发送最终响应之前,用于表示通信连接状态或请求进度的临时响应。...304-未修改 300-多种选择 303-参见其他 305-使用代理 307-临时重定向 308-永久重定向 4×× 客户端错误 4xx(客户端错误)类状态代码表示客户端似乎出错了。...401 未经授权 401(未授权)状态码表示该请求尚未应用,因为它缺少目标资源的有效身份验证凭据。 403 禁止 403(禁止)状态代码表示服务器理解请求但拒绝授权。...415 不支持的媒体类型 415(不支持的媒体类型)状态代码表示源服务器拒绝为请求提供服务,因为有效负载的格式不受目标资源上此方法的支持。...请求的范围不满足 417 预期失败 418 我是个茶壶,超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现 421 错误的请求 422 不可处理实体 423 锁定 424 失败的依赖关系 426
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。...HTTP状态码的英文为HTTP Status Code。...下面是常见的HTTP状态码: 常用的状态码简述 2XX 一般是请求成功 200 正常处理 204 成功处理,但服务器没有新数据返回,显示页面不更新 206 对服务器进行范围请求,只返回一部分数据 3XX...】 307 与302相同,但不会把POST请求变成GET 4XX 表示客户端出错了。...400 请求报文语法错误了 401 需要认证身份 403 没有权限访问 404 服务器没有这个资源 5XX 服务器出错了 500 内部资源出错了 503 服务器正忙
这篇文章是我在学习网络部分的一些学习笔记,在这里分享给大家。之前看到状态码都是搜索下就完事,常用的也都记得,毕竟搭建博客等过程深入学习过这些。...一般常见的状态码已经够使用的,我之前弄博客的时候几乎每天都要见到,不是301就是501,幸运的就是200完美!...另一个主要用于浏览器的代码。...之前改域名做SEO优化的时候经常会碰到301重定向。 状态码 状态消息 含义 300 Multiple Choices(多项选择) 客户端请求了实际指向多个资源的URL。...该状态码与302和303的有着类似的含义,不同之处在于,307状态码并不会指定客户端要用什么样的请求方法请求重定向地址。
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。...HTTP状态码的英文为HTTP Status Code。...下面是常见的HTTP状态码: 常用的状态码简述 2XX 一般是请求成功 200 正常处理 204 成功处理,但服务器没有新数据返回,显示页面不更新 206 对服务器进行范围请求,只返回一部分数据 3XX...】 307 与302相同,但不会把POST请求变成GET 4XX 表示客户端出错了 400 请求报文语法错误了 401 需要认证身份 403 没有权限访问 404 服务器没有这个资源 5XX 服务器出错了...500 内部资源出错了 503 服务器正忙
用户登录之后,会返回一个用户的标识,之后带上这个标识请求别的接口,就能识别出该用户。 标识登录状态的方案有两种: session 和 jwt。...想想你常用的 APP,是不是没再重新登录过? 而不常用的 APP,再次打开是不是就又要重新登录了? 这种一般都是双 token 做的。 知道了什么是双 token,以及它解决的问题,我们来实现一下。...token: 那当 token 失效的时候,刷新 token 的逻辑在哪里做呢?...测试下: 我手动改了 access_token 让它失效后,点击 aaa 按钮,发现发了三个请求: 第一次访问 aaa 接口返回 401,自动调了 refresh 接口来刷新,之后又重新访问了 aaa...axios.response.interceptor 里,判断返回的如果是 401 就调用刷新接口刷新 token,之后重发请求。
需要打码的纯洁登录框 在请求记录中找到并选中方法为 post 的那条记录就可以查看此请求的详细信息,比如请求地址、请求头和参数。请求详情如下图所示: ?...三、用户权限验证 登录完毕后想执行其他的操作,比如上传(post)数据的话,我应该怎么做?...结果返回的状态码是 401,由于 scrapy 默认只处理 2xx 和 3xx 状态的请求、4开头和5开头的都不处理,但是我们又需要观察401状态返回的内容,这怎么办呢?...我们可以在settings.py中空白处新增代码: """ 状态码处理 """ HTTPERROR_ALLOWED_CODES = [400, 401] 然后在下一个方法中观察response回来的数据...又经过我不断的测试,最终确定了 postman 的请求格式为: ? 输入图片说明 ? 输入图片说明 ?
大家好,我是杨成功。 前两篇,我们介绍了为什么前端应该有监控系统,以及搭建前端监控的总体步骤,前端监控的 Why 和 What 想必你已经明白了。接下来我们解决 How 如何实现的问题。...或者是接口请求出错了,在网络面板内也能查到异常情况,是请求发送的异常,还是接口响应的异常。...前端项目,为了统一处理请求,比如 401 的跳转,或者全局错误提示,都会在全局写一个 axios 实例,为这个实例添加拦截器,然后在其他页面中直接导入这个实例使用,比如: // 全局请求:src/request...在 React 中 和 Vue 一样,用户信息可以直接从状态管理里拿。因为 React 中没有全局获取当前旅游的快捷方式,所以页面信息我也会放在状态管理里面。...如果你也需要前端监控,不妨花上半个小时,按照文中介绍的方法收集一下异常数据,相信对你很有帮助。 文章首发公众号 程序员成功。这个公众号只做原创,专注于前端工程与架构的分享,关注我查看更多硬核知识。
状态码 状态消息 含义 实例 400 Bad Request (坏请求) 请求报文中存在语法错误 状态码400 401 Unauthorized(未授权) 客户端需要通过HTTP认证 HTTP协议之基本认证...-401 403 Forbidden(禁止) 请求被服务器拒绝了 状态码403 404 Not Found(未找到) 未找到资源 HTTP协议详解-404 405 Method Not Allowed...(不允许使用的方法) 不支持该Request的方法 状态码405 5XX服务器错误状态码 有时,客户端发送了一条有效Request, Web服务器自身却出错了。...可能是Web服务器运行出错了,或者网站都挂了。 5XX就是用来描述服务器错误的。...状态码 状态消息 含义 实例 500 Internal Server Error(内部服务器错误) 服务器遇到一个错误,使其无法为请求提供服务 状态码500 501 Unauthorized(未授权)
)如何进行沟通 请求示例 1.url -s -v -H "Frank: xxx" -- "https://www.baidu.com" 请求的内容为 GET / HTTP/1.1 Host: www.baidu.com...可以看到请求的前三部分了 如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到 响应 响应的格式 1 协议/版本号 状态码 状态解释 2 Key1: value1 2 Key2...2xx 表示成功 3xx 表示滚吧 4xx 表示你丫错了 5xx 表示好吧,我错了 状态码查询 状态码 描述 200 请求成功。...所请求的资源必须通过代理访问 400 客户端请求的语法错误,服务器无法理解 401 请求要求用户的身份认证 402 保留,将来使用 403 服务器理解请求客户端的请求,但是拒绝执行此请求 404 服务器无法根据客户端的请求找到资源...通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 405 客户端请求中的方法被禁止 500 服务器内部错误,无法完成请求 501 服务器不支持请求的功能,无法完成请求 502 充当网关或代理的服务器
状态码 状态码是来告诉客户端,发生了什么事情。状态码为客户端提供了一种理解事务处理结果的便捷方式。...原因短语是状态码的可读版本,应用程序开发者将其传送给用户,用于说明在请求间发生了什么情况。...五大类 可以通过三位数字代码对不同状态码进行分类 200 到 299 之间的状态码表示成功 300 到 399 之间的代码表示资源已经被移走了 400 到 499 之间的代码表示客户端的请求出错了 500...到 599 之间的代码表示服务器出错了 状态码 整体范围 已定义范围 分类 1XX 100~199 100~101 信息提示 2XX 200~299 200~206 成功 3XX 300~399 300...通常,服务器会包含一些首部,以便客户端弄清楚为什么请求无法满足 407 Proxy Authentication Required 与 401 状态码类似,但用于要求对资源进行认证的代理服务器 408
image.png 作为一个web开发工程师,我们平时都会和诸如200, 304, 404, 501等状态码打交道,那么它们是什么意思呢?...今天,我们来聊聊~ 什么是HTTP状态码 HTTP状态码是服务端返回给客户端(因为这里是web开发,这里的客户端指浏览器客户端)的3位数字代码。 这些状态码相当于浏览器和服务器之间的对话信息。...备注:在web开发的工作中,我们都会使用封装好的库进行接口请求,而且浏览器的控制台网络中也不会出现这类状态码的提示(我没看到过?),所以这一大类基本不会接触到,了解一下即可。...备注:307和303已经替代了历史上的302状态码,现在看到的临时重定向的状态码是307。详细内容可到维基百科上查看。 4xxs状态码 401 Unauthorized:这意味着你的登录凭证无效。...比如后端同学写错了model啥的~ 503 Service Unavailable:服务器没有准备好处理请求。常见的原因是服务器因维护或重载而停机。
松哥手把手带你入门 Spring Security,别再问密码怎么解密了 手把手教你定制 Spring Security 中的表单登录 Spring Security 做前后端分离,咱就别做页面跳转了!...HttpBasic 最大的优势在于使用非常简单,没有复杂的页面交互,只需要在请求头中携带相应的信息就可以认证成功,而且它是一种无状态登录,也就是 session 中并不会记录用户的登录信息。...大家可以看到,在请求头中,多了一个 Authorization 字段,该字段的值为 Basic amF2YWJveToxMjM=, amF2YWJveToxMjM= 是一个经过 Base64 编码之后的字符串...我们再来稍微总结一下 HttpBasic 认证的流程: 浏览器发出请求,说要访问 /hello 接口。 服务端返回 401,表示未认证。...过滤器的源码比较长,我这里就不贴出来了,一个核心的思路就是从前端拿到用户请求的摘要信息,服务端也根据一直的信息算出来一个摘要,再根据传过来的摘要信息进行比对,进而确认用户身份。
这里还发现了一个有意思的细节:Safari 在发起重定向请求时,虽然没有带上 Authorization 请求头,但是会带上 cookie,这也说明了为什么在改造为 JWT 之前,Safari 能正常使用的原因...在 Chrome 中,具体请求如下(Chrome 中请求和重定向是 2 条独立的记录): 猜测可能 我当时的场景,后端返回的状态码是 301,开始以为是各浏览器针对 301 响应码的处理逻辑不一样。...status 的值是 0,headers 是个空对象 感觉很奇怪,但是又看了看上面对 manual 的定义,好像明白了 归零/空状态 是什么意思 。 然后又开始了探索之路。...另外一个需要注意的点是:最好根据浏览器做一层判断,如果是 Safari,则将 redirect 设置为 manual,否则不进行处理。...因为我的场景只是单纯的把请求地址写错了,导致后端重定向到正确的地址。所以只需要把 URL 改一下即可。
当一个查询的结果为空的时候,为什么有的接口设计会返回异常(HTTP状态码404或其他),有的则是会返回请求成功(HTTPS状态码200),但是返回结果是空数组或者null等表示结果为空的标识?...我的建议是如果你能做主,而且觉得有必要,就严格遵循,反之,领导说就啥吧。 Part3为什么接口是否请求成功,HTTP状态码永远只会是200?...这时候前端开发者在做统一异常处理的时候,先按状态码做一层大范围的分支处理,再有针对性的对这个状态码类型下的某些错误码做特殊处理即可。...问题: 当一个查询的结果为空的时候,为什么有的接口设计会返回异常(HTTP状态码404或其他),有的则是会返回请求成功(HTTPS状态码200),但是返回结果是空数组或者null等表示结果为空的标识?...但是这是建立在业务场景规定,查询结果为空的时候属于异常的前提上。 1返回HTTP状态码 200 当我们查询一个资源但是结果为空,到底要不要把本次请求视为一个404的异常是取决于业务场景。
接口返回状态码。 ---- 接口请求,返回的状态码肯定是不一样的,我们需要提前处理,不然就会报错。不信你可以看看下面代码的执行。...那么我们如果按照正常的去处理,而不是事先去处理接口的状态码。我们的接口可能请求就会出错了。那么我们应该先知道状态码有哪些,才可以更好的来判断? 状态码一共有5种。...使用GET请求重定向 400 Bad Request 客户端请求的语法错误,服务器无法理解 401 Unauthorized 请求要求用户的身份认证 402 Payment Required...为防止客户端的连续请求,服务器可能会关闭连接。...我们只需要掌握常用的即可。那么我们回到我们的示例种,看我们应该如何处理呢。 这样很简单,我们只需要对常见的这些代码进行处理即可。我一般会这么处理。
领取专属 10元无门槛券
手把手带您无忧上云