前端网络相关试题

Web安全

一、 你所了解到的Web攻击技术

(1)   XSS攻击

(2)   CSRF攻击

(3)   网络劫持攻击

(4)   控制台注入代码

(5)   钓鱼

详细参见:http://blog.csdn.net/fengyinchao/article/details/52303118 

 如何防止XSS攻击?

(1)   将前端输出数据都进行转义

(2)   将输出的字符串中的\反斜杠进行转义

(3)   从url中获取的信息,防止方法是由后端获取,在前端转义后再行输出

(4)   使用cookie的HttpOnly属性,保护好cookie

详细参见:http://blog.csdn.net/fengyinchao/article/details/52303118 

 输入url后的加载过程

1)     查找域名对应IP地址

2)     建立连接(TCP的三次握手)

3)     构建网页

4)     断开连接(TCP的四次挥手)

说说TCP传输的三次握手四次挥手策略

为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。用TCP协议把数据包送出去后,TCP不会对传送 后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志:SYN和ACK。

发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。

最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。

若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

 

断开一个TCP连接则需要“四次挥手”:

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。

第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。

第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

 聊一聊网页的分段传输与渲染

从下面几个方面说:

(1)   CHUNKED编码

(2)   BIGPIPE

(3)   分段传输与bigpipe适用场景

详细参见:https://segmentfault.com/a/1190000005989601 ? ea=984496

http状态码有那些,分别代表什么意思

简单版:

       1**(信息类):表示接收到请求并且继续处理

   100  Continue   继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息

 2**(响应成功):表示动作被成功接收、理解和接受

        200  OK         正常返回信息

        201  Created    请求成功并且服务器创建了新的资源

        202  Accepted   服务器已接受请求,但尚未处理

 3**(重定向类):为了完成指定的动作,必须接受进一步处理

        301  Moved Permanently  请求的网页已永久移动到新位置。

        302 Found       临时性重定向。

        303 See Other   临时性重定向,且总是使用 GET 请求新的 URI。

        304  Not Modified 自从上次请求后,请求的网页未修改过。

 4**(客户端错误类):请求包含错误语法或不能正确执行

        400 Bad Request  服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。

        401 Unauthorized 请求未授权。

        403 Forbidden   禁止访问。

        404 Not Found   找不到如何与 URI 相匹配的资源。

 5**(服务端错误类):服务器不能正确执行一个正确的请求

        500 Internal Server Error  最常见的服务器端错误。

        503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。

  完整版 

 1**(信息类):表示接收到请求并且继续处理

    100——客户必须继续发出请求

    101——客户要求服务器根据请求转换HTTP协议版本

  2**(响应成功):表示动作被成功接收、理解和接受

    200——表明该请求被成功地完成,所请求的资源发送回客户端

    201——提示知道新文件的URL

    202——接受和处理、但处理未完成

    203——返回信息不确定或不完整

    204——请求收到,但返回信息为空

    205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件

    206——服务器已经完成了部分用户的GET请求

  3**(重定向类):为了完成指定的动作,必须接受进一步处理

    300——请求的资源可在多处得到

    301——本网页被永久性转移到另一个URL

    302——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request。

    303——建议客户访问其他URL或访问方式

    304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用

    305——请求的资源必须从服务器指定的地址得到

    306——前一版本HTTP中使用的代码,现行版本中不再使用

    307——申明请求的资源临时性删除

  4**(客户端错误类):请求包含错误语法或不能正确执行

    400——客户端请求有语法错误,不能被服务器所理解

    401——请求未经授权,这个状态代码必须和WWW一Authenticate报头域一起使用

    HTTP 401.1 一 未授权:登录失败

      HTTP 401.2 一 未授权:服务器配置问题导致登录失败

      HTTP 401.3 一 ACL 禁止访问资源

      HTTP 401.4 一 未授权:授权被筛选器拒绝

    HTTP 401.5 一 未授权:ISAPI 或 CGI 授权失败

    402——保留有效ChargeTo头响应

    403——禁止访问,服务器收到请求,但是拒绝提供服务

    HTTP 403.1 禁止访问:禁止可执行访问

      HTTP 403.2 一 禁止访问:禁止读访问

      HTTP 403.3 一 禁止访问:禁止写访问

      HTTP 403.4 一 禁止访问:要求 SSL

      HTTP 403.5 一 禁止访问:要求 SSL 128

      HTTP 403.6 一 禁止访问:IP 地址被拒绝

      HTTP 403.7 一 禁止访问:要求客户证书

      HTTP 403.8 一 禁止访问:禁止站点访问

      HTTP 403.9 一 禁止访问:连接的用户过多

      HTTP 403.10 一 禁止访问:配置无效

      HTTP 403.11 一 禁止访问:密码更改

      HTTP 403.12 一 禁止访问:映射器拒绝访问

      HTTP 403.13 一 禁止访问:客户证书已被吊销

      HTTP 403.15 一 禁止访问:客户访问许可过多

      HTTP 403.16 一 禁止访问:客户证书不可信或者无效

    HTTP 403.17 一 禁止访问:客户证书已经到期或者尚未生效

    404——一个404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。eg:输入了错误的URL

    405——用户在Request一Line字段定义的方法不允许

    406——根据用户发送的Accept拖,请求资源不可访问

    407——类似401,用户必须首先在代理服务器上得到授权

    408——客户端没有在用户指定的饿时间内完成请求

    409——对当前资源状态,请求不能完成

    410——服务器上不再有此资源且无进一步的参考地址

    411——服务器拒绝用户定义的Content一Length属性请求

    412——一个或多个请求头字段在当前请求中错误

    413——请求的资源大于服务器允许的大小

    414——请求的资源URL长于服务器允许的长度

    415——请求资源不支持请求项目格式

    416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If一Range请求头字段

    417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

  5**(服务端错误类):服务器不能正确执行一个正确的请求

    HTTP 500 一 服务器遇到错误,无法完成请求

      HTTP 500.100 一 内部服务器错误 一 ASP 错误

      HTTP 500一11 服务器关闭

      HTTP 500一12 应用程序重新启动

      HTTP 500一13 一 服务器太忙

      HTTP 500一14 一 应用程序无效

      HTTP 500一15 一 不允许请求 global.asa

      Error 501 一 未实现

  HTTP 502 一 网关错误

  HTTP 503:由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常
View Code

 HTTP的请求方法

HTTP(Hypertext Transfer Protocol)的八种请求方法:

方法

概述

GET

请求页面的详细信息,并返回实体主体。

POST

向指定资源提交数据进行数据请求(例如提交表单,或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT

从客户端向服务器传送的数据取代指定的文档内容。

DELETE

请服务器删除指定的页面。

HEAD

类似与Get请求,只不过返回的响应中没有具体的内容,用于获取报头

CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS

允许客户端查看服务器的性能。

TRACE

回显服务器收到的请求,主要用于测试或诊断。

 

http与https区别?

所有的隐私类API调用都需要https协议才能启动
隐私类API:
地理位置(navigator.geolocation.getCurrentLocaiton)
摄像头和麦克(navigator.userMedia)

集群

前端服务器 loadbalance 负载均衡服务器 nginx

 

posted @ 2017-11-30 18:10  fanlinqiang  阅读(274)  评论(0编辑  收藏  举报