当前位置:K88软件开发文章中心编程语言LinuxLinux01 → 文章内容

小米面试记

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 9:01:19

-->

小米面试的依旧是运维开发,面试官问我要做 SA 还是 coder,我说要做 coder。以下是电面中问到的问题:

1,tcp 报头有哪些选项及其作用

说了源端口,目标端口,校验和,序列号,确认号,滑动窗口,数据


tcp 报头

2,LVS 的原理及配置

这个我前面几篇提到过,确实是面试的重点

3,在浏览器输入 www.xiaomi.com 发生的全部过程

对于使用 CDN 的网站(从运维的角度解释)

  • 1,解析域名:先查找浏览器 DNS 缓存,查找不到然后就会到系统的
    1
    hosts

    文件和系统缓存中查找,若找不到,则继续查找路由器的 DNS 缓存,若还没有,则查找

    1
    Local DNS

    缓存,若没有则

    1
    Local DNS

    会从根开始进行迭代查找,最终找到域名的

    1
    CNAME

     记录。浏览器需要再次对获得的

    1
    CNAME

    域名进行解析,再次过程中会用到智能

    1
    CDN

    的解析得到离用户最近的缓存服务器的 IP

  • 2,建立连接:查找到 IP 记录后,然后就开始进行 TCP 三次握手建立连接
  • 3,传输数据:客户端向缓存服务器发出请求,根据 HTTP 中指定的资源,缓存服务器中有的会直接让
    1
    tcp

    传输给客户端,没有的则会请求源站,源站可能还会有像

    1
    varnish,squid

    这样的缓存服务器,若有资源则直接返回给

    1
    CDN

    的缓存服务器,若没有则向

    1
    Web

    服务器(像

    1
    nginx,apache,LVS

    )请求,

    1
    web

    服务器将动态请求转发到后端的应用服务(像

    1
    php,tomcat,uwsgi

    等),若后端配置有

    1
    redis,memcache

    数据库缓存服务器,应用服务器会先请求

    1
    NoSQL

    ,若没有则

    1
    NoSQL

    请求数据库服务器(像

    1
    MySQL/MariaDB

    等),然后将数据发送给前端,并在自身缓存一份。然后服务器将数据传送到

    1
    CDN

    的缓存服务器,再将数据传送到客户端。

  • 4,浏览器渲染页面

4,讲一下你的爬虫项目

讲了一下我是如何实现的,然后如何处理数据及生成 API,然后又问了几个有关项目中的问题

文/田飞雨(简书作者)
原文链接:http://www.jianshu.com/p/cebd531174d7
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

小米面试记