网络测试题

常见的HTTP状态码你了解多少?描述一下状态码的含义

  1. 200     成功处理了请求
  2. 301    (永久移动)请求的网页已永久移动到新位置
  3. 302    (临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
  4. 303    (查看其它位置)请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码
  5. 403    服务器拒绝请求
  6. 404    服务器找不到请求的网页
  7. 503    (服务不可用)服务器目前无法使用(由于超载或停运维护)。通常    这只是暂时状态

 

什么情况下会遇到跨域,描述一下前端常见处理跨域的几种方式。并封装一个jsonp原理

协议,域名,端口号,有不一样的时候算跨越    
(1) jsonp  (2)cors(3)服务端跨域
jsonp原理:包裹一个方法。在需要用的页面调用这个方法,然后回调函数,回调这个方法

Web前端应该从哪些方面来优化网站性能

减少页面体积,提升网络加载

  • 静态资源压缩合并(js/css代码压缩合并)精灵图
  • 静态资源缓存
  • 使用cdn加载资源更快

    • 优化页面渲染
    • css放在前面js放在后面
    • 懒加载
    • 减少dom操作

      浏览器端存储有哪些,并描述他们的区别。

               cook:在网络请求当中会被携带    存储量4Kb    没有直接获取数据的接口    document.cookie
              locaStorage:本地存储    存储量5M    永久性存储    手动删除才行    有现成的接口直接存储信息获取信息
      sessionStorage:本地存储    存储量5M    会话结束就会消失    有现成的接口直接存储信息获取信息

      说说get和post请求

      如果什么前提都没有的情况下,get和post几乎没有什么区别,只是名字的不同
      1.提交数据的形式:
      GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),会直接展现在地址栏中,以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5 %A5%BD。
      如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密
      得出如:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
      而POST方法则会把数据放到请求数据字段中以&分隔各个字段,请求行不包含数据参数,地址栏也不会额外附带参数
      2.提交数据的大小
      get方法提交数据的大小直接影响到了URL的长度,但HTTP协议规范中其实是没有对URL限制长度的,限制URL长度的是客户端或服务器的支持的不同所影响:比如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
      post方式HTTP协议规范中也没有限定,起限制作用的是服务器的处理程序的处理能力。
      所以大小的限制还是得受各个web服务器配置的不同而影响。
      3.提交数据的安全
      POST比GET方式的安全性要高
      通过GET提交数据,用户名和密码将明文出现在URL上,因为一下几个原因get方式安全性会比post弱:
      (1)登录页面有可能被浏览器缓存
      (2)其他人查看浏览器的历史纪录,那么别人就可 以拿到你的账号和密码了
      (3)当遇上跨站的攻击时,安全性的表现更差了

      一个页面从输入 URL 到页面加载完的过程中都发生了什么事情?

    1. 首先域名解析
    2. 拿过来一个解析过的ip地址
    3. 找到ip地址对应的服务器(计算机)
    4. 服务器拿到资源
    5. 服务器返回给浏览器信息资源
    6. 浏览器进行渲染

      请描述TCP三次握手与四次挥手?

      三次握手:A向B发送建立连接的请求
      B向A发送同意建立连接的请求
      A告诉B开始发送请求
      四次挥手:A向B发送给断开连接的请求
      B向A询问是否发送完成所有数据
      A告诉B已经发送完所有的数据
      B告诉A同意断开链接的请求

      TCP与UDP的区别

      TCP:传输控制协议(Transfer Contorl Protcal)
      可靠连接:发送请求必须得到回应    一问一答 一对一的
      UDP:用户数据报协议(user Datagram Protcal)
      不可靠连接:没有建立连接的过程 只能发出信息 一对多 多对多

      http是什么?

      名字:超文本传输协议        
      用途:定义浏览器和服务器进行通信的信息格式(主要用来做网络当中的数据格式的)    属于应用层的协议    格式是报文的形式
      报文分成俩部分:
      请求报文:
      组成:请求头:第一行:请求方式    url    协议版本号
      请求体:数据:里面的内容根据不同的content-Type编码来决定的    里面的编码类型是不一样的
      响应报文:
      组成:响应头:第一行:协议版本    状态码    是否成功 (🆗为他的描述)
      响应体:数据:响应体就是相应的消息体    如果是纯函数将返回纯函数    如果请求的是HTML页面,那么返回HTML代码    如果是js就是js代码

      http与https的区别

      HTTP:    默认端口号    80
      三次握手建立连接
      传递数据
      HTTPS:    默认端口号    443
      三次握手建立连接
      客户端校验数字证书
      根据数据证书生成密钥
      SSL安全加密协商完成(RSA)
      传递数据

      重排(回流)和重绘是什么?什么情况下会触发重排和重绘。

      重构/重排/回流    reflow
      重绘    repint
      DOM  Tree + CSS Tree =     Render  Tree
                   重绘:当渲染树中的元素外观(如:颜色)发生改变,不影响布局时,产生重绘
      回流:当渲染树中的元素的布局(如:尺寸、位置、隐藏/状态状态)发生改变时,产生重绘回流
      注意:JS 获取 Layout 属性值(如:offsetLeft、scrollTop、getComputedStyle 等)也会引起回流。因为浏览器需要通过回流计算最新值
      回流必将引起重绘,而重绘不一定会引起回流