菜鸟笔记
提升您的技术认知

面试题

实现一个LRU Cache 算法LRU Cache C++三种解法java实现LRU算法及编码实现LRU策略缓存LRU算法常见缓存算法和LRU的c++实现设计循环双端队列(deque)LRU 缓存结构 (c++ 哈希双链表实现)LRU缓存机制删除单链表中的指定节点Linux 内核经典面试题拼多多社招面经:Redis是重点,讲一讲redis的内存模型线程、进程、协程的区别C++经典面试题面试官:我们只想要这样的C++工程师Linux C/C++ 学习路线链表操作汇总C++11的智能指针面试题浏览器中输入url后发生的事情常用的限流算法HTTP协议和HTTPS协议面试题网络编程面试题目总结c++后台面试题目如何实现LRU算法?如何寻找无序数组中的第K大元素?布隆过滤器 - 如何在100个亿URL中快速判断某URL是否存在?如何实现大整数相加?C++面试题及基本知识点总结C++给定出栈序列判定是否合法消息队列面试题要点redis缓存击穿,失效以及热点key解决方案网页在浏览器上的渲染过程几种限流算法lru算法例题C/C++常见面试知识点总结附面试真题----20210529更新引入MQ消息队列的作用及其优缺点MySQL面试篇社招三年后端面试题60道测开面试题,背完直接涨工资二叉树的层序遍历(两种方法实现)Bitmap 海量数据处理字符串倒序输出的五种方法C语言 输入10个数,统计出并输出正数、负数和0的个数字节三面:如何设计一个高并发系统架构,网络 面试36问,DDos攻击原理C++线程池使用 C++11 编写可复用多线程任务池

浏览器中输入url后发生的事情

阅读 : 1114

这是一个经典的面试题,没有固定答案,越详细越好

此篇博客引用自一篇我认为很经典的文章,在此附上文章的地址。

  1. 我们在浏览器中输入网址。
  2. 浏览器查找域名对应的IP地址
DNS查找过程为:
浏览器缓存->系统缓存->路由器缓存->ISP DNS缓存->递归搜索
递归搜索过程为:从根域名服务器到顶级域名服务器到你查询的域名服务器。
  1. 浏览器打开TCP连接(默认端口为80),向该IP的服务器发送一条HTTP请求,如果浏览器存储了该域名下的cookie,那么cookie也会放入http请求中
  2. 服务器给浏览器进行一个301永久重定向响应。该IP对应的服务器很可能是代理服务器,比如你输入“http://baidu.com”,而不是“http://www.baidu.com”,按道理这两个网址对应的是同一个网页,因此通过代理服务器的方式进行重定向相应,让这两个网址访问的是同一个网页。
  3. 浏览器根据重定向地址再次进行HTTP请求。
  4. 服务器分析HTTP请求,生成HTTP响应,将响应发给客户端。
  5. 浏览器收到响应内容之后,生成主页框架,同时向服务端继续发送请求,请求的内容是主页里的一些资源,比如说图片、视频等。
  6. 对于静态的页面内容,浏览器通常进行缓存,对于动态的内容通常不缓存,缓存的时间也是有期限的。
  7. 浏览器向服务器发送异步请求,因为有些页面显示完成之后客户端仍需要与服务端保持联系。
  8. 整个过程结束之后,浏览器关闭TCP连接。