http_code 状态码分类 分类 分类描述 1×× 信息,服务器收到请求,需要请求者继续执行操作。 2×× 成功,操作被成功接收并处理。 3×× 重定向,需要进一步的操作以完成请求。...204 No Content 表示请求成功,但不会返回任何内容。 205 Reset Content 表示请求成功,但不会返回任何内容,并且要求客户端重置表单。...502 Bad Gateway 表示作为网关或代理的服务段在执行请求时,从上游服务器获得了无效的响应。...504 Gatewy Timeout 表示作为网关或代理的服务段在执行请求时,未能及时从上游服务器获得响应。...(RFC 6585) 449 扩展(Retry With) 由微软扩展,代表请求应当在执行完适当的操作后进行重试。
NodeJS development 什么是 Express 中间件? 中间件在字面上的意思是你在软件的一层和另一层中间放置的任何东西。...Express 中间件是在对 Express 服务器请求的生命周期内所执行的函数。 每个中间件都可以访问其被附加到的所有路由的 HTTP 请求和响应。...当 Web 服务器收到数据请求时,Express 将为你提供一个请求对象,其中包含有关用户及其所请求数据的信息。Express 还使你可以访问响应对象,可以在Web服务器响应用户之前对其进行修改。...收到请求后,与请求相匹配的每个中间件都将会按照初始化的顺序运行,直到有终止操作为止。...你可以用中间件进行日志记录、身份验证等操作。如下所示,以记录用户的最新活动并解析身份验证标头,用它确定当前登录的用户并将其添加到 Request 对象。 该函数在程序每次收到请求时执行。
同步请求 调用open方法时,第三个参数是false时,就是同步请求,这时候,JavaScript会堵塞,当服务器响应之后才继续执行。...这时候,绑定的readystatechange事件不会有反应,因为同步请求的话,JavaScript会堵塞,当服务器响应之后才继续执行,所以当我们绑定事件时,已经接收到响应了,所以状态不会再变也就不会触发...先改造一下提供接口的express先。...const express = require('express') const cors = require('cors') const app = express() app.use(cors(...(可以在express增加一个定时器响应,时间设置长一点,来模拟请求超时) // 设置2s超时 xhr.timeout = 2000 xhr.ontimeout = function () {
Idempotent:每次执行操作时,GET 只有读取 Resource,不会改变到任何的 Resource (资源, 数据),所以任何资源的任何状态都是一样的。...204 No Content 表示请求成功,但不会返回任何内容。 205 Reset Content 表示请求成功,但不会返回任何内容,并且要求客户端重置窗体。...3XX Redirect 此类状态代码通常代表本次请求需要客户端采取进一步操作才能完成。通常用于复位向。...502 Bad Gateway 表示作为网关或代理的服务段在执行请求时,从上游服务器获得了无效的响应。...504 Gatewy Timeout 表示作为网关或代理的服务段在执行请求时,未能及时从上游服务器获得响应。
这时候并不会发送请求,而只是启动一个请求 open方法接收 3 个参数:请求类型、请求 URL、请求是否异步(默认为true,表示异步执行) xhr.open("get", "example.txt",...304表示资源没有修改过,是直接从浏览器缓存中拿的,即也算收到正确的响应 console.log(xhr.responseText); } } }; 4....304表示资源没有修改过,是直接从浏览器缓存中拿的,即也算收到正确的响应 console.log(xhr.responseText)...) 如果想简单学习下express,可以访问本人的博客网站。...const express = require("express"); const cors = require("cors"); const app = express(); app.use(cors
(middleware)是一个函数,他可以访问请求对象(request object(req)),响应对象(response object(res))和web应用中处于请求-响应循环 Express可以使用如下几种中间件...next(); // 传递request对象给下一个中间件 }) // 挂载至/user/:id的中间件,任何执行/user/:id的请求都会执行它 app.use('/use/:id',(req,res...最终会抛出localhost未发送任何数据的错误 ?...= express.Router() // 没有挂载路径的中间件,通过该路由的每个请求都会执行该中间件 router.use(function (req, res, next) { console.log...,可以响应一个 HTML 错误页面、一句简单的话、一个 JSON 字符串,或者其他任何您想要的东西。
本地通过 express 起一个服务来验证强缓存的 3 个属性,代码如下: const express = require('express'); const app = express(); var...状态,加载浏览器缓存,并且响应头会设置 Last-Modified 或者 ETag 属性。...的值进行比较,如果相等,返回 304 ,并加载浏览器缓存。...本地通过 express 起一个服务来验证协商缓存,代码如下: const express = require('express'); const app = express(); var options...如果文件被修改了,但是内容没有任何变化的时候,Last-Modified/If-Modified-Since 会错误地返回 304,上面的例子就说明了这个问题 总结 在实际使用场景中,比如政采云的官网
304 Not Modified 资源未修改,表示本地缓存仍然可用。...这里重点说一下 304,304 是 HTTP 缓存中的一个重要内容,表示资源未修改,相当于将资源重定向到本地缓存。 关于 HTTP 缓存的详细内容,可以查看这篇文章:浏览器缓存策略之扫盲篇 2....当然,这一方式只在 JavaScript 的客户端执行环境有效。 上述所介绍的三种重定向方式中,按照优先级顺序如下:HTTP > HTML > JavaScript。...对于危险操作进行重定向:类似编辑删除等危险操作,为了避免用户刷新时重复触发危险操作,我们可以将其重定向到临时的进度展示页,比如使用 303。对于耗时较长的请求也可以这么处理。 4....既然是缓存行为,那么我们就可以通过常规的缓存清理方式来处理,包括但不限于以下几种方式: 控制台禁用缓存 清除历史记录 Network 面板清除缓存 这里大家可以自行尝试以下,如果不行的话,记得多试 1-
HTTP 对此操作有一种特殊类型的响应,称为 HTTP 重定向(HTTP redirect)。 重定向可实现许多目标: 站点维护或停机期间的临时重定向。...原理 在 HTTP 协议中,重定向操作由服务器向请求发送特殊的重定向响应而触发。重定向响应包含以 3 开头的状态码,以及 Location 标头,其保存着重定向的 URL。...鼓励在 Link 标头中加入机器可读的 rel=alternate 304 Not Modified 发送用于重新验证的条件请求。表示缓存的响应仍然是新的并且可以使用。...在这种情况下,会返回一个303(See Other)重定向响应,该响应链接到一个页面,表示请求的操作已经被列入计划,并且最终会通知用户操作的进展情况,或者允许用户将其取消。...mod_alias 模块提供了 Redirect 和 Redirect_Match 两种指令来设置 302 响应(默认值): ServerName example.com
这里我们介绍以express为nodejs框架的重定向。...Express是一个基于Node.js实现的Web框架,其响应HTTP请求的response对象中有两个用于URL跳转方法res.location()和res.redirect(),使用它们可以实现URL...Express通过Location头将指定的URL字符串传递给浏览器,它并不会对指定的字符串进行验证(除'back'外)。而浏览器则负责将当前URL重定义到响应头Location中指定的URL。...通过location()设置头信息后,其后的代码还会执行。...通过location()设置Loction头后,设置HTTP状态码,最后通过ServerResponse对象的end()方法返回响应信息。调用redirect()方法后,其后的代码都不会被执行。
原因短语 1XX Informational(信息性状态码) 接收的请求正在处理 2XX Success(成功状态码) 请求正常处理完毕 3XX Redirection(重定向状态码) 需要进行附加操作以完成请求...304 返回时不包含任何响应的主体部分。304 与重定向无关系。 307 Temporary Redirect:临时重定向。与 302 含义相同。...403 Forbidden:服务器拒绝访问,原因可能是未获得文件系统的访问授权,访问权限出现某些问题等。...500 Internal Server Error:服务器端执行请求时发生错误。 503 Service Unavailable:服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。...(缓存)保存在代理服务器上 透明代理:转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理(Transparent Proxy),反之为非透明代理 网关:转发其他服务器通信数据的服务器。
该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。...该状态码表示服务端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含Content-Range制定范围的实体内容。...3XX 重定向 3XX响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。 301 Moved Permanently ? 永久重定向。...304 Not Modified ? 该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。 304状态码返回时,不包含任何响应的主体部分。...304虽然被划分在3XX类别中,但是和重定向没有关系。 307 Temporary Redirect 临时重定向。该状态码与302有着相同的含义。
Express4.x API 译文 系列文章 技术库更迭较快,很难使译文和官方的API保持同步,更何况更多的大神看英文和中文一样的流畅,不会花时间去翻译--,所以我们看到express中文网更多的还是英文...所以我此次翻译的目的,一是熟悉express文档,二是锻炼自己英语阅读能力; 原文地址:express.com Response res对象表示一个Express应用程序在收到HTTP请求时发送的HTTP...(这句话翻译过来我有些不理解,我就不再翻译,res.end用于结束响应) 快速结束响应而无需任何数据,如果你需要对数据进行响应,取而代之的是使用诸如res.send和res.json res.send(...); res.status(404).end(); res.format(object) 在请求对象时,在AcceptHTTP头对象上执行content-negotiation。...Availability maxAge 以毫秒为单位设置max-age缓存控制头或者MS格式的字符串 0 root 相关文件的根目录 lastModified 设置last-modified头设置为操作系统上文件的最后修改日期
此响应仅由状态行和可选的HTTP头组成,以一个空行结尾。由于HTTP/1.0未定义任何1xx状态码,所以不要向HTTP/1.0客户端发送1xx响应。...除非响应的是一个HEAD请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。...浏览器应当向用户展示任何在当前响应中被包含的实体。...默认操作是将此状态视为重定向,并遵循与此响应关联的 // Location 标头的内容。...接收到此状态时的默认操作为遵循与响应关联的 Location 头。
Middleware 功能 从上面的Sample可以看出,中间件可以有以下功能: 执行任何代码。...Time:', Date.now()); next(); }); // 挂载至 /user/:id 的中间件,任何指向 /user/:id 的请求都会执行它 app.use('/user/:id'...,因为第一个路由已经终止了请求-响应循环。...上述在应用级创建的中间件系统,可通过如下代码改写为路由级: var app = express(); var router = express.Router(); // 没有挂载路径的中间件,通过该路由的每个请求都会执行该中间件...Mixed “index.html” lastModified 设置 Last-Modified 头为文件在操作系统上的最后修改日期。可能值为 true 或 false。
意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务去处理请求,或者批处理。 204 No Content:服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。...205 Reset Content:服务器已经成功处理了请求,但是没有返回任何内容。与204响应不同,返回此状态码的响应要求请求者重置文档视图。...301 Moved Permanently:被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用响应返回的若干个URI之一。...304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。请求的时候一般结合If-Modified-Since头部使用。 307 Temporary Redirect:307的意义如上302。...403 Forbidden:服务器已经理解请求,但是拒绝执行它。与401不同,403知道是你登录了,但是还是拒绝了你。 404 Not Found:请求失败,你请求所希望得到的资源未在服务器上发现。
()、res.redirect(),而这几个有什么不同呢?...更多请看文档 express Response ❞ res.end() ❝ 结束response - 如果服务端没有数据回传给客户端则可以直接用res.end返回,以此来结束响应过程 ❞ res.send...❝ 重定义到path所指定的URL,同时也可以重定向时定义好HTTP状态码(默认为302) ❞ res.redirect('http://baidu.com'); res.redirect(301,...如果给定的数字为0,PM2则会根据你CPU核心的数量来生成对应的工作线程 ❝ 拓展:我们可以通过借助cluster模块来实现多进程分页爬虫,Node多进程架构可以充分利用 cpu 资源,我们在一些耗时的操作上...❞ 通过内存快照,可以使用node-heapdump 官方文档获得内存快照进行对比,查找内存溢出 可视化内存泄漏检查工具 Easy-Monitor 官方文档 ?
使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。 204 No Content 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。...226 IM Used (HTTP Delta encoding) 服务器已经完成了对资源的 GET 请求,并且响应是对当前实例应用的一个或多个实例操作结果的表示。...304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。 305 Use Proxy 被请求的资源必须通过指定的代理才能被访问。...与 401 响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。...当然服务器也可以返回一个 404 响应,假如它不希望让客户端获得任何信息。 404 Not Found 请求失败,请求所希望得到的资源未被在服务器上发现。
可以用在Wi-Fi需要web认证的页面上 「205 Reset Content」:服务器成功处理了请求,没有返回任何内容,但是这个响应需要重制文档视图 「206 Partial Content」:服务已经处理了部分...IM Used」:服务器已经满足了对资源的请求 3xx重定向 代表客户端需要采取进一步操作才能完成,主要用来重定向,表示后续的请求在这次的响应中注明 「300 Multiple Choices」:返回的资源有一些列的可以选择的地址...「304 Not Modified」:缓存,请求头中的If-Modified-Since或If-None-Match对应的版本是否修改,未修改不需要重新传输 「305 Use Proxy」:被请求的资源必须通过代理才能够访问...「306 Switch Proxy」:最新规范已经弃用 「307 Temporary Redirect」:请求应该与另一个URI重复 「308 Permanent Redirect」:请求和所有将来的请求应该使用另一个...Detected」:服务器处理请求陷入死循环 「510 Not Extended」:获取资源的策略不满足 「511 Network Authentication Required」:客户端需要身份验证才能获得网络访问权限
领取专属 10元无门槛券
手把手带您无忧上云