评级是怎么知道的
点赞 评论

相关推荐

一笑而过2222:当在网页上点击一个URL后,大致会经历以下过程最终实现网页渲染: 一、URL解析与请求发起 1. URL解析 - 浏览器首先对点击的URL进行解析。URL一般由协议(如http://或https://)、域名(如www.example.com)、端口号(如果有指定,默认http为80,https为443)、路径(如/index.html)以及查询参数(如?id=123)等部分组成。浏览器会根据解析出的信息确定要请求的目标服务器和资源路径。 2. 检查缓存 - 浏览器会检查本地缓存,包括浏览器缓存和可能存在的系统级缓存(如DNS缓存)。如果缓存中有与该URL对应的有效资源(如HTML文件、图片、CSS文件、JavaScript文件等),浏览器会直接使用缓存内容,不再发起网络请求,这可以大大提高网页加载速度。 3. DNS解析(如果需要) - 如果缓存中没有对应的有效资源,且URL中的域名需要解析,浏览器会进行DNS解析。DNS解析是将域名转换为对应的IP地址的过程。浏览器会首先查询本地DNS缓存,如果没有找到,会向本地DNS服务器发送请求,如果本地DNS服务器也没有找到,会继续向上一级DNS服务器查询,直到找到对应的IP地址。 4. 建立连接 - 浏览器使用解析出的IP地址和URL中的端口号(如果有指定,默认情况如上述),通过TCP/IP协议建立与服务器的连接。这一过程包括三次握手,即客户端向服务器发送一个SYN包,服务器收到后向客户端发送一个SYN + ACK包,客户端再向服务器发送一个ACK包,完成连接建立。 二、服务器响应 1. 接收请求并处理 - 服务器接收到浏览器的请求后,会根据请求的URL和方法(如GET、POST等)进行相应的处理。如果请求的是一个静态资源(如HTML文件、图片、CSS文件、JavaScript文件等),服务器会直接从文件系统中获取该资源并进行相应的处理;如果请求的是一个动态资源(如一个通过服务器端脚本生成的页面),服务器会执行相应的脚本代码,从数据库或其他数据源获取数据,然后生成相应的HTML等文件内容。 2. 构建响应 - 服务器将处理后的结果构建成一个HTTP响应报文。响应报文包括响应状态码(如200表示成功、404表示未找到资源等)、响应头(如Content-Type指定内容类型,如text/html;Cache-Control指定缓存策略等)和响应体(即网页的实际内容,如果是HTML文件,则是HTML代码)。 3. 发送响应 - 服务器将构建好的HTTP响应报文发送回浏览器。 三、浏览器接收响应并处理 1. 接收响应 - 浏览器接收到服务器发送的响应报文后,首先根据响应状态码判断请求是否成功。如果状态码为200等成功状态码,浏览器会继续处理响应内容;如果是404等失败状态码,浏览器会根据自身的设置进行相应的处理,如显示错误页面。 2. 解析响应头 - 浏览器会解析响应头中的信息。根据Content-Type等信息确定如何处理响应体。例如,如果Content-Type为text/html,浏览器会知道要解析HTML文件;如果是image/jpeg,浏览器会知道要显示一张JPEG图片。 3. 处理响应体(HTML文件处理为例) - 如果响应体是一个HTML文件,浏览器会开始解析HTML代码。在解析HTML过程中,会遇到各种标签和元素。 - 当遇到CSS和JavaScript文件的引用时(如通过标签引用CSS文件,通过标签引用JavaScript文件),浏览器会再次发起请求获取这些资源。对于CSS文件,浏览器会解析并构建CSSOM(CSS Object Model);对于JavaScript文件,浏览器会下载并执行脚本,脚本可能会修改DOM(Document Object Model)和CSSOM。 四、网页渲染 1. 构建渲染树 - 浏览器在构建完DOM和CSSOM后,会将两者结合生成渲染树(Render Tree)。渲染树只包含需要显示在页面上的元素和其对应的样式信息。它会去除DOM中那些不需要显示的元素(如标签内的大部分元素)和CSSOM中那些没有应用到页面元素的样式信息。 2. 布局 - 浏览器根据渲染树进行布局(Layout),确定每个元素在屏幕上的位置和大小。这一过程涉及到计算元素的坐标、尺寸以及与其他元素的相对位置关系等。 3. 绘制 - 最后,浏览器进行绘制(Paint),将元素绘制到屏幕上,完成网页的渲染。在绘制过程中,可能会涉及到分层绘制、图形加速等技术,以提高绘制效率和质量。
点赞 评论 收藏
分享
普联 开发 sp+6
点赞 评论 收藏
分享
头像
10-23 11:09
已编辑
上海交通大学 Java
纪念并记录下秋招第一个二面,发发面经,攒人品,许愿oc!时间线:9.18号投递9.20号笔试+AI面试,3道编程题A了2道10.9号一面,应该是被某部门捞了,但也是后端开发10.12号二面10.17号hr面10.23发现回人才库(罢了罢了)一面:自我介绍你的研究方面和岗位不是很匹配,怎么看详细描述浏览器输入网址到看到网页的过程刚刚提到的HTTP协议属于OSI的第几层,是基于什么协议的介绍TCP协议的三次握手TCP协议用哪些方式保证传输信息的可靠性什么是TCP的拥塞控制(慢启动、拥塞避免、快重传、快恢复)TCP在什么情况下判断数据包丢失,触发快重传(发送方连续收到3个相同的ACK)TCP流量控制的算法(滑动窗口)除了窗口,还有哪些限流算法(当时没回答出来,复盘时想起应该还有令牌桶算法和漏桶算法)HTTP和HTTPS请求及协议的区别HTTPS用到的安全协议是什么使用的加密算法是对称加密和还是非对称(当时回答非对称,复盘时想起应该是在证书验证阶段使用非对称,后面的数据传输为对称加密)私钥谁保管进程与线程的区别知道协程吗,协程与进行、线程的区别进程的基本状态进程间的通信方式Linux下的IO模型(当时只回答了BIO和NIO)除了BIO和NIO,你知道还有多路复用吗你知道Linux下的系统调用吗(不清楚,面试官补充是select、poll这种,但是确实没准备到)Spring的IOC是什么Spring对象是线程安全的吗?(回答,Spring的bean一般是单例的,单例的无状态的bean是线程安全的,如果是有状态的,即有可变的成员变量,就不是线程安全的)如何解决有状态的bean的线程安全问题?(简单方法将可变的成员用final修饰变为不可变,但是推荐使用ThreadLocal保存可变成员变量)有什么办法定义多例bean介绍ThreadLocal底层数据结构父线程定义的TreadLocal如何在子线程获取到(这个不会,瞎说的,面试官有引导,但是依然没说对)子线程中把某个变量清理掉,父线程还能拿到那个变量吗(这个也不会)线程池的重要参数核心线程是否会被回收(不会被回收)拒绝策略有哪些抢购场景如何设计线程池(瞎说的)锁的可重入性公平锁和非公平锁的区别MySOL的事务隔离级别Spring如何实现事务如何使用AOP技术,简单地说就是把两个插入同时放到一个事务中你知道RPC吗(不知道)你知道CAP吗(不知道,RPC和CAP都没准备到,应该是Spring cloud中的,后面反问的时候面试官也提到对Spring cloud相关的一套东西都不了解)手撕:选择数组中第K个大的元素,我直接Array.sort,然后输出k-1过了反问:多久可以收到下一次面试通知面试官提出一个我的问题:只了解基础的东西不够,实际工作中基础体现得不是很明显,大部分还是实际使用的中间件(确实,没有实习,实践经历是硬伤啊!)工作地是否有问题因为手撕太简单了而且笔试过了好久才有的一面,部门也跟投递时不同明显被捞,我以为是kpi面,但是上午面完,下午就收到了二面。二面:聊项目(一个大模型相关的,跟后端开发没有关系,但是因为跟毕设相关很熟,自我感觉回答得不错,第一次二面觉得很神奇)手撕:leetcode026重排列表反问:还有几面部门业务上午面的,中午收到HR面10.17 HR面一些比较基础的问题等待oc! (等个鬼 10.23回人才库) #美团# #美团求职进展汇总# #美团面经#
点赞 评论 收藏
分享
牛客网
牛客企业服务