精华内容
下载资源
问答
  • 其实MENA就是 MongoDB(非关系数据库) + Express(模板引擎) + AngularJS(MVC javascript库) + NodeJS(服务器脚本)的简称。 它们共同构造 基于 javascript 的 现代web应用全栈开发工具。 MongoDB: 一种强大...
  • python网络爬虫是什么意思

    千次阅读 2021-04-02 17:13:17
    因特网的诞生,为了使人们更方便地共享数据,交流通信。因特网桥梁,它连接着全世界的...在此,我们需要强调的,网络爬虫爬取的互联网上的公开数据,而不是通过特殊技术非法侵入网站服务器的非公开数据。 也许.

    image.png

    因特网的诞生,是为了使人们更方便地共享数据,交流通信。因特网是桥梁,它连接着全世界的人。点击网站,浏览都是人为的,和你聊天的也是有生命的人。但是,随着科技的发展,人们对数据的渴望,各种各样的网络机器人应运而生,此时,你不知道屏幕那端与你交谈的人是一只狗,你也不知道你网站的浏览量是由人点击还是由机器爬出。

    一、搜索引擎时代的网络爬虫。

    简而言之,网络爬虫就是一种自动获取因特网公开数据的工具。

    在此,我们需要强调的是,网络爬虫爬取的是互联网上的公开数据,而不是通过特殊技术非法侵入网站服务器的非公开数据。

    也许您会问,什么是“公共数据”?简单地说,就是把让用户浏览、获取的数据公开在网站上。

    二、大数据时代的网络爬虫。

    大数量的爬虫行为会在网络带宽、服务器计算力等方面给网站带来很大的压力,但几乎没有任何好处。为减低毫无兴趣的压力,避免自己的数据被别人集中收集,网站肯定会通过技术手段限制爬虫;而另一方面,爬虫则想尽办法突破这一限制,以获取石油般的数据。

    三、网络爬虫的自制力。

    爬行技术本身也许并不意味着善与恶,但人们利用爬行技术就有善与恶的区别。怎样使用爬虫,怎样使用爬取的数据,都会产生潜在的法律问题。这是一种技术开发人员都应该考虑的问题。不管出于什么目的,网络爬虫都不能突破法律的底线,但它必须遵循一定的规范。

    展开全文
  • 在网上查,介绍indexed为fasle时,此属性就不参与查询。 可是我的代码如下: 查询时参数为: query = new SolrQuery(); query.setQuery("content:它对外提供类似于Web-service的...indexed到底是什么意思呢?
  • 服务器收到某项请求时,例如,用户通过浏览器访问你的网页,服务器会向这个... 同样道理,当搜索引擎的Robot(机器人)或Crawler(爬行器)抓取你的网页时,服务器也会返回HTTP状态码相应请求。 此HTTP状态码提...

           当服务器收到某项请求时,例如,用户通过浏览器访问你的网页,服务器会向这个浏览器返回一个代码以响应请求。一个代码就称为:HTTP状态码。
           同样道理,当搜索引擎的Robot(机器人)或Crawler(爬行器)抓取你的网页时,服务器也会返回HTTP状态码相应请求
           此HTTP状态码提供关于请求状态的信息,告诉访问的浏览器、搜索引擎机器人:Baiduspider、Googlebot等关于你的网站和请求的网页的信息。
           HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。
           HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事。
           状态码位于HTTP Response 的第一行中,会返回一个”三位数字的状态码“和一个“状态消息”。 ”三位数字的状态码“便于程序进行处理, “状态消息”更便于人理解。
           如下图,  当客户端请求一个不存在的URL的时候, Web服务器会返回 “HTTP/1.1 404 Not Found” 告诉用户/浏览器客户端。 服务器无法找到所请求的URL。

    HTTP状态码分类
           HTTP状态码被分为五大类, 目前我们使用的HTTP协议版本是1.1, 支持以下的状态码。随着协议的发展,HTTP规范中会定义更多的状态码。
           小技巧:  假如你看到一个状态码518, 你并不知道具体518是什么意思。 这时候你只要知道518是属于(5XX,服务器错误就可以了)。

    常见的状态码

    一般人只需要了解以下常见的状态码就够了, 如果你想了解更多, 请继续往下看。
    200 OK 服务器成功处理了请求(这个是我们见到最多的)
    301/302 Moved Permanently(重定向)请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置
    304 Not Modified(未修改)客户的缓存资源是最新的, 要客户端使用缓存
    404 Not Found 未找到资源
    501 Internal Server Error服务器遇到一个错误,使其无法对请求提供服务

    HTTP状态码大全

    1XX 信息性状态码
           表示临时响应并需要请求者继续执行操作的状态代码。这些状态码是HTTP 1.1引入的。 对于这些状态码的价值还存在争论 (我个人从来没见过这些状态码, 也没有理解这些状态码。)
           HTTP状态码 100 Continue(继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
           HTTP状态码 101 Switching Protocols(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

    2XX 成功状态码
           表示成功处理了请求的状态代码。客户端发起请求时, 这些请求通常都是成功的。服务器有一组用来表示成功的状态码,分别对应于不同类型的请求。
           HTTP状态码 200 OK(成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。(这个是我们见到最多的)
           HTTP状态码 201 Created(已创建) 请求成功并且服务器创建了新的资源。
           HTTP状态码 202 Accepted(已接受) 服务器已接受请求,但尚未处理。
           HTTP状态码 203 Non-Authoritative Information(非权威信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
           HTTP状态码 204 No Content(没有内容) 服务器成功处理了请求,但没有返回任何内容。Response中包含一些Header和一个状态行, 但不包括实体的主题内容(没有response body)
           HTTP状态码 205 Reset Content(重置内容) 服务器成功处理了请求,但没有返回任何内容。另一个主要用于浏览器的代码。意思是浏览器应该重置当前页面上所有的HTML表单。
           HTTP状态码 206 Partial Content(部分内容) 服务器成功处理了部分 GET 请求。

    3XX 重定向状态码
           表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。重定向状态码用来告诉浏览器客户端,它们访问的资源已被移动, Web服务器发送一个重定向状态码和一个可选的Location Header, 告诉客户端新的资源地址在哪。
           浏览器客户端会自动用Location中提供的地址,重新发送新的Request。 这个过程对用户来说是透明的。
           301和302 非常相似,一个是永久转移,一个是临时转移。(SEO中,搜索引擎如果碰到301,比如网页A用301重定向到网页B,搜索引擎可以肯定网页A永久性改变地址,就会把网页B当做唯一有效目标)
           302,303,307 是一样。这是因为302是HTTP 1.0定义的,HTTP1.1中使用303,307,同时又保留了302。(但在现实中,我们还是用302,我是没见过303和307)所以这一节,我们只需要掌握302, 304 就可以了。
           HTTP状态码 300 Multiple Choices(多项选择) 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
           HTTP状态码 301 Moved Permanently(永久移除) 请求的网页已永久移动到新位置。Response中应该包含一个Location URL, 说明资源现在所处的位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
           HTTP状态码 302 Found(已找到/临时移动) 与状态码301类似。但这里的移除是临时的。 客户端会使用Location中给出的URL,重新发送新的HTTP request。服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
           HTTP状态码 303 See Other(查看其他位置) 类似302。请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
           HTTP状态码 304 Not Modified(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。客户的缓存资源是最新的, 要客户端使用缓存。
           HTTP状态码 305 Use Proxy(使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。代理的地址在Response 的Location中。
           HTTP状态码 306 未使用 这个状态码当前没使用。
           HTTP状态码 307 Temporary Redirect(临时重定向) 类似302。服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

    4XX客户端错误状态码
           这些状态代码表示请求可能出错,妨碍了服务器的处理。有时客户端会发送一些服务器无法处理的东西,比如格式错误的Request, 或者最常见的是, 请求一个不存在的URL。
           HTTP状态码 400 Bad Request(错误请求) 服务器不理解请求的语法。告诉客户端,它发送了一个错误的请求。
           HTTP状态码 401 Unauthorized(未授权) 请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。需要客户端对自己认证
           HTTP状态码 402 Payment Required(要求付款) 这个状态还没被使用,保留给将来用
           HTTP状态码 403 Forbidden(禁止) 服务器拒绝请求。
           HTTP状态码 404 Not Found(未找到) 服务器找不到请求的网页。
           HTTP状态码 405 Method Not Allowed(方法禁用) 禁用请求中指定的方法。
           HTTP状态码 406 Not Acceptable(不接受) 无法使用请求的内容特性响应请求的网页。
           HTTP状态码 407 Proxy Authentication Required(需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
           HTTP状态码 408 Request Timeout(请求超时) 服务器等候请求时发生超时。
           HTTP状态码 409 Conflict(冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
           HTTP状态码 410 Gone(已删除) 与状态码404类似,如果请求的资源已永久删除,服务器就会返回此响应。
           HTTP状态码 411 Length Required(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
           HTTP状态码 412 Precondition Failed(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
           HTTP状态码 413 Request Entity Too Large(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
           HTTP状态码 414 Request URI Too Long(请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
           HTTP状态码 415 Unsupported Media Type(不支持的媒体类型) 请求的格式不受请求页面的支持。
           HTTP状态码 416 Requested Range Not Satisfiable(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
           HTTP状态码 417 Expectation Failed(未满足期望值) 服务器未满足”期望”请求标头字段的要求。

    5XX服务器错误状态码
           这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
           HTTP状态码 500 Internal Server Error(服务器内部错误) 服务器遇到错误,无法完成请求。
           HTTP状态码 501 Not Implemented(尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
           HTTP状态码 502 Bad Gateway(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
           HTTP状态码 503 Service Unavailable(服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
           HTTP状态码 504 Gateway Timeout(网关超时) 与状态吗408类似,但是响应来自网关或代理,此网关或代理在等待另一台服务器的响应时出现了超时。
           HTTP状态码 505 HTTP Version Not Supported(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。有些服务器不支持HTTP早期的HTTP协议版本,也不支持太高的协议版本。
     




      zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
    展开全文
  • 今天登陆博客,显示502 bad gateway,NGINX最烦人的地方就是经常会出现这个错误,由于我并不打算在技术上花费过多的时间,所以一般遇到了相关问题,通过搜索引擎解决后即可,不会去深究。废话不多说,说说我的坎坷...
  • 3.1 JavaScript 是什么 JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行 现在...

    3.1 JavaScript 是什么

    在这里插入图片描述

    • JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思)

    • 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行

    • 现在也可以基于 Node.js 技术进行服务器端编程
      在这里插入图片描述


    3.2 JavaScript的作用

    • 表单动态校验(密码强度检测) ( JS 产生最初的目的 )
    • 网页特效
    • 服务端开发(Node.js)
    • 桌面程序(Electron)
    • App(Cordova)
    • 控制硬件-物联网(Ruff)
    • 游戏开发(cocos2d-js)

    3.3 HTML/CSS/JS 的关系

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b2GbbF3J-1577711325034)(images\图片9.png)]


    3.4 浏览器执行 JS 简介

    浏览器分成两部分:渲染引擎和 JS 引擎

    渲染引擎:用来解析HTML与CSS,俗称内核,比如 chrome 浏览器的 blink ,老版本的 webkit

    JS 引擎:也称为 JS 解释器, 用来读取网页中的JavaScript代码,对其处理后运行,比如 chrome 浏览器的 V8

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8CkxOAPG-1577711325037)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\image-20191230205915358.png)]

    	浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行。
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q80kFrx1-1577711325038)(images\图片10.png)]


    3.5 JS 的组成

    在这里插入图片描述

    1. ECMAScript

      ​ ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
      在这里插入图片描述
      ​ ECMAScript:规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

      更多参看MDN: MDN手册


    2. DOM——文档对象模型

      文档对象模型(DocumentObject Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)


    3. BOM——浏览器对象模型

      浏览器对象模型(Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。


    3.6 JS 初体验

    JS 有3种书写位置,分别为行内、内嵌和外部。
    
    1. 行内式

      <input type="button" value="点我试试" onclick="alert('Hello World')" />
      
      • 可以将单行或少量 JS 代码写在HTML标签的事件属性中(以 on 开头的属性),如:onclick
      • 注意单双引号的使用:在HTML中我们推荐使用双引号, JS 中我们推荐使用单引号
      • 可读性差, 在html中编写JS大量代码时,不方便阅读;
      • 引号易错,引号多层嵌套匹配时,非常容易弄混;
      • 特殊情况下使用
    2. 内嵌式

      <script>
          alert('Hello  World~!');
      </script>
      
      • 可以将多行JS代码写到 script 标签中
      • 内嵌 JS 是学习时常用的方式
    3. 外部JS文件

      <script src="my.js"></script>
      
      • 利于HTML页面代码结构化,把大段 JS代码独立到 HTML 页面之外,既美观,也方便文件级别的复用
      • 引用外部 JS文件的 script 标签中间不可以写代码
      • 适合于JS 代码量比较大的情况
    展开全文
  • 当我们在使用手机或者电脑浏览一些信息的时候,或者在搜索引擎中搜索资料,点击搜索结果跳转后,浏览器跳出一个 404 Not Found 的空白页。 相信各位老网民都很熟悉“404”这个数字了,这个错误代码代表着服务器未...

    随着网络时代的发展与进步,我们的学习工作和生活早已离不开互联网,智能家居、网上购物、日常出行都需要互联网的支持。互联网切切实实地给生活带来了诸多便利。

    那大家有没有碰到过这么一个情况呢?当我们在使用手机或者电脑浏览一些信息的时候,或者在搜索引擎中搜索资料,点击搜索结果跳转后,浏览器跳出一个 404 Not Found 的空白页。

    相信各位老网民都很熟悉“404”这个数字了,这个错误代码代表着服务器未找到文件,通常出访问的页面已经被更改或者移除,或是输入了错误的访问地址错误。

    那为什么用 404 而不是其他的数字来代表访问资源不存在呢?互联网上对 404 的诞生有这么一个“传说”。据传在第三次科技革命前,整个互联网的形态就像是一个大型的中央数据库,并设置在一个叫 404 的房间里。那个时候,所有的互联网访问请求都由人工手动完成,若在 404 房间中没有找到请求者所需要的文件,或是由于请求者写错了文件编号,工作人员就会返回一个“Room 404 : File Not Found”的信息。

    当然,经实际考证后发现传说中的 Room 404 其实并不存在,而 404 的真正来源则要从互联网之本 -HTTP 协议说起。

    状态码的由来

    众所周知,互联网的建立打破了地域限制,通过浏览器与服务器之间的交流让我们足不出户知天下。而浏览器与服务器之间的交流则是通过 HTTP 协议。

    HTTP(Hypertext Transfer Protocol),超文本传输协议,它是应用层协议。由于其简捷、快速的方式,适用于分布式和合作式超媒体信息系统。自 1990 年起应用于万维网(WWW)全球信息服务系统。

    用户上网的过程,就是浏览器通过 HTTP 协议向服务端发送请求,然后将服务端主机上的内容显示到本地。

    支撑着 HTTP 协议工作的是 TCP/IP 协议这个模范打工人,它负责了底层的数据传输工作。单从这一点上来看,所谓的“超文本传输协议”其实和传输没什么联系,有点名不副实。那为什么 HTTP 还被称为传输协议呢?答案就是它是传输报文内容的。

    HTTP 协议在规范文档里详细定义了报文的格式,规定了组成部分,解析规则,还有处理策略,所以可以在 TCP/IP 层之上实现除了数据传输外,更灵活丰富的功能。

    TCP 的协议报文,在实际要传输的数据之前附加了一个 20 字节的头部数据,存储 TCP 协议必须的额外信息,例如发送方的端口号、接收方的端口号、包序号、标志位等等。有了这个附加的 TCP 头,数据包才能够正确传输,到了目的地后把头部去掉,就可以拿到真正的数据。

    HTTP 协议也需要在实际传输的数据前附加这类头数据,不过与 TCP 不同的是,它是一个“纯文本”的协议,头数据都是 ASCII 码的文本,可以很容易地用肉眼阅读,不用借助程序解析也能够看懂。

    HTTP 协议的请求报文和响应报文的结构基本相同,主要由三大部分组成:

    • 状态行(status line):描述响应的基本信息,也就是服务器响应的状态;

    • 头部字段集合(header):使用 key-value 形式更详细地说明报文;

    • 消息正文(entity):实际响应的数据,它不一定是纯文本,可以是图片、视频等二进制数据。

    其中状态行和头部字段经常又合称为“响应头”,消息正文又称为“实体”,与“header”对应,很多时候直接称为“body”。

    HTTP 协议规定报文必须有 header,但可以没有 body,且在 header 之后必须要有一个“空行”,也就是“CRLF”,十六进制的“0D0A”。

    完整 HTTP 响应报文

    以又拍云存储接口文件上传完毕后返回的响应报头为例,第一行“HTTP/2 200 OK”为状态行,由三部分构成:

    • 版本号:表示报文使用的 HTTP 协议版本,上图中版本为 HTTP/2;

    • 状态码:一个三位数,用代码的形式表示处理的结果,比如 200 是成功,404 是资源不存在;

    • 原因短语:作为数字状态码补充,是状态码的简短文字描述,例如“OK”“Not Found”。

    而后面的“Content-Type”、“Connection”等等都属于 header,报文的最后是一个空白行结束,没有 body。

    多数情况下 HTTP 报文只有 header 没有 body。虽然 HTTP 协议对 header 的大小没有做限制,但因为头部太大可能会占用大量的服务器资源,影响运行效率。因此各个 Web 服务器都不允许过大的请求头。即便如此很多时候互联网上依然是很多大头在跑来跑去。

    为了尽可能减少“大头”占用的资源,减少检测错误地址访问的时间,网站一般选择状态码来负担这个责任,因为数字比起文字能够更好地减小 HTTP 报文头部体积。

    响应报文可以让客户端快速地通过状态码知道请求是否被正确处理,让服务端可以通过状态码选择最恰当的状态处理请求回复客户端。同时通过各类状态码,让服务端明确告知客户端响应状态,让客户端明确自己的下一步操作。

    目前 RFC 标准里总共有 41 个状态码,并允许自行扩展。Apache、Nginx 等 Web 服务器都定义了一些专有的状态码。在开发 Web 应用的时候,我们也可以在不冲突前提下设置自己的专有状态码。

    常见状态码

    接下来,我们详说一下常见的各个状态码都代表着什么?

    状态码的意义在于表达 HTTP 数据处理的“状态”,客户端可以依据代码适时转换处理状态,一般是一个十进制数字,而 RFC 标准里规定的状态码是三位数,取值范围从 000 到 999。常见的状态码有一定的设计格式,被分成了五类,用数字的第一位表示分类,而 0~99 不用,这样状态码的实际可用范围就大大缩小了,由 000~999 变成了 100~599。

    1xx

    1×× 类状态码属于提示信息,是协议处理的中间状态,实际能够用到的时候很少。

    我们偶尔能够见到的是 “101 Switching Protocols”。它的意思是客户端使用 Upgrade 头字段,要求在 HTTP 协议的基础上改为其他的协议继续通信,比如 WebSocket。而如果服务器也同意变更协议,就会发送状态码 101,但这之后的数据传输就不会再使用 HTTP 了。

    此外还有 “100 Continue” 。表示目前为止一切正常, 客户端应该继续请求, 如果已完成请求则忽略。一般出现在文件上传中。

    2xx

    2×× 类状态码表示服务器收到并成功处理了客户端的请求,这也是客户端最愿意看到的状态码。

    “200 OK”是最常见的成功状态码,表示一切正常,服务器如客户端所期望的那样返回了处理结果。

    “204 No Content”是另一个很常见的成功状态码,它的含义与“200 OK”基本相同,但响应头后没有 body 数据。

    “206 Partial Content” 一般用于分块下载或断点续传的基础,在客户端发送“范围请求”、要求获取资源的部分数据时出现,它与 200 一样,也是服务器成功处理了请求,但 body 里的数据不是资源的全部,而是其中的一部分。状态码 206 通常还会伴随着头字段“Content-Range”,表示响应报文里 body 数据的具体范围,供客户端确认,例如“Content-Range: bytes 0-66/888”,意思是此次获取的是总计 888 个字节的前 66 个字节。

    又拍云 CDN 的分块获取响应 206

    3xx

    3×× 类状态码表示客户端请求的资源发生了变动,客户端必须用新的 URI 重新发送请求获取资源,也就是通常所说的“重定向”,包括“著名”的 301、302 跳转。

    “301 Moved Permanently”俗称“永久重定向”,含义是此次请求的资源已经不存在了,需要改用新的 URI 再次访问。与它类似的是“302 Found”,曾经的描述短语是“Moved Temporarily”,俗称“临时重定向”,意思是请求的资源还在,但需要暂时用另一个 URI 来访问。

    “304 Not Modified” 是一个比较有意思的状态码,它用于 If-Modified-Since 等条件请求,表示资源未修改,用于缓存控制。它不具有通常的跳转含义,但可以理解成“重定向已到缓存的文件”(即“缓存重定向”)。

    又拍云存储 304 缓存校验

    4xx

    4××类状态码表示客户端发送的请求报文有误,服务器无法处理,它是具有真正的“错误码”含义的状态码了。

    “400 Bad Request”是一个通用的错误码,表示请求报文有错误,但具体是数据格式错误、缺少请求头或者还是其他错误则不会明确指示,因此在 Web 开发时一般会尽量避免给客户端返回 400,使用其他更有明确含义的状态码。

    “403 Forbidden”实际上不是客户端的请求出错,而是表示服务器禁止访问资源。原因可能多种多样,例如信息敏感、法律禁止等。

    “404 Not Found”可能是我们最常看到的一个状态码,它一般指资源在本服务器上未找到,所以无法提供给客户端。

    4×× 里剩下的一些代码较明确地说明了错误的原因,都很好理解,开发中常用的有:

    • 405 Method Not Allowed:不允许使用某些方法操作资源,例如不允许 POST 只能 GET;

    • 406 Not Acceptable:资源无法满足客户端请求的条件,例如请求中文但只有英文;

    • 408 Request Timeout:请求超时,服务器等待了过长的时间;

    • 409 Conflict:多个请求发生了冲突,可以理解为多线程并发时的竞态;

    • 413 Request Entity Too Large:请求报文里的 body 太大;

    • 414 Request-URI Too Long:请求行里的 URI 太大;

    • 429 Too Many Requests:客户端发送了太多的请求,触发了服务器的限制;

    • 431 Request Header Fields Too Large:请求头某个字段或总体太大。

    5xx

    5×× 类状态码表示客户端请求报文正确,但服务器在处理时内部发生了错误,无法返回应有的响应数据,是服务器端的“错误码”。

    “500 Internal Server Error” 与 400 类似,也是一个通用的错误码,服务器究竟发生了什么错误我们是不知道的。不过和 400 的响应相反,开发人员通常不会把服务器内部的出错详细信息返回给访问端。虽然不利于调试,但能够防止黑客的窥探或者分析。

    “501 Not Implemented” 表示客户端请求的功能还不支持,类似于“即将开业,敬请期待”的意思。

    “502 Bad Gateway” 通常是服务器作为网关或者代理时返回的错误码,表示服务器自身工作正常,访问后端服务器时发生了错误,但具体的错误原因也是不知道的。

    “503 Service Unavailable”表示服务器当前很忙,暂时无法响应服务,我们上网时有时候遇到的“网络服务正忙,请稍后重试”的提示信息就是状态码 503。

    如何处理 404

    回到我们开头所说的 404 问题。在实际业务中,难免会碰到输入了错误链接地址访问到不存在的资源,或者服务器突发故障无法访问的情况。但 Web 服务器默认提供的错误响应页面,无论 Nginx、Apache 或者是 IIS,都不是十分美观,页面简陋、呆板,且对用户不友好,无法给用户提供直观明了的信息,造成用户使用体验的下降。

    因此,很多开发者均使用自定义错误页面的方式,来增强户体验,避免用户流失。以 404 举例来说,自定义 404 页面通用的做法是在页面中放置网站快速导航链接、搜索框以及网站提供的特色服务,这样可以有效的帮助用户访问站点并获取需要的信息。

    腾讯公益 404 页面

    例如很多开发者会使用腾讯公益提供的“宝贝回家 - 公益 404 项目”,开发者可以在自定义的 404 界面中引用一段代码,当用户访问到 404 的资源,网页会显示访问资源不存在,同时加载一些失踪儿童的信息,通过互联网来迅速传播失踪儿童信息,从而提高找回失踪儿童的概率。这种操作让科技充满了温度,体现了人文关怀,正是科技的浪漫所在。

    如果你不知道如何自定义错误响应页,但是又很想拥有。你可以看一下又拍云的 CDN 、或者云存储服务的自定义页面功能。它可以帮助你快速的配置 4XX、5XX 的错误响应页。只需要打开控制台,就可以根据自己的需求配置错误响应也和错误响应图,非常方便好用。

    除此之外,还可以通过边缘规则,让不同错误码对应不同的网址跳转、URL 改写等网页引导操作。

    展开全文
  •  301转向(或叫301重定向,301跳转)当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。2、什么是302重定向? 302重定向...
  • 如果您不知道“克隆”是什么意思,只需下载ZIP存档并将该文件夹复制到UE项目文件夹中的Plugins文件夹中即可。 有关更多详细的帮助,请参阅《 或《 。 步骤2:重新生成项目文件并构建插件 当您下载插件文件时,需要...
  • 搜索引擎优化都前端的活 如何设计一个高质量的 URL 受 RESTful API 影响 的 URL 设计 手动自定义 URL 详情页 :简单的 URL 生成规则 自动化 URL:分类与多级目录 搜索结果页:将参数融入 URL 自动生成高质量...
  • 上一次在URL是什么意思与统一URL优化中谈到统一URL、优化网站可以使用301重定向的方法。现在我们可以交流一下“什么是301重定向,301重定向怎么做”,还有什么时候什么情况下可以使用301重定向、301重定向检测、301...
  • 这一部分首先来介绍一下什么是cgi脚本。 CGI 意思为 Common Gateway Interface, 一种基于浏览器的输入、在Web服务器上运行的程序方法. CGI脚本 使你的浏览器与用户能交互,为了在数据库中寻找一个名词, 提供你写入...
  • 当我们在使用手机或者电脑浏览一些信息的时候,或者在搜索引擎中搜索资料,点击搜索结果跳转后,浏览器跳出一个 404 Not Found 的空白页。 相信各位老网民都很熟悉“404”这个数字了,这个错误代码代表着服务器未...
  • 什么是node.js? node.js是运行在服务器端的javascript。通常来说,javascript是运行在浏览器环境的,但是编码大牛们把chrome的引擎GoogleV8引擎进行了封装,使其在服务器...至于异步非阻塞是什么意思呢?服务器端语...
  • “NDB” 是什么意思? 它的意思是: “网络数据库”.NDB(也叫NDB Cluster或者NDBCLUSTER),使用它才能让MySQL支持集群. 什么是mysql集群? Mysql Cluster(集群)是Mysql适合于分布式计算环境的高实用,高冗余版本...
  • 从基础谈SEO优化

    2008-05-22 17:31:00
    什么是SEO,SEO是什么意思? SEO的中文意思是搜索引擎优化。通过总结搜索引擎的排名规律,对网站进行合理优化,使你的网站在百度和Google的排名提高,让搜索引擎给你带来客户SEO基本概念什么是死链接? 简单地讲,...
  • JavaScript基础知识点参考pink老师ppt

    千次阅读 2020-07-25 17:45:38
    JavaScript 是什么? JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行 现在也可以基于...
  • 301 Moved Permanently 是什么意思 301永久重定向是一种非常重要的“自动转向”技术,是网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的...
  • 教科书里很大的一个问题,就是承载着概念的词,也可以叫术语,如果没有学习过这种概念(术语),那么一个人很难知晓,这个词到底代表什么,到底是什么意思。 而这种词可能就只是一小部分人约定俗成的,不同的行业,...
  • MySQL主从搭建及详细

    2019-10-01 18:53:55
    工作需要搭建MySQL主从服务器,以达到数据库备份及应急目的.... ...Q:MySQL主从是什么意思?作用是?原理是?如何实现?【就像是大门保安都会问一句富有哲理的问题:你从哪里来? 要到哪里去?】A:MyS...
  • HTTP状态码是什么意思?当服务器收到某项请求时,例如,用户通过浏览器访问你的网页,服务器会向这个浏览器返回一个代码以响应请求。一个代码就称为:HTTP状态码。同样道理,当搜索引擎的Robot(机器人)或Crawler...
  • HTTP状态码大全

    2013-10-11 10:48:57
    HTTP状态码是什么意思? 当服务器收到某项请求时,例如,用户通过浏览器访问你的网页,服务器会向这个浏览器返回一个代码以响应请求。一个代码就称为:HTTP状态码。 同样道理,当搜索引擎的Robot(机器人)或...
  • 一、网站蜘蛛日志是什么意思? 关于网站的蜘蛛的意思就是各大搜索引擎服务器发送请求的时候产生的一个访问记录文件,在服务器里面产生一个固定的网站日志,格式是以某某.log文件形式存在。 二、蜘蛛日志如何分析呢...
  • nginx 常见参数以及重定向参数配置

    千次阅读 2014-07-16 20:29:27
    首先明白什么是301和302...从定义来说,从网址A做一个302重定向到网址B时,主机服务器的隐含意思是 网址A随时有可能改主意,重新显示本身的内容或转向其他的地方。大部分的搜索引擎在大部分情况下,当收到302重定向时,
  • Nginx下 301和302跳转

    2012-09-19 17:58:56
    首先明白什么是301和302 ...从定义来说,从网址A做一个302重定向到网址B时,主机服务器的隐含意思是 网址A随时有可能改主意,重新显示本身的内容或转向其他的地方。大部分的搜索引擎在大部分情况下...
  • 1.JavaScript 是什么 JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行 现在也...
  • JavaScript的基本使用-01

    2020-04-13 13:20:13
    1.1 JavaScript 是什么 JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行 现在也可以...

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

服务器引擎是什么意思