笔试总结(HTTP(S)/虚拟内存/xhr)

原创 2017年10月03日 20:19:27

同花顺的笔试完虐我这种渣渣,没有选择填空,只有问答和编程题,且大部分C++/JAVA,完全懵逼,
陌陌的算法题60分,也懵到题目都搞不清楚
完美世界的比较均衡,选择很基础,编程题也不难,只是我的编译一直不通过很伤
下面总结一下不太清楚的知识点

1.虚拟内存

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
虚拟内存是Windows 为作为内存使用的一部分硬盘空间,可以解决执行的程序占用内存很大或很多,则会导致内存消耗殆尽的问题,若计算机运行程序或操作所需的随机存储器不足时,则 Windows 会用虚拟存储器进行补偿。但是,计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,因而扩增RAM容量是最佳选择。

虚存的大小要同时满足2个条件:
1.虚存的大小 ≤ 内存容量和外存容量之和。
2.虚存的大小 ≤ 计算机的地址位数能容纳的最大容量

因为计算机所支持的最大内存是由该计算机的地址位数决定的,也就是计算机的最大寻址能力。例如,32位机的寻址能力为2的32次方,大约为4G。所以虚拟内存的大小也受计算机地址位数的限制。

2.XmlHttpRequest对象的状态

readystate是一个只读属性,表示XHR对象当前的状态

0,对应常量UNSENT,表示XMLHttpRequest实例已经生成,但是open()方法还没有被调用。
1,对应常量OPENED,表示send()方法还没有被调用,仍然可以使用setRequestHeader(),设定HTTP请求的头信息。
2,对应常量HEADERS_RECEIVED,表示send()方法已经执行,并且头信息和状态码已经收到。
3,对应常量LOADING,表示正在接收服务器传来的body部分的数据,如果responseType属性是text或者空字符串,responseText就会包含已经收到的部分信息。
4,对应常量DONE,表示服务器数据已经完全接收,或者本次接收已经失败了。

state:表示请求所得的HTTP状态

200, OK,访问正常
301, Moved Permanently,永久移动
302, Move temporarily,暂时移动
304, Not Modified,未修改
307, Temporary Redirect,暂时重定向
401, Unauthorized,未授权
403, Forbidden,禁止访问
404, Not Found,未发现指定网址
500, Internal Server Error,服务器发生错误

HTTP状态码详解:

Http状态码
Http状态码

3.HTTP协议

3.1 HTTP1.1与1.0相比的优化:
  • 缓存处理
    header里引入了更多的缓存控制策略
  • 带宽优化及网络连接的使用
    在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206
  • 错误通知的管理
    新增了24个错误状态响应码
  • Host头处理
    请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)
  • 长连接
    支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟
3.2 HTTPS与HTTP的一些区别

1.HTTPS协议需要到CA申请证书
2.HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。
3.HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
4.HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题

3.3 SPDY:HTTP1.x的优化
  • 降低延迟
    针对HTTP高延迟的问题,SPDY优雅的采取了多路复用(multiplexing)。多路复用通过多个请求stream共享一个tcp连接的方式,解决了HOL blocking的问题,降低了延迟同时提高了带宽的利用率
  • 请求优先级
    多路复用带来一个新的问题是,在连接共享的基础之上有可能会导致关键请求被阻塞。SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应
  • header压缩
    前面提到HTTP1.x的header很多时候都是重复多余的。选择合适的压缩算法可以减小包的大小和数量
  • 基于HTTPS的加密协议传输
    大大提高了传输数据的可靠性
  • 服务端推送
    采用了SPDY的网页,例如我的网页有一个sytle.css的请求,在客户端收到sytle.css数据的同时,服务端会将sytle.js的文件推送给客户端,当客户端再次尝试获取sytle.js时就可以直接从缓存中获取到,不用再发请求了
3.4 HTTP2.0性能惊人

HTTP2.0可以说是SPDY的升级版
HTTP2.0和SPDY的区别

  • HTTP2.0 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS
  • HTTP2.0 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE
    HTTP2.0和HTTP1.X相比的新特性
  • 新的二进制格式
    HTTP1.x的解析是基于文本,HTTP2.0的协议解析采用二进制格式,实现方便且健壮
  • 多路复用
  • header压缩
  • 服务端推送

HTTP2.0的多路复用和HTTP1.X中的长连接复用有什么区别?
HTTP/1.* 一次请求-响应,建立一个连接,用完关闭;每一个请求都要建立一个连接;
HTTP/1.1 Pipeling解决方式为,若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有某请求超时等,后续请求只能被阻塞,毫无办法,也就是人们常说的线头阻塞;
HTTP/2多个请求可同时在一个连接上并行执行。某个请求任务耗时严重,不会影响到其它连接的正常执行;

版权声明:本文为博主原创文章,未经博主允许不得转载。

XHRHttpRequest原生js代码

注:创建xhr对象在IE5+以下的browser是ActiceXObject的示例,其他浏览器是XHRHttpRequest的实例 // create xhr object cross browse...
  • Szu_AKer
  • Szu_AKer
  • 2016年08月23日 16:35
  • 2434

http(xhr)

数据流向:get从服务器端获取数据,post将数据传递到服务器数据大小:get一般不超过2k,post一般默认没有限制安全性:get安全性低,post反之限制:post可以用于文件传输,get则不行...
  • qq_34992747
  • qq_34992747
  • 2016年12月08日 07:51
  • 191

XHR finished loading […] log message

每次Ajax请求,Chrome浏览器控制台提示如图XHR finished loading信息。点击上图Settings按钮,在打开的面板中取消Log XMLHttpRequests选项。...
  • gqshao
  • gqshao
  • 2015年11月25日 12:43
  • 7667

使用 XHR、jQuery 和 Fetch 实现 AJAX

AJAX 即 Asynchronous JavaScript and XML,异步的 JavaScript 和 XML。使用 AJAX 可以无刷新地向服务端发送请求接收服务端响应,并更新页面。 ...
  • hj7jay
  • hj7jay
  • 2016年12月29日 11:08
  • 1197

String字符串处理常见的面试题总结

首先,我们要先了解常量池的概念,常量池在java中用于保存在编译期已确定的,存在于已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,如String s = “...
  • nwpu_geeker
  • nwpu_geeker
  • 2017年12月03日 14:06
  • 171

XHR对象send方法的同异步问题

XHR对象上的send方法不仅是用于发送数据部分,只有调用了send方法,整个HTTP请求头才会被发出,然后才是真正的内容部分。如此复杂的过程在规范中也没有具体的定义,所以目前各大浏览器上的实现都存在...
  • alex8046
  • alex8046
  • 2016年03月22日 16:14
  • 1426

[转载]阿里前端笔试总结

1.有一个长度未知的数组a,如果它的长度为0就把数字1添加到数组里面,否则按照先进先出的队列规则让第一个元素出队。 分析:这道题主要是考核了数组的队列方法和栈方法。另外,原题还有字数限制的,只有在字数...
  • u012863664
  • u012863664
  • 2017年04月22日 16:22
  • 214

Spark面试经典系列之数据倾斜解决方案的“银弹”是什么? 本节我们对Spark数据倾斜解决方案进行回顾和总结

Spark面试经典系列之数据倾斜解决方案的“银弹”是什么? 本节我们对Spark数据倾斜解决方案进行回顾和总结:1、   数据倾斜运行的症状和危害。如果发行数据倾斜,往往发现作业任务运行特别缓慢,出现...
  • duan_zhihua
  • duan_zhihua
  • 2017年07月11日 21:19
  • 382

Python 模拟Ajax/XMLHttpRequest

Ajax是目前流行的网页加载模式,可以不刷新网页页面实现数据更新。 但是对我们需要抓取网页内容来说,多了一层障碍,不过无敌的Python很容易抓取Ajax内容。 需要注意的是要添加一个Co...
  • wcc526
  • wcc526
  • 2013年12月07日 22:16
  • 3872

谷歌浏览器和火狐浏览器设置跨域和https、http混用

Chrome    添加启动项: 右键点击Chrome快捷方式,在目标一栏后添加启动项 允许跨域: --disable-web-security --user-data-d...
  • gramdog
  • gramdog
  • 2018年02月01日 10:46
  • 27
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:笔试总结(HTTP(S)/虚拟内存/xhr)
举报原因:
原因补充:

(最多只允许输入30个字)