面试题:一个 URL 在浏览器被输入到页面展现的过程中发生了什么

news2024/11/15 23:44:49

文章目录

  • 前言
  • 一、回答
  • 二、深入追问


前言

这是一段~ 经典的旋律 ~,不好意思串台了,哈哈,这是一个经典的面试题:一个URL从浏览器到页面的过程中发生了什么,那么今天就带大家九浅一深来研究一下

觉得不错的同学可以加我公众号,会经常分享一些技术干货,以及热点AI和科技新闻
在这里插入图片描述


一、回答

一般过程:
URL解析: 浏览器首先解析输入的 URL,分解成协议、主机名、路径、查询参数等部分。
DNS解析: 浏览器会查询 DNS 服务器,将主机名解析成对应的 IP 地址。
建立连接: 浏览器向服务器发起连接请求,可以是 TCP 连接(HTTP)或 TLS 连接(HTTPS)。
发送请求: 浏览器向服务器发送 HTTP 请求,包括请求方法(GET、POST 等)、请求头部、请求体等信息。
接收响应: 服务器接收到请求后,处理请求并返回响应,包括状态码、响应头部、响应体等信息。
渲染页面: 浏览器接收到响应后,根据响应内容渲染页面,解析 HTML、CSS、JavaScript 等资源,并显示在用户界面上。

不同协议的区别:
HTTP 和 HTTPS: 主要区别在于安全性,HTTPS 使用了 SSL/TLS 加密传输数据,防止数据被窃取和篡改。
HTTP/1.x 和 HTTP/2: HTTP/2 相对于 HTTP/1.x 有诸多优化,如多路复用、头部压缩、服务器推送等,提高了性能和效率。
在不同协议下,整个过程的步骤基本一致,但是在建立连接和传输数据的过程中有所不同,特别是在安全性和性能方面。例如,HTTPS 需要进行 SSL/TLS 握手,而 HTTP/2 则支持多路复用等特性,从而提高了数据传输的效率。

回答这个问题时,可以根据以上步骤和不同协议的特点逐一解释,以展示自己对 Web 请求过程的理解和对不同协议的认识。

二、深入追问

面试官:
感谢你的回答。你对HTTP/1.x和HTTP/2的性能优化有了解吗?

求职者:
是的,HTTP/2相比于HTTP/1.x在性能上有很多优势。其中一个显著的区别是HTTP/2引入了多路复用的机制,可以同时在一个连接上发送多个请求和响应,避免了HTTP/1.x中的队头阻塞问题。此外,HTTP/2还支持头部压缩和服务器推送等特性,能够进一步提升网络传输效率和页面加载速度。

面试官:
那你能详细解释一下HTTP/2的多路复用是如何工作的吗?

求职者:
当客户端和服务器之间建立了一个HTTP/2连接后,这个连接上可以同时传输多个请求和响应。每个请求和响应都有一个唯一的标识符,称为Stream ID。HTTP/2使用这些Stream ID来区分不同的请求和响应,然后通过帧(Frame)来传输数据。多路复用意味着这些帧可以在同一个连接上交错传输,而不需要像HTTP/1.x那样一个请求一个连接。这样就避免了HTTP/1.x中因多个连接导致的队头阻塞问题,从而提高了网络传输的效率。

面试官:
非常好,你对HTTP/2的理解很透彻。那么你能谈谈HTTP/1.x中的队头阻塞问题吗?

求职者:
当浏览器发起多个请求时,如果这些请求使用同一个TCP连接,那么在HTTP/1.x中就会出现队头阻塞问题。因为HTTP/1.x是按顺序发送请求和响应的,如果前一个请求耗时较长,那么后面的请求就必须等待前一个请求完成后才能发送。这样就会导致后续请求的延迟,降低了页面加载速度。

面试官:
明天来上班吧~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1605997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMQ 02 功能大纲介绍

RocketMQ 02 主流的MQ有很多,比如ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等。 之前阿里巴巴也是使用ActiveMQ,随着业务发展,ActiveMQ IO 模块出现瓶颈,后来阿里巴巴 通过一系列优化但是还是不能很好的解决,之后…

SAP SD学习笔记06 - 受注的据否,受注的理由,简易变更(一括处理)

上文讲了一括处理和Block(冻结)处理。 SAP SD学习笔记05 - SD中的一括处理(集中处理),出荷和请求的冻结(替代实现承认功能)-CSDN博客 本章继续讲SAP的流程中一些常用的操作。 1,受注…

计算机网络练习-计算机网络体系结构与参考模型

计算机网络分层结构 ----------------------------------------------------------------------------------------------------------------------------- 1.在ISO/OSI参考模型中,实现两个相邻结点间流量控制功能的是( )。 A.物理层 B. 数据链路层 C.网络层 D.传…

Nougat项目学习

简介 论文学习 https://arxiv.org/abs/2308.13418 项目地址 GitHub - facebookresearch/nougat: Implementation of Nougat Neural Optical Understanding for Academic Documents 项目主页 Nougat 这个项目主要是实现将pdf文档图片转换为markdown格式;针对纯英…

【蓝桥杯2025备赛】素数判断:从O(n^2)到O(n)学习之路

素数判断:从O( n 2 n^2 n2)到O(n)学习之路 背景:每一个初学计算机的人肯定避免不了碰到素数,素数是什么,怎么判断? 素数的概念不难理解:素数即质数,指的是在大于1的自然数中,除了1和它本身不再有其他因数的自然数。 …

宏集eX700M系列HMI实现港口设备数据上云

前言 随着港口设备信息化技术的快速发展,越来越多的企业想要把现场设备数据上传到云平台,进而实现关键数据的远程监控和分析处理。在此背景下,国内某信息化公司想要将港口设备数据通过MQTT上传到该公司自研IOT平台,实现数据上云&…

我三战华东师范大学的同桌真的很牛

标题党一下,其实是我的一个关系很好的高中同桌死磕华东师范大学三年,最终第二名上岸的故事。 其实我们是同一届的,我为了早点走选择了个排名还行的双非院校就走了,而我这个同桌相当有毅力,他能坚持这么久我其实很佩服&…

C++类和对象 中(六大默认成员函数)

前言 紧接着上一篇文章,接下来我们来认识下类的六大默认成员函数,如下图。之所以叫他默认成员函数,是因为即使我们不写,编译器会默认帮我们写,但只要我们自己显示的写了,编译器就不会帮我们生成对应的成员函…

基于小程序实现的精准扶贫数据收集系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:ssm 【…

Canal 同步mysql 到es 日期格式报错解决

第一步:下载源码alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com) 第二步:编辑源码(client-adapter下面的clinet-adapter.escore): com.alibaba.otter.canal.client.adapter.es.core.support.ESSyncUt…

C++修炼之路之反向迭代器和非模板参数,模板特化,分离编译

目录 前言 一:反向迭代器 二:非类型模板参数 三:模板的特化 四:模板的分离编译 五:模板的优点与缺点 接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 前言 在vector&am…

【网站项目】自习室预约系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

C#下Httpclient post请求获取令牌

1.postman测试ok 2.C#代码 public static async Task<string> testGetToken(string URL, string param){string responseBody "eee";//using (var clientHandler new HttpClientHandler()){ var handler new HttpClientHandler();handler.ServerCertificat…

如何在 VM 虚拟机中安装 OpenEuler 操作系统保姆级教程(附链接)

一、VMware Workstation 虚拟机 若没有安装虚拟机的可以参考下篇文章进行安装&#xff1a; 博客链接https://eclecticism.blog.csdn.net/article/details/135713915 二、OpenEuler 镜像 点击链接前往官网 官网 选择第一个即可 三、安装 OpenEuler 打开虚拟机安装 Ctrl …

Kali Linux扩容(使用图形化界面)

因为今天在拉取vulhub中的镜像的时候报错空间不够&#xff0c;因为最开始只给了20GB的空间&#xff0c;所以现在需要扩容了&#xff0c;结合了一下网上的找到了简便的解决方法 1.首先虚拟机设置->磁盘->扩展 小插曲&#xff1a;在对虚拟机磁盘进行扩容以后&#xff0c;…

美女视频素材无水印哪里找?四个顶级资源站点

寻找高质量的美女视频素材无水印对于制作引人注目的视频内容至关重要。如果你正困惑于“美女视频素材无水印哪里找”&#xff0c;以下是四个提供优秀无水印美女视频素材的网站&#xff0c;可以满足你的各种创作需求。 蛙学网&#xff1a;多样化的美女视频素材 首先推荐的是蛙…

若依 ruoyi-vue el-select 多选框 全选 反选 全不选 查询功能

参考文章vueel-select下拉实现&#xff1a;全选、反选、清空功能 如图&#xff0c;优化代码&#xff0c;支持若依字典 import multipleSelect from /components/MultipleSelect/index.vuecomponents: { multipleSelect },<el-row><el-form-item label"分管领域…

关于 AssertionError: Torch not compiled with CUDA enabled 问题

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

安全开发实战(4)--whois与子域名爆破

目录 安全开发专栏 前言 whois查询 子域名 子域名爆破 1.4 whois查询 方式1: 方式2: 1.5 子域名查询 方式1:子域名爆破 1.5.1 One 1.5.2 Two 方式2:其他方式 总结 安全开发专栏 安全开发实战​​http://t.csdnimg.cn/25N7H 前言 whois查询 Whois 查询是一种用…

《四月女友》定档5月18日 佐藤健、长泽雅美演绎唯美爱情

由川村元气担任编剧&#xff0c;山田智和导演&#xff0c;佐藤健、长泽雅美、森七菜主演的唯美爱情电影《四月女友》今日正式宣布定档5月18日&#xff0c;并发布了“相恋”版预告和“相拥”版海报。预告中&#xff0c;优美宁静的风景令人心生向往&#xff0c;藤代俊&#xff08…