记下一些我自己觉得有意思的面试题

2019年11月11日---2019年11月13日 这一周的前面三天都在面试,面试了几家公司,所有记录下来几个自己觉得非常有意思的面试题:

1.极光公司

在使用数组和对象的过程中需要注意什么?

富途公司

1.常见的状态码有哪些:

回答:200 500 404 401 

502BadGateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

504错误代表网关超时 (Gateway timeout),是指服务器作为网关或代理,但是没有及时从上游服务器收到请求

扫描二维码关注公众号,回复: 7837274 查看本文章

比较有意思的是304

如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码。简单的表达就是:服务端已经执行了GET,但文件未变化。

什么情况下会返回304状态码

客户端是怎么知道这些内容没有更新的呢?其实这并不是客户端的事情,而是你服务器的事情,大家都知道服务器可以设置 缓存机制,这个功能是为了提高网站的访问速度,当你发出一个GET请求的时候服务器会从缓存中调用你要访问的内容,这个时候服务器就可以判断这个页面是不是更新过了,如果未更新过那么他会给你返回一个304状态码。
例如:一些搜索引擎是如何知道我们的网站是否有更新。判断网页是否发生变化最直接的方法是设置页面的某一处为监控区域,每次都抓取该部分区域的内容,然后与本地保存的或最 近一次抓取内容比较,如果有差异就表明网页发生了变化,才可以进行解析。这种方法比较稳妥,几乎可达到万无一失的效果。但是,这种方式在每次扫描时都要下载页面内容,并且要去截取监控区域的内容,最后还要进行字符串比较,整个过程比较耗时。其实在众多网页中,有一部分网站的网页内容是 静态页面,如图片,html,js等,这些静态页面往往可能是服务器早已准备好的,用户访问时仅仅是下载而已。那么针对这种静态页面,就可以仅仅通过304状态码来判断,内容是否发生了变化。

如何从网站日志中分析304状态码

例如某 网站日志中有以下这样的一段:
2011-12-18 23:45:33 W3SVC7499849XX 61.145.116.XX GET /asyj/1112_5544.html - 80 - 123.125.71.78 Mozilla/5.0+(compatible;+ Baiduspider/2.0;++http://***.baidu.coX/search/spider.html  [1]  ) 304 0 0
其实这段文字是这样理解的。
2011-12-18 23:45:33 ——代表访问的日期和时间。
W3SVC7499849XX ——代表 虚拟主机的名称
61.145.116.XX ——代表访问ip
GET ——代表访问的方法
/asyj/1112_5544.html——代表具体访问的文件
80 ——代表访问的端口
123.125.71.78 ——代表来源ip
Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://***.baidu.coX/search/spider.html) ——代表 访问来源;这里是代表 百度蜘蛛。注*换为w
304 ——304返回码。这个也是这里介绍的重点。这里表示客户端已经执行了GET,但文件未变化
前一个0 ——代表 服务端传送到客户端的字节大小
后一个0 ——代表客户端传送到服务端的字节大小
从这一段日志。我们可以看出这次百度蜘蛛访问的结果的返回了一个304状态码。那么搜索引擎就不会对我们的页面进行再次抓取了

304状态码的意义所在

如果一个网站被搜索引擎抓取的次数以及频率越多那么他是越有利于排名的,但是如果你的网站出现太多的304,那么一定会降低搜索引擎的抓取频率以及次数,从而让自己的 网站排名比别人落一步。
 
@网站排名是指搜索引擎(国内主要是百度,外国主要是google)对网站展示出来的先后次序,目前做网站排名的工作名叫SEO,网站的排名好坏的因素有很多。
网站排名目前来说的影响因素有很多,在做好基础的网站优化后最后影响的是用户体验。
2.使用递归的方法实现斐波那契数列的方法
缓存  性能优化问题
 
通过问这几道题,我觉得富途公司是不错的。
 
 

猜你喜欢

转载自www.cnblogs.com/DZzzz/p/11846347.html