在浏览器中输入URL中会发生什么

2023-10-31

面试官问:在浏览器中输入URL中会发生什么

我们首先分析下这个问题

这是一个很宽泛 细节非常非常多的一个问题 如果要展开来细说我们可以直接从应用层的协议 讲到传输层 网络层 再到数据链路层

可是我们这里不建议大家一开始就深挖协议中的细节 原因有二

  • 我们可能陷入细节中导致逻辑混乱等情况
  • 讲述时间过长

我们建议的回答方式是这样子的

  • 回答整体结构 重点放在应用层http https 部分涉及tcp
  • 和面试官沟通 是否需要进一步谈论细节

下面是举例

首先我们得浏览器会向域名解析服务器发送请求 进行域名解析

然后浏览器会想办法把连接建立好

建立好连接之后会按照HTTP请求格式构建一个HTTPrequest

搭建完request之后会通过建立好得TCP连接发送数据

数据发送到服务器之后 服务器可以读取数据到应用层

在应用层对于此次发送得request做分析 解析请求得 方法 参数 请求资源等等

之后定位到对于资源 在服务端将资源打开

然后构建HTTP响应 并通过TCP连接发送到客户端

客户端一样正常读取 读取之后对响应进行解析得到 状态码 资源等

如果我们请求得资源是网页 那么浏览器就会对于该网页请求进行解析 呈现我们现在所看到得网页效果

至此 我们整体结构部分回答完毕

下面是和面试官进行沟通

在浏览器中输入URL中会发生得整体结构就是这个样子 但是在这里我们还有十分多得细节可以详谈

比如说

应用层

  • HTTP如何构建请求和响应 报文格式是什么?
  • 如何进行序列化和反序列化
  • 如何进行会话保持工作 cookie 和 session机制
  • HTTP协议安全吗? 如果不安全 我们要用什么方法来保证安全
  • 什么是中间人攻击
  • 我们如何防止中间人攻击

传输层

  • TCP是如何保证可靠性的
  • 三次握手四次挥手?
  • 中间的状态
  • 捎带应答机制?
  • 快速应答机制?
  • TCP报文是什么
  • 如果发生丢包会怎样
  • 如何解决粘包问题
  • 如何进行解包和分用

网络层

  • 网络层得作用是什么
  • 如何完成
  • IP地址分类
  • 网段划分
  • 私有IP和公有ip

数据链路层

  • 作用是什么
  • 局域网的通信原理
  • 交换器的作用
  • 以太网协议格式
  • arp协议是什么 作用是什么
  • nat技术 napt等等等

如果此时面试官继续追问某一点的细节 则我们回复即可 如果让我们自由发挥我们就选择理解比较深的点继续详谈

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在浏览器中输入URL中会发生什么 的相关文章

  • Map之TreeMap

    我们先不谈TreeMap我们来直接聊聊HashMap 首先当我们用HashMap存储数据的时候 我们要如何将给出的数据排序呢 这是一个问题 那么TreeMap本身是支持排序的 是对key进行的排序 但是需要用户定义 实现排序 主要有两种方法

