通过几轮面试,我发现真正那种问答的技术面,写一堆项目真不如去刷技术文章作用大,因此刷了一段时间的博客和掘金,整理下曾经被问到的2道面试题

  • 从浏览器输入URL按回车到页面显示都发生了什么

  • 说说你了解的HTTP/2

讲真,这2个问题笔者都没有试验过,纯粹整理其他文章成“可以用来答面试”的格式,如有错误欢迎指正。

从浏览器输入URL按回车到页面显示都发生了什么

  1. 浏览器根据URL进行DNS查询

    • 首先从DNS缓存中查询

    • 若未在缓存中找到,则不停的向上一级级请求DNS服务器

  2. 取得IP地址,建立TCP连接

  3. 构造HTTP请求报

    • 添加一些HTTP首部

    • 根据同源政策添加cookie

  4. 在TCP连接上发送HTTP报文,等待响应

  5. 服务器处理HTTP请求报文,返回响应HTTP响应报文

  6. 浏览器处理服务器返回的HTTP响应报文,若为HTML则渲染页面,不包括脚本的简单渲染流程如下

    1. 解析DOM、CSSOM

    2. 根据DOM、CSSOM计算render tree

    3. 根据render tree进行layout

    4. paint,至此,用户可以看到页面了

说说你了解的HTTP/2

讲真,看了那么多关于HTTP/2的文章,虽然没用过但是也能感觉出HTTP/2与HTTP/1.1的差距不是一点半点

这里整理的是“具体来说,对比HTTP/1.1,HTTP/2有哪些不同”

  • 在浏览器端,HTTP/2仅能在TLS下运行,也就是HTTPS。这不是因为HTTP/2标准强制要求,而是全球两大浏览器领导者 —— Firefox和Chrome都明确地表示,他们只会实现基于TLS的HTTP/2

  • HTTP/2取消了大量头字段,并且取消了小版本号。也就是说服务器和客户端都必须确定自己是否完整兼容http2或者彻底不兼容

  • 最重要的一点,HTTP/2不再是一个基于文本的协议,通过新增的二进制分帧层变成了一个二进制协议,这意味着:

    • HTTP/2使用二进制帧进行数据交换。HTTP/2规范中一共定义了10种帧,其中最基础的两种分别对应于HTTP/1.1的DATA和HEADERS帧

    • HTTP/2可以对压缩头信息进行压缩了。反正是二进制帧

  • 利用帧,HTTP/2可以在单个TCP连接上高效传输所有资源

    • 通过在单个连接上建立多个流,实现流的多路复用

    • 流可以指派一个优先级,也可以为流建立依赖关系。这样可以避免“浏览器明明在等关键的CSS和JS,服务器却还在发图片”

    • 完全避免线头阻塞

  • 服务器可以利用RST_STREAM帧随时中断某个chunk的发送

  • 服务器可以主动向客户端推送资源让客户端缓存。当然,客户端可以使用RST_STREAM帧拒绝掉服务器的“好意”

  • HTTP/2的流可以进行流量控制,通过公示流量窗口来限制另一端发送数据

如果让你用Js写个爬虫,你怎么写?

分an享li下自己用纯客户端javascript写的pixiv.net爬虫,在学习ES6或对js爬虫感兴趣的小伙伴欢迎Star一波哟~~

  • Github pea3nut/Pxer

  • 官网 pxer.pea3nut.org

参考文献

  • https://github.com/bagder/htt...

  • http://www.alloyteam.com/2015...

