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

文章目录

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


前言

这是一段~ 经典的旋律 ~,不好意思串台了,哈哈,这是一个经典的面试题:一个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是按顺序发送请求和响应的,如果前一个请求耗时较长,那么后面的请求就必须等待前一个请求完成后才能发送。这样就会导致后续请求的延迟,降低了页面加载速度。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

波士顿动力抛弃液压机器人Atlas,推出全新电动化机器人,动作超灵活

本周,机器人科技巨头波士顿动力宣布液压Atlas退役,并推出了下一代产品——专为实际应用而设计的全电动Atlas机器人,这也意味着人形机器人迈出了商业化的第一步。 Atlas——人形机器人鼻祖 Atlas(阿特拉斯)这个名字最…

CTFHUB-技能树-Web前置技能-文件上传(前端验证—文件头检查)

CTFHUB-技能树-Web前置技能-文件上传(前端验证—文件头检查) 文章目录 CTFHUB-技能树-Web前置技能-文件上传(前端验证—文件头检查)前端验证—文件头检查题目解析 各种文件头标志 前端验证—文件头检查 题目考的是:pn…

【笔试强训】DFS、优先队列、滑动窗口笔试题目!

文章目录 1. 单词搜索2. 除 2 操作3. dd 爱框框 1. 单词搜索 题目链接 解题思路: DFS (深度优先遍历),用一个 pos 记录要匹配单词 word 的位置,每次与 pos 进行匹配判断(这样做的好处是不用把答案存下来) 注意细节…

深入解析Nacos配置中心的动态配置更新技术

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在微服务架构中,配置管理变得尤为关键。Nacos,作为一个开源的、易于使用的、功能丰富的平台,为…

electron的webview和内嵌网页如何通信

在 Electron 的世界里,webview 标签相当于一个小盒子,里面可以装一个完整的网页,就像一个迷你浏览器。当你想和这个小盒子里的内容说话时(也就是进行通信),这里有几个方法可以帮你做到: 这里只写…

轻量化模块整理,即插即用

轻量化模块整理,即插即用(持续更新) 整理一些轻量化的结构,作为知识储备,可以用到后续的项目和研究中 Mobilenetv3 深度可分离卷积 MobileNetV3 是一个轻量级的深度学习模型,专为移动和边缘设备上的高效…

conda配置多版本python

安装conda 以下任选下载 Anaconda Miniconda 配置conda环境变量 比如windows,在配置我的电脑中的环境变量,在系统变量的Path中新增下面内容 需要根据实际目录进行更改 D:\soft\miniconda3 D:\soft\miniconda3\Scripts D:\soft\miniconda3\Library\bi…

windows与linux双系统下,为linux系统/boot独立分区扩容

问题 安装ubuntu系统时,采用手动分区: 1. /boot :一般分配1G,电脑空间大可以分配4G 2. / :分配150-200G,类似windows C盘,存放系统环境:如ROS,python等 3. swap :…

PE文件(一)PE结构概述

PE结构简述 Windows操作系统是只能运行以内存4D 5A开头,翻译是MZ的可执行文件,也叫做PE结构文件,是以exe,.sys,.dll等等作为后缀的文件。而不同的操作系统能运行的可执行文件都是各自特有的,比如Linux可运…

图与图搜索算法

图搜索算法是一个非常重要的概念,它是计算机科学中图论和算法设计的基础部分。在开始讨论图搜索算法之前,我们需要先理解什么是图以及图的基本结构。 什么是图? 图(Graph)是一种非线性数据结构,它由一组点…

算法训练营第25天回溯(分割)

回溯算法(分割) 131.分割回文串 力扣题目链接(opens new window) 题目 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: “aab” 输出: [ [“aa”,“b”], [“a”,“…

3D模型查看器开发实战【WebGL】

本文介绍如何从头开发一个包含3D 模型查看器的页面 - 尽管它非常简单,但你将学习的步骤也应该有助于构建其他类型的 Web 应用程序。 在自己的网站或博客里展示3D模型更简单的方式是使用NSDT 3DConvert提供的在线服务,无需任何开发工作,5分钟…

简单3步制作纸质英语绘本的mp3英语朗读音频

孩子学英语,需要看很多英语绘本,而且要听配套的音频。但有些英语绘本是没有对应音频的,下面简单三步,就可以将任意英语绘本制作出对应的英语朗读音频。 第一步,手机拍照做成PDF文件: 绘本每一页拍照后&…

模拟量化面试20问回答

原文链接 参考链接 量化的基本公式 对称均匀量化(symmetric uniform quantization) 对称量化将零点z限制为真实的0。注意对称均匀量化并不是关于零点对称。它还分为有符号和无符号。 signed量化公式 signed量化范围 8bit量化范围[-128, 127] signe…

使用python进行网站答题操作

介绍: 使用Python和DrissionPage模块编写自动化脚本,以模拟人的行为访问网站并获取题目答案进行自动答题。这个脚本似乎是为答题网站设计的,通过监控特定数据包地址来获取题目答案,并模拟点击正确答案进行答题。 代码中的逻辑包…

List实现(2)| LinkedList

参考:LinkedList 源码分析 在Java中,LinkedList是一个双向链表,实现了List和Deque接口,可以被当作列表(List)、队列(Queue)或者双端队列(Deque)使用。它允许…

[渗透测试学习] TwoMillion-HackTheBox

TwoMillion-HackTheBox 信息搜集 nmap扫描一下 nmap -sV -v 10.10.11.221扫描结果 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0) 80/tcp open http nginx 3851/tcp f…

LeetCode第797题: 所有可能的路径

目录 1.问题描述 2.问题分析 1.问题描述 给你一个有 n 个节点的有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)。 graph[i] 是一个从节点 i 可以访问的所有节点的列表&#xff08…

解决IDEA https://start.spring.io/连接不上

1.换成下边这个地址试试 https://start.springboot.io/2.换成阿里云试试,绝对可行,但是版本有点低 https://start.aliyun.com

使用Java调用音乐开放API,并进行播放

使用Java调用音乐开放API,并进行播放 背景描述 电脑没有下载音乐软件,使用网页播放又不太方便,所有就想着使用Java语言直接调用音乐开放API,然后进行播放音乐。 具体代码如下,包含了注释 package com.lowkey.comple…