随机推荐

  • 使用智星云stable diffusion创建ai创意绘画

    目录 租赁选择 控制台 参数选择 下载图片 结束租用 租赁选择 选择完以后 下面会列出可用的显卡型号 选择对应需要的就可以 2080ti 1080ti都能跑 只不过显存越大的卡 能画的图越大 速度也越快 点击租用 用默认值即可 然后创建实例
  • 弱电人要学习的网络安全基础知识

    提到网络安全 一般人们将它看作是信息安全的一个分支 信息安全是更加广义的一个概念 防止对知识 事实 数据或能力非授权使用 误用 篡改或拒绝使用所采取的措施 说白了 信息安全就是保护敏感重要的信息不被非法访问获取 以及用来进 步做非法的事情
  • html搜索区域选择框,带搜索过滤功能的jQuery国家地区选择下拉框插件

    nicecountryinput js是一款带搜索过滤功能的jQuery国家地区选择下拉框插件 该下拉框插件通过简单的代码就可以实现所有国家和地区的选择下拉框 并且可以通过搜索框对国家地区名称进行搜索 使用方法 在页面中引入jquery m
  • ENVI 混合像元分解

    一 混合像元分解的过程 在影像已经完成预处理的前提下 如几何校正 大气校正 去噪等 混合像元分解的一般的过程 首先获取端元波谱 从图像上 波谱库中或者其他来源 然后选择一种分解模型在每个像素中获取每个端元波谱的相对丰度图 最后从丰度图上提取
  • 3. Flutter——HTTP请求

    dio数据请求 HTTP 添加依赖 dependencies dio 1 0 9 版本 get 请求 import package dio dio dart Dio dio new Dio var response await dio ge
  • Vue-element-admin在左上角添加LOGO的方法

    本文主要是分享一下思路的 如不想看可以直接跳到最后 做项目时有一个在左上角添加logo的需求 但是element admin貌似没有添加logo的位置 于是我先在页面中检查侧边栏 发现它是sidebar container类 于是我在vsc
  • eclipse中使用log4j2在控制台输出彩色日志

    目录 一 eclipse中安装Ansi Console 二 在log4j2配置文件中配置颜色样式 三 在log4j2 component properties 配置文件中启用颜色配置 四 附上log4j2配置文件 1 log4j2 xml
  • left join 连表问题解析:on后多条件无效 & where与on的区别

    在项目中用到多表联合查询 发现2个现象 今天解决这2个疑问 1 left join连接2张表 on后的条件第一个生效 用and连接的其他条件不生效 2 一旦加上where 则显示的结果等同于inner join 先写结论 过滤条件放在 wh
  • 停止一下或多个进程以继续安装 vmware-vmx.exe 问题解决

    1 起因 用vmware大虚拟机做大数据集群经常出现某个虚拟机起不来 还导致vmware无法关闭 提示某某虚拟机繁忙 经网友提示 升级到15 pro可以解决 事实证明无效 最后的解决办法是手动复制虚拟机文件 在配置文件中注释uid 然后用虚
  • Java中的多态调用问题,下面代码输出是什么?

    转自 http www lvhongqiang com blog431 html 问题 下面代码输出是什么 public class Test3 public static void main String args AAA a new B
  • Spring Boot项目中使用Logback日志与使用AOP拦截请求日志信息

    日志记录了系统行为的时间 地点等很多细节的具体信息 在发生错误或者接近某种危险状态时能够及时提醒开发人员处理 往往在系统产生问题时承担问题定位与诊断和解决的重要角色 一般很多线上的问题只能通过进行日志分析才可以解决的 所以需要明确日志在日常
  • 【Android开发,极客时间资源共享

    android divider f00 分割线的颜色 android dividerHeight 2dp 分割条的高度 android cacheColorHint 0fff 当列表使用背景图之后 下拉或者上拉都会出现一个问题 背景图不见了
  • 针对热点数据的处理

    针对热点数据的处理 出现问题 解决办法 大体思路 实现方式一 Spring Data Redis 前言 项目要求 Redis中菜品缓存数据KEY的设计 dish 分类id 一 导入依赖 二 添加缓存的代码例子 三 删除缓存 实现方式二 Sp
  • PAT : 基础编程题目集_编程题答案(7-1 ~ 7-38)(纯C编写)

    题目地址 7 1 include
  • Uncaught ReferenceError: __VUE_HMR_RUNTIME__ is not defined

    Syntax Error Error vitejs plugin vue requires vue gt 3 2 13 or vue compiler sfc to be present in the dependency tree 第一步
  • 使用scrapy和selenium结合爬取网易新闻内容

    代码结构 相关文件的代码 爬虫文件 mid py 爬虫文件 import scrapy from middle items import MiddleItem from selenium import webdriver class Mid
  • 欧拉降幂公式

    欧拉降幂公式 a b a b equiv ab a b
  • CVE-2022-24112 Apache APISIX 命令执行漏洞复现

    CVE 2022 24112 Apache APISIX 命令执行漏洞 Apache APISIX 是 Apache 软件基金会下的云原生 API 网关 它兼具动态 实时 高性能等特点 提供了负载均衡 动态上游 灰度发布 金丝雀发布 服务熔
  • 如何去编写一个C++程序

    如何去编写一个C 程序 1 防卫式声明 2 写class的头 3 考虑复数准备什么数据 4 考虑复数准备哪些函数 5 类外定义函数 成员函数 6 类外定义函数 非成员函数即全局函数 7 调用函数 学习侯捷老师讲授课程C 面向对象高级开发 总
  • 在浏览器中输入URL中会发生什么

    面试官问 在浏览器中输入URL中会发生什么 我们首先分析下这个问题 这是一个很宽泛 细节非常非常多的一个问题 如果要展开来细说我们可以直接从应用层的协议 讲到传输层 网络层 再到数据链路层 可是我们这里不建议大家一开始就深挖协议中的细节 原