2道面试题:输入URL按回车HTTP2相关推荐

  1. 在浏览器中输入URL并回车后都发生了什么?

    1.解析URL ________________________________________________________________________ 关于URL: URL(Universa ...

  2. 输入URL按回车后,究竟发生了什么?

    来源:www.neroht.com/article-detail/18 正文 从一个经典的面试题说起,输入URL到页面展现的过程: 输入URL后,会先进行域名解析.优先查找本地host文件有无对应的I ...

  3. 地址栏输入url按回车发生了什么

    浏览器向DNS服务器(先查找缓存)查找输入URL对应的IP地址 DNS服务器返回对应的IP地址 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接 浏览器获取请求页面的html代码 浏览器 ...

  4. 【番外篇】2W字诚意满满的新活:常见接口测试69道面试题,附带答案

    最近发现面试题热度 挺好的,不过大家博客都只有面试题,从来都不带答案,顺手就码了点收集到的博客问题的答案 共69道,2W字,耗时两天(疯狂暗示)欢迎催更吹水,来一个人就是一份催更动力点击并输入暗号:C ...

  5. 从输入URL到页面成功展示到浏览器的过程?

    主干流程梳理: 知识体系中,最重要的是骨架,脉络.有了骨架后,才方便填充细节.所以,先梳理下主干流程: 从浏览器接收到url到开启网络请求线程(这一部分涉及浏览器的机制以及进程与线程之间的关系) 从开 ...

  6. vue----前端精选50道面试题---一个小白的孤芳自赏

    1.vue的工作流程 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191031090220424.png?x-oss-process=image/waterm ...

  7. 【WEB】从输入URL到页面渲染完成

    一.整个流程 1.当打开一个空白标签页时,浏览器主线程接管,会新创建一个Renderer进程,输入URL按回车,浏览器会开辟一个网络请求线程用于网络请求. 2.进行DNS域名解析,IP寻址(解析.迭代 ...

  8. 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

    之前和前辈交流,他问了我这样一个问题,自己一时没有答上来,今天可以研究了一下,看到了一篇很不错的博客,转载过来,供大家学习. 原文地址:http://blog.csdn.net/libin_1/art ...

  9. 「一道面试题」输入URL到渲染全面梳理中-页面渲染篇

    前置知识 此文是一道面试题,又不仅仅是一道面试题,不过这道题共分了三篇来说,嗯..可想而知 接上文,上文我们讲了网络通信的部分,详细请看「一道面试题」输入URL到渲染全面梳理上-网络通信篇, 那么该说 ...

最新文章

  1. 用ASP.NET上传图片并生成带版权信息的缩略图
  2. 远程登录linux进程的状态_Linux实操篇 - 远程登录到Linux系统
  3. 开源 免费 java CMS - FreeCMS1.2-标签 mailList
  4. java多线程对数组求和_java 多线程 求和
  5. 前端学习(1927)vue之电商管理系统电商系统之美化一层循环的UI结构for循环渲染第三层结构
  6. python txt转json_实战篇 | 用Python来找你喜欢的妹子(二)
  7. 一个简单示例 利用jawin完成调用window中dll的调用
  8. 淘宝直播应关注哪些方面?
  9. 中国的电商发展迅速,有了取代实体的趋势
  10. webpack2.7.0配置不同的打包环境
  11. Docker使用小结(一)Docker镜像以及Docker容器
  12. word流程图怎么做虚线框_Word2016如何制作虚线文本框?
  13. 刚学会的画丝滑的箭头ppt
  14. 一文了解AAAI国际会议–附: 各年论文连接
  15. apa引用要在文中吗_如何在研究论文中引用文献
  16. 不入耳式蓝牙耳机什么牌子好、最好的骨传导耳机推荐
  17. Plant Simulation之数字孪生
  18. idea2019版本有效激活码error问题
  19. Kafka实现淘宝亿万级数据统计
  20. 原生分布式数据库与分库分表中间件、云原生数据库有何区别

热门文章

  1. 安装Eclipse ADT插件时遇到的问题
  2. search result
  3. 阿里云提示WordPress“/wp-includes/http.php输入IP验证不当”的解决办法
  4. CDN-502 问题排查
  5. ACdream1032(树形DP)
  6. NoSQL and Redis
  7. 四十六、利用yarn多队列实现hadoop资源隔离
  8. oracle10 exp imp 中文乱码
  9. digitalocean添加ssh_keys
  10. [CLR via C#]25. 线程基础