笔试总结(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多个请求可同时在一个连接上并行执行。某个请求任务耗时严重,不会影响到其它连接的正常执行;

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

相关文章推荐

实例总结:查看虚拟内存状态

本文主要是对完成的实例的一个总结,由于长时间不接触,涉及到一些技术细节记录下来。 一 对话框之间的消息传递实现数据传递 二 CListCtrl按列排序问题 三 打开进程OpenProcess 四 ...

虚拟内存管理总结

操作系统为每一个进程维护着一个虚拟的地址空间,这个地址空间的大小通常取决于系统的地址线数目,比如在32位系统中,虚拟地址空间的返回就是0×00000000~0xFFFFFFFF,大小共4G。通常操作系...
  • fxqcn
  • fxqcn
  • 2011-11-22 13:35
  • 351

虚拟内存的分页机制一点总结(机制及倒排页表)

1.设计思想 用固定大小的页来描述逻辑地址空间,用相同大小的页框来描述物理内存空间,由操作系统实现从逻辑页到物理页框的映射,同时负责对所有页的管理和进程运行的控制 2. 相关名称定义 页...

虚拟内存linux

  • 2015-08-29 21:32
  • 899KB
  • 下载

Linux下 swap分区 虚拟内存 的创建、调整、修改、挂载

SWAP分区是Linux的交换分区。交换分区实际存在于磁盘中,不过Linux系统可以将它当作内存使用,当物理真实内存不足的时候交换分区就可以和真实内存进行数据交换。简单地说就是从磁盘里拿出一块空间当作...

物理内存、虚拟内存

Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册      博文     博主  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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