zoukankan      html  css  js  c++  java
  • 面试杂碎01

    1、http状态码

    1**:信息,服务器收到请求,需要请求者继续执行操作

    2**:成功,操作被成功接收并处理

    3**:重定向,需要进一步的操作以完成请求

    4**:客户端错误,请求包含语法错误或无法完成请求

    5**:服务器错误,服务器在处理请求的过程中发生了错误

    从输入URL按下回车到页面展现,总的来说发生了一下几个过程:

    DNS 解析:将域名解析成 IP 地址
    TCP 连接:TCP 三次握手
    发送 HTTP 请求
    服务器处理请求并返回报文
    浏览器解析渲染页面
    断开连接:TCP 四次挥手

    1.说一下http和https
    http:http是最为广泛应用的互联网传输协议,即超文本传输协议。HTTP是一个属于应用层的面向
    对象的协议。由于其简捷、快速的方式,适用于分布式超媒体信息系统。

    简介:超文本传输协议,
    1)http是最为广泛引用的互联网传输协议,https是http的安全版,它的安全基础是SSL加密传输协议
    2)http是明文传输的,传送报文容易被黑客截取
    3)https需要到CA申请证书,可以认证客户端和服务端,确保正确发送到客户端和服务器
    4)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。(
    Http:超文本传输协议(Http,HyperText Transfer Protocol)是互联网上应用最
    为广泛的一种网络协议。设计Http最初的目的是为了提供一种发布和接收HTML
    页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了
    Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。
    5)Https协议的加密范围也比较有限。最关键的,SSL证书的信用链体系并不安全
    6)http效率更高,https需要绑定ip,https并非绝对安全


    2、tcp三次握手,一句话概括
    第一次握手:客户端向移动端发送连接请求
    第二次握手:服务端收到请求,向客户端进行反馈
    第三次握手:第二次握手后,客户端确认当前请求是否继续有效

    3、TCP和UDP的区别
    TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议;UDP是
    一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
    TCP面向连接(如打电话要先拨号建立连接);
    UDP是无连接的,即发送数据之前不需要建立连接
    TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,
    无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,
    即不保证可靠交付
    Tcp通过校验和,重传控制,序号标识,滑动窗口、
    确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
    UDP具有较好的实时性,工作效率比TCP高,
    适用于对高速传输和实时性有较高的通信或广播通信。
    每一条TCP连接只能是点到点的;UDP支持一对一,
    一对多,多对一和多对多的交互通信
    TCP对系统资源要求较多,UDP对系统资源要求较少。


    4、WebSocket的实现和应用
    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
    Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。
    HTTP的生命周期通过 Request 来界定,
    也就是一个 Request 一个 Response ,那么在 HTTP1.0 中,这次HTTP请求就结束了。
    应用:ajax轮询(异步) long poll(阻塞)
    服务端就可以主动推送信息给客户端,只需要经过一次HTTP请求,就可以做到源源不断的信息传送了


    8. 几个很实用的BOM属性对象方法?

    window.navigator/location/history
    9、兼容前缀
    -webkit-      chrome、safari

    -moz-        firefox

    -ms- IE

    -o- opera
    10. 说一下http2.0/http1.1/http1.0
    http1.0:无状态无连接。无连接指每次连接只处理一个请求,无状态是指协议对于事务处理没有记忆能力
    http1.1:持久连接
    请求管道化
    通常,http请求总是顺序发送的,下一个请求只有在当前请求的响应被完全接受的时候才会被发送。由于网络延迟和带宽的限制,这样会导致在服务器发送下一个响应的时候中间有很大的延迟。
    HTTP/1.1 允许多个http请求通过一个套接字同时被输出 ,而不用等待相应的响应。然后请求者就会等待各自的响应,这些响应是按照之前请求的顺序依次到达。
    增加缓存处理(新的字段如cache-control)
    增加Host字段、支持断点传输等(把文件分成几部分)
    在HTTP/1.1中请求头已经默认使用Connection: keep-alive,避免了连接建立
    和释放的开销,但服务器必须按照客户端请求的先后顺序依次回送相应的
    结果,以保证客户端能够区分出每次请求的响应内容。
    http2.0:二进制分帧
    多路复用(或连接共享)
    所有的HTTP2.0通信都在一个TCP连接上完成,这个连接可以承载任意数量的双向数据流。
    头部压缩
    服务器推送

    11. 补充400和401、403状态码
    400:服务器不理解请求的语法。
    401:没有通过身份验证
    403:服务器拒绝访问
    404:服务器上找不到所请求的资源

    13. Cookie、sessionStorage、localStorage的区别
    Cookie有数量和大小(4kb)的限制,且需要我们自行封装api
    需要指定作用域。容易被篡改,不安全
    webStorage
    分为sessionStorage 和 localStorage
    WebStorage并不作为HTTP header发送到浏览器,所以相对安全
    sessionStorage在会话结束后删除,localStorage是持久化存储,若不主动删除
    ,则永久有效。
    有自己的api。5mb建议大小

    14. 说一下web worker
    Web Worker 的作用,就是为 JavaScript 创造多线程环境,
    允许主线程创建 Worker 线程,将一些任务分配给后者运行。


    16. iframe是什么?有什么缺点?
    iframe也称作嵌入式框架,嵌入式框架和框架网页类似,它可以把一个网页的框架和内容嵌入在现有的网页中。
    iframe标签的一些基本属性:
    src iframe页面地址,有同域跨域之分
    height iframe高度
    width iframe宽度
    name iframe命名,可通过window.frames[xxx]被调用
    scrolling iframe滚动模式
    sandbox html5新特性,用于限制iframe的功能

    我们可以通过contentWindow和contentDocument两个API获取iframe的window对象和document对象。

    iframe缺点:产生很多页面,不容易管理
    iframe框架页面会增加服务器的http请求
    代码复杂,不利于SEO
    浏览器的后退按钮无效

    17. Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
    告诉浏览器以何种规范解析文档
    严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。
    混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码
    没有正确声明DTD或者加入xml声明将触发混杂模式

    18. Cookie如何防范XSS攻击
    XSS, 即为(Cross Site Scripting), 中文名为跨站脚本, 是
    发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预
    期内执行的JS代码时,就发生了XSS攻击。

    设置了HttpOnly属性的cookie变量无法被js获取,可以避免此种攻击

    20、
    RESTful是一种架构风格、设计风格,基
    于RESTful的web系统更有层次、简便、轻量级以及通过HTTP直接传输,
    RESTful web服务成为替代SOAP服务的一个更有前途的替代方案。


    26、iframe通信,同源和不同源两种情况
    同域:即父子页面相互调用
    一、父页面调用子页面
    1、先得到子页面的document
    document.getElementById('FrameId').contentWindow.document
    2、得到子页面的window
    document.getElementById('FrameId').contentWindow.window
    重载子页面:document.getElementById('FrameId').contentWindow.window.location.reload(true);
    或者 $('#FrameId').attr('src','../list');
    3、得到子页面的的变量
    doucment. iframe的name属性值 . 子页面变量名称 (document.frameName.temp)
    二、子页面调用父页面
    1、父页面document : window.parent.document
    2、获得父页面变量 : parent.变量名称
    3、调用事件 : window.parent.XXX();

    跨域:
    主域:由两个或两个以上的字母构成,中间由点号隔开,整个域名只有1个点号
    csdn.net
    子域:是在主域名之下的域名,域名内容会有多个点号

    未跨主域,跨子域
    两个域的js文件中设置document.domain=主域名 即可

    跨主域
    location.hash
    (B操作A)
    1、动态改变location.hash,iframe不会重载
    2、无论跨域与否,iframe内可以获取自己的location.hash
    3、只要域名相同就能通信,即使ABC三层嵌套

    27、介绍知道的http返回的状态码
    2开头的http状态码
    表示请求成功
    200 成功处理了请求,一般情况下都是返回此状态码;

    3xx (重定向)
    重定向代码,也是常见的代码
    301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
    302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

    4开头的http状态码表示请求出错
    400 服务器不理解请求的语法。
    401 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
    403 服务器拒绝请求。
    404 服务器找不到请求的网页。


    5开头状态码并不常见,但是我们应该知道
    500 (服务器内部错误) 服务器遇到错误,无法完成请求。

    28、http常用请求头
    Cache-Control 设置请求响应链上所有的缓存机制必须遵守的指令
    Connection 设置当前连接和hop-by-hop协议请求字段列表的控制选项
    Content-Type 设置请求体的MIME类型(适用POST和PUT请求)
    If-Modified-Since 设置更新时间,从更新时间到服务端接受请
    求这段时间内如果资源没有改变,允许服务端返回304 Not Modified
    cookie
    user-agent:用户浏览器信息

    29、常用响应头
    Cache-Control 告诉服务端到客户端所有的缓存机制是否可以缓存这个对象,单位是秒
    Content-Type 设置响应体的MIME类型
    Expires 设置响应体的过期时间
    Status 设置HTTP响应状态

    注意:头文件分为
    general-header ;
    general header是request、response都可用的, 但是不能用于entity.
    其包含的字段有:
    Request URL :请求的url
    Request Method : 请求的方法,可以是GET、POST
    Status Code:HTTP 状态码,表示请求成功
    Remote Address:远程IP地址

    request-header ;请求头
    cookie
    user-agent:用户浏览器信息
    connection:是否建立持久连接,http1.1中默认keep-alive建立持久连接
    Cache-Control:缓存相关,建立请求和响应所遵循的缓存的机制、
    Content-Type:请求体的MIME类型 (用于POST和PUT请求中)
    If-Modified-Since:缓存相关:如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码
    Accept:客户端需要接收的mime类型


    response-header ;响应头
    Last-Modified:缓存相关,返回资源最近一次修改的日期
    Expires:缓存相关,响应过期的日期和时间
    ETag:请求变量的实体标签的当前值
    Content-Type:响应的mime类型
    Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型


    29、强,协商缓存
    浏览器缓存主要分为强缓存(也称本地缓存)和协商缓存(也称弱缓存)
    强缓存是利用请求头中的Expires和Cache-Control两个字段来控制的,用来表示资源的
    缓存时间。强缓存中,普通刷新会忽略它,但不会清除它,需要强制刷新。浏览器强制刷新,
    请求会带上Cache-Control:no-cache和Pragma:no-cache
    Cache-Control:no-cache:不使用本地缓存。需要使用缓存协商
    ,先与服务器确认返回的响应是否被更改,如果
    之前的响应中存在ETag,那么请求的时候会与服务
    端验证,如果资源未被更改,则可以避免重新下载

    协商缓存就是由服务器来确定缓存资源是否可用,所以客户端与服务器端要
    通过某种标识来进行通信,从而让服务器判断请求资源是否可以缓存访问。
    普通刷新会启用弱缓存,忽略强缓存。只有在地址栏或收藏夹输入网址、通过链接引用资源等情
    况下,浏览器才会启用强缓存,这也是为什么有时候我们更新一张图片、一个js文件,页面
    内容依然是旧的,但是直接浏览器访问那个图片或文件,看到的内容却是新的。

    31、讲讲304
    304状态码或许不应该认为是一种错误,
    而是对客户端有缓存情况下服务端的一种响应
    在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,
    内容是客户端请求的资源,同时有一个Last-Modified的属性
    标记此文件在服务器端最后被修改的时间。
    客户端第二次请求此URL时,根据HTTP协议的规定,
    浏览器会向服务器传送If-Modified-Since报头,询问
    该时间之后文件是否有被修改过
    如果服务器端的资源没有变化,则自动返回 HTTP 304(Not Ch
    anged.)状态码,内容为空,这样就节省了传输数据量。当服务器端
    代码发生改变或者重启服务器时,则重新发出资源,返回和第
    一次请求时类似。
    32、强缓存、协商缓存什么时候用哪个


    33、前端优化
    1)减少http请求,使用精灵图
    2)使用CDN:
    如果应用程序web服务器离用户更近,那么一个HTTP请求的响应时间将缩短。另一方面,如果组件web服务器离用户更近,则多个HTTP请求的响应时间将缩短。
    CDN(内容发布网络)是一组分布在多个不同地理位置的Web服务器,
    用于更加有效地向用户发布内容。在优化性能时,向特定用户发布内容的服务
    器的选择基于对网络慕课拥堵的测量。例如,CDN可能选择网络阶跃数最小的服务器
    ,或者具有最短响应时间的服务器。
    3)使用浏览器缓存
    4)压缩组件
    在一般的网站中,静态资源使用频率高,流量占用大。对于访问量稍大的网站,都会把静态资源放置到 CDN 服务器,不占用业务服务器的网络带宽,而达到更好的用户体验


    34、GET和POST的区别
    1)get的请求数据拼接在url内,post的请求数据在请求体内
    2)get请求只能进行url编码,而post支持多种编码方式
    3)
    GET产生一个TCP数据包;POST产生两个TCP数据包。
    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

    35、301和302的区别
    301是永久重定向。302时暂时重定向

    36、HTTP支持的方法:get/post
    43、常见的HTTP的头部
    52、描述一下XSS和CRSF攻击?防御方法?

    54、具体有哪些请求头是跟缓存相关的
    Cache-control if-Modified-Since
    响应头:


    56、cookie有哪些字段可以设置

    57、cookie有哪些编码方式?
    url编码

    68、浏览器缓存机制
    浏览器请求某一资源时,会先获取该资源缓存的header信息,然后根据header中的
    Cache-Control和Expires来判断是否过期。若没过期则直接从缓存中获取资源信息,包
    括缓存的header的信息,所以此次请求不会与服务器进行通信。这里判断是否过期,则是
    强缓存相关。后面会讲Cache-Control和Expires相关。

    如果显示已过期,浏览器会向服务器端发送请求,这个请求会携带第一次请求返回的有
    关缓存的header字段信息,比如客户端会通过If-None-Match头将先前服务器端发送过
    来的Etag发送给服务器,服务会对比这个客户端发过来的Etag是否与服务器的相同,若相
    同,就将If-None-Match的值设为false,返回状态304,客户端继续使用本地缓存,不解析服
    务器端发回来的数据,若不相同就将If-None-Match的值设为true,返回状态为200,客户
    重新机械服务器端返回的数据;客户端还会通过If-Modified-Since头将先前服务器端发过来的
    最后修改时间戳发送给服务器,服务器端通过这个时间戳判断客户端的页面是否是最新的,如果
    不是最新的,则返回最新的内容,如果是最新的,则返回304,客户端继续使用本地缓存。

    69、TCP四次挥手
    1)客户端发送关闭请求,不再向服务端发送请求
    2)第二次挥手,服务端已经接收到了客户端的关闭请求,此时还可以继续向客户端发送信息
    3)所有数据发送完毕后,服务端通知客户端可以关闭
    4)客户端收到可以关闭的通知,通知服务端可以关闭,服务端收到关闭允许后立刻关闭。
    客户端设置定时器,到时间自动关闭

    70、为什么连接的时候是三次握手,关闭的时候却是四次握手?
    答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送S
    YN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭
    连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只
    能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我
    Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

    71、描述一下XSS和CRSF攻击?防御方法?
    XSS跨站脚本攻击,发生在客户端,浏览器在解析渲染DOM时执行了意外的JS脚本。XSS漏洞主要是没有处理好
    用户的输入而产生的。为了防范XSS的攻击,必须为输入添加验有效的验证,为cookie设置httpOnly

    CSRF跨站请求伪造:
    最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。
    验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。
    72、fetch
    1)fetch内部使用promise封装的
    2)fetch()返回的promise将不会拒绝http的错误状态,即使响应是一个HTTP 404或者500
    3)在默认情况下 fetch不会接受或者发送cookies
    如果想要在同域中自动发送cookie,加上 credentials 的 same-origin 选项

    73、cookie:其实cookie是一个很小的文本文件,
    是浏览器储存在用户的机器上的。Cookie是纯
    文本,没有可执行代码。储存一些服务器需要的信息
    ,每次请求站点,会发送相应的cookie,这些cookie可以
    用来辨别用户身份信息等作用。
    通过docuemnt.cookie可以设置和获取Cookie的值

    请求行:

    ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。
    ②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。
    ③是协议名称及版本号。

    75、token
    防止表单重复提交,进行身份验证

    76、fetch发送两次请求?
    原因很简单 因为你用的fetch post修改了请求头,导致fetch第一发送一个o
    ptions请求,询问服务器是否支持修改的请求头,如过服务器支持,那么将会再次发送真正的请求。

    77、session/sessionStorage
    是不一样的两个东西

    78、session/cookie的区别

    Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之
    间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户
    请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对
    象。当会话过期或被放弃后,服务器将终止该会话。
    1)cookie保存在浏览器端,session保存在服务器端
    2)有1)知session比cookie更安全
    3)cookie有大小限制,session没有
    4)存储内容:cookie只能保存字符串类型,以文本的方式;session通过类似与Hashtable的数据结构来保存,
    能支持任何类型的对象(session中可含有多个对象)

    79、计算机网络分为哪几层?
    TCP/IP :链路、网络、传输、应用
    链路:以二进制的形式在物理层面上传输数据,传输有地址的帧以及错误检测功能
    网络:为数据包选择路由
    传输:提供端对端的接口
    应用:数据格式化,代码转换,数据加密,实现文件传输,文件服务等功能

    80、什么场景使用TCP/UDP?那些应用层使用了UDP?
    应用场景
    #TCP应用场景
    当对网络通信质量有要求时,比如:整个数据要准确无误的传递给对方,这往往对于一些要求可靠的应用,比如HTTP,HTTPS,FTP等传输文件的协议,POP,SMTP等邮件的传输协议。常见使用TCP协议的应用:
    1.浏览器使用的:HTTP
    2.FlashFXP:FTP
    3.Outlook:POP,SMTP
    4.QQ文件传输

    UDP 文件传输协议
    对当前网络通讯质量要求不高的时候,要求网络通讯速度尽量的快,这时就使用UDP
    日常生活中常见使用UDP协议:
    1.QQ语音
    2.QQ视频
    3.TFTP

    81、DNS

    即域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,

    而不用去记住能够被机器直接读取的IP数串。

    通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)

    1、浏览器中输入www.qq.com域名,操作系统会先检查本地的hosts文件是否有这个网址映射关系,
    如果有,就先调用这个IP地址映射,完成域名解析。
    2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,
    是否有这个网址映射关系,如果有,直接返回,完成域名解析。
    3、如果两者都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,
    在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,
    包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
    4、如果要查询的域名,不由本地DNS服务器区域解析,
    但该服务器已缓存了此网址映射关系,
    则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
    5、如果本地DNS服务器本地区域文件与缓存解析都失效,
    则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,
    本地DNS就把请求发至13台根DNS,
    根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,
    并会返回一个负责该顶级域名服务器的一个IP。
    本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。
    这台负责.com域的服务器收到请求后,如果自己无法解析,
    它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。
    当本地DNS服务器收到这个地址后,就会找qq.com域服务器,
    重复上面的动作,进行查询,直至找到www.qq.com主机。
    6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,
    由上一级服务器进行解析,上一级服务器如果不能解析,
    或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,
    还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。


    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

    英文版

    When a visitor visits a webpage, the browser of the visitor makes a request to the server where the webpage is located. When the browser receives and displays the web page, the server on which the web page resides returns a server header containing the HTTP status code to respond to the browser's request.

    http常见的HTTP状态码:

    200 - 请求成功

    301 - 资源(网页等)被永久转移到其它URL

    404 - 请求的资源(网页等)不存在

    500 - 内部服务器错误

    英文版

    http common HTTP status code:

    200 - The request was successful

    301 - Resources (web pages, etc.) are permanently transferred to other URLs

    404 - The requested resource (webpage, etc.) does not exist

    500 - Internal server error

    http状态码的分类

    http状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:分类描述

    1**:信息,服务器收到请求,需要请求者继续执行操作

    2**:成功,操作被成功接收并处理

    3**:重定向,需要进一步的操作以完成请求

    4**:客户端错误,请求包含语法错误或无法完成请求

    5**:服务器错误,服务器在处理请求的过程中发生了错误

    英文版

    http status code classification

    The http status code consists of three decimal digits. The first decimal digit defines the type of status code. The last two digits have no classification. HTTP status code is divided into 5 types: classification description

    1 **: information, the server receives the request, the requester need to continue to operate

    2 **: On success, the operation was successfully received and processed

    3 **: Redirect, requires further action to complete the request

    4 **: client error, request contains a syntax error or can not complete the request

    5 **: server error, the server has encountered an error while processing the request

    HTTP状态码表

    100:继续。客户端应继续其请求

    101:切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议

    2开头的状态码

    200:请求成功。一般用于GET与POST请求

    201:已创建。成功请求并创建了新的资源

    202:已接受。已经接受请求,但未处理完成

    203:非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本

    204:无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档

    205:重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域

    206:部分内容。服务器成功处理了部分GET请求

    3开头的状态码

    300:多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择

    301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替

    302:临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI

    303:查看其它地址。与301类似。使用GET和POST请求查看

    304:未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

    305:使用代理。所请求的资源必须通过代理访问

    306:已经被废弃的HTTP状态码

    307:临时重定向。与302类似。使用GET请求重定向

    4开头的状态码

    400:客户端请求的语法错误,服务器无法理解

    401:请求要求用户的身份认证

    402:保留,将来使用

    403:服务器理解请求客户端的请求,但是拒绝执行此请求

    404:服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面

    405:客户端请求中的方法被禁止

    406:服务器无法根据客户端请求的内容特性完成请求

    407:请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权

    408:服务器等待客户端发送的请求时间过长,超时

    409:服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突

    410:客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置

    411:服务器无法处理客户端发送的不带Content-Length的请求信息

    412:客户端请求信息的先决条件错误

    413:由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息

    414:请求的URI过长(URI通常为网址),服务器无法处理

    415:服务器无法处理请求附带的媒体格式

    416:客户端请求的范围无效

    417:服务器无法满足Expect的请求头信息

    5开头的状态码

    500;服务器内部错误,无法完成请求

    501:服务器不支持请求的功能,无法完成请求

    502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求

    503:由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

    504:充当网关或代理的服务器,未及时从远端服务器获取请求

    505:务器不支持请求的HTTP协议的版本,无法完成处理

    506:由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。

    507:服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)

    509:服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。

    510:获取资源所需要的策略并没有没满足。(RFC 2774)

    英文版

    HTTP Status Code Table (Version 1)

    100: continue. Clients should continue their request

    101: Switch the protocol. The server switches the protocol according to the client's request. You can only switch to more advanced protocols, for example, to switch to the new version of HTTP

    2 The beginning of the status code

    200: The request was successful. Generally used for GET and POST requests

    201: Created. Successfully requested and created new resource

    202: Accepted. Already accepted the request but did not process it

    203: unauthorized information. The request is successful. But the meta-information returned is not a copy of the original server, but a copy

    204: No content. The server processed successfully but did not return content. Without updating the page, make sure that the browser continues to display the current document

    205: Reset content. If the server is successfully processed, the user terminal (for example, browser) should reset the document view. This return code can be used to clear the browser's form fields

    206: part of the content. The server successfully processed part of the GET request

    3 at the beginning of the status code

    300: a variety of options. The requested resource can include multiple locations, and a list of resource features and addresses can be returned accordingly for the user terminal (eg, browser) to select

    301: move permanently. The requested resource has been permanently moved to the new URI, the returned information will include the new URI, and the browser will automatically redirect to the new URI. Any new requests in the future should use the new URI instead

    302: temporary move. Similar to 301. But resources are only temporarily moved. The client should continue to use the original URI

    303: View other addresses. Similar to 301. View using GET and POST requests

    304: unmodified. The requested resource is unmodified, and the server does not return any resources when it returns this status code. Clients typically cache accessed resources by providing a header that states that the client wants to return only those resources that were modified after the specified date

    305: Use a proxy. The requested resource must be accessed through a proxy

    306: HTTP status code that has been discarded

    307: temporary redirect. Similar to 302. Use GET request redirection

    4 The beginning of the status code

    400: Client request syntax error, the server can not understand

    401: The request asks the user for authentication

    402: Reserved for future use

    403: The server understands the request for the client, but refuses to execute the request

    404: The server could not find the resource (web page) based on the client's request. With this code, a website designer can set a personalized page that says "The resource you requested can not be found."

    405: The method in the client request is disabled

    406: The server can not complete the request based on the content characteristics requested by the client

    407: The request asks for the identity of the proxy, similar to 401, but the requester should use the proxy for authorization

    408: The server waits for the client to send the request for too long, timeout

    409: The server may complete the client's PUT request is likely to return this code, the server encountered a request conflict

    410: The client requested resource no longer exists. 410 is different from 404, if the resource has been permanently deleted for the 410 code, the site designer can specify the new location of the resource with the 301 code

    411: The server was unable to process the request message sent by the client without Content-Length

    412: Client request information is a prerequisite error

    413: The request is denied because the requested entity is too large for the server to process. To prevent continuous client requests, the server may close the connection. If only the server temporarily unable to deal with, it will contain a Retry-After response

    414: Request URI is too long (URI is usually the URL), the server can not handle

    415: The server was unable to process the media format attached to the request

    416: Invalid client request range

    417: The server can not satisfy Expect's request header information

    5 The beginning of the status code

    500; internal server error, unable to complete the request

    501: The server does not support the requested functionality and can not complete the request

    502: A server acting as a gateway or proxy receives an invalid request from a remote server

    503: The server is temporarily unable to process the client's request due to overloading or system maintenance. The length of the delay can be included in the server's Retry-After header

    504: act as a gateway or proxy server, did not get requests from the remote server in time

    505: The server does not support the requested version of the HTTP protocol and can not complete the process

    506: Expanded by Transparent Content Negotiation Protocol (RFC 2295), representing an internal configuration error on behalf of the server: The requested Negotiation Argument resource is configured to use itself in transparent content negotiation and is therefore not suitable in a negotiation process Focus.

    507: The server can not store the content necessary to complete the request. This situation is considered temporary. WebDAV (RFC 4918)

    509: The server reached the bandwidth limit. This is not an official status code, but is still widely used.

    510: The strategy needed to get the resource is not missing. (RFC 2774)

  • 相关阅读:
    disabled
    C# 实例化顺序
    session问题
    Node js文件系统
    Node js WEB模块
    Node js GET POST请求
    Node js路由
    Node js函数
    Node js模块系统
    Node js 安装+回调函数+事件
  • 原文地址:https://www.cnblogs.com/Tanqurey/p/10604161.html
Copyright © 2011-2022 走看看