2024 高级前端面试题之 HTTP模块 「精选篇」

该内容主要整理关于 HTTP模块 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。

HTTP模块精选篇

  • 1. HTTP 报文的组成部分
  • 2. 常见状态码
  • 3. 从输入URL到呈现页面过程
      • 3.1 简洁
      • 3.2 详细
  • 4. TCP、UDP相关
  • 5. HTTP2相关
  • 6. https相关
  • 7. WebSocket的实现和应用
  • 8. Token、cookie、Session区别
  • 9. 一个图片 url 访问后直接下载怎样实现
  • 10. fetch 发送 2 次请求的原因
  • 11. GET 和 POST 的区别
  • 12. 301 和 302 的区别
  • 13. DNS的作用、DNS解析的详细过程,DNS优化原理
  • 14. 简单请求和复杂请求
  • 15. Http请求中的keep-alive有了解吗
  • 16. 管道机制的作用是什么
  • 17. 什么情况下会触发 option 请求
  • 18. GET 可以上传图片吗
  • 19. CDN 的作用和原理
  • 20. 强缓存命中发生了什么?
  • 21. CORS跨域的原理
  • 22. 在深圳的网页上输入百度,是怎么把这个请求发到北京的
  • 23. 为什么使用多域名部署?
  • 24. 页面10张img,http1是怎样的加载表现?怎样解决的?
  • 25. 说一说SSO单点登录
  • 26. 说一说OAuth
  • 27. HTTP 中的 301、302、303、307、308 响应状态码


1. HTTP 报文的组成部分

请求报文

  • 请求行 ( http 方法 + 页面地址 + http 协议 + 版本)
  • 请求头( key + value 值)
  • 空行(服务端通过空行来判断下一部分不再是请求头,而当做请求体来解析)
  • 请求体(数据部分)

响应报文

  • 状态行 + 响应头 + 空行 + 响应体

2. 常见状态码

状态码分类

  • 1xx:服务器收到请求
  • 2xx:请求成功,如 200
  • 3xx:重定向,如 302
  • 4xx:客户端错误,如 404
  • 5xx:服务端错误,如 500

常见状态码

  • 200:成功
  • 301:永久重定向(配合 location,浏览器自动处理)
  • 302:临时重定向(配合 location,浏览器自动处理)
  • 304:资源未被修改
  • 400: 请求语法错误
  • 401: 未授权
  • 403:没权限
  • 404:资源未找到
  • 500:服务器错误
  • 504:网关超时

HTTP状态码
[待上传]

3. 从输入URL到呈现页面过程

3.1 简洁

  • 浏览器的地址栏输入URL并按下回车;
  • DNS 解析:将域名解析成 IP 地址;
  • TCP 连接:TCP 三次握手;(三次握手的目的:为了防止已经失效的连接 请求报文段突然又传送到了服务器端,从而产生错误)
  • 发送 HTTP 请求;
  • 服务器处理请求并返回 HTTP 报文;
  • 浏览器解析渲染页面;
  • 断开连接:TCP 四次挥手

3.2 详细

HTTP请求示意图
在这里插入图片描述

浏览器中的HTTP请求从发起到结束一共经历了如下八个阶段:构建请求、查找缓存、准备IP和端口、等待TCP队列、建立TCP连接、发起HTTP请求、服务器处理请求、服务器返回请求和断开连接

  • 用户输入url并回车

  • 浏览器进程检查url,组装协议,构成完整的url

  • 浏览器进程通过进程间通信(IPC)把url请求发送给网络进程

  • 网络进程接收到url请求后检查本地缓存是否缓存了该请求资源,如果有则将该资源返回给浏览器进程

  • 如果没有,网络进程向web服务器发起http请求(网络请求),请求流程如下:

    • 进行DNS解析,获取服务器ip地址,端口
    • 利用ip地址和服务器建立tcp连接
    • 构建请求头信息
    • 发送请求头信息服务器响应后,网络进程接收响应头和响应信息,并解析响应内容
  • 网络进程解析响应流程:

    • 检查状态码,如果是301/302,则需要重定向,从 Location 自动中读取地址,重新进行第4步,如果是200,则继续处理请求
    • 200响应处理:检查响应类型Content-Type,如果是字节流类型,则将该请求提交给下载管理器,该导航流程结束,不再进行后续的渲染,如果是html则通知浏览器进程准备渲染进程准备进行渲染
  • 准备渲染进程

    • 浏览器进程检查当前url是否和之前打开的渲染进程根域名是否相同,如果相同,则复用原来的进程,如果不同,则开启新的渲染进程
  • 传输数据、更新状态

    • 渲染进程准备好后,浏览器向渲染进程发起“提交文档”的消息,渲染进程接收到消息和网络进程建立传输数据的“管道”
    • 渲染进程接收完数据后,向浏览器发送“确认提交”
    • 浏览器进程接收到确认消息后更新浏览器界面状态:安全、地址栏url、前进后退的历史状态、更新web页面

4. TCP、UDP相关

  • 4.1 UDP 和 TCP 有什么区别
  • 4.2 TCP 为什么要三次握手
  • 4.3 三次握手过程中可以携带数据吗
  • 4.4 TCP 的四次挥手
  • 4.5 TCP 和 UDP 的区别
  • 4.6 HTTP 和 TCP 的不同

5. HTTP2相关

  • 5.1 说一下 http2.0
  • 5.2 HTTP2 和 HTTP1 有什么区别
  • 5.3 http/2 为什么要做头部压缩,实现原理是什么?
  • 5.4 http/2 的 Server Push 有什么优点
  • 5.5 谈谈你对多路复用的理解

6. https相关

  • 6.1 HTTPS 加的一层 SSL 在七层中哪个位置
  • 6.2 https 协议的优点
  • 6.3 https 协议的缺点
  • 6.4 http 与 https 区别
  • 6.5 https 传输的具体过程
  • 6.6 HTTPS 的整体过程分为证书验证和数据传输阶段
  • 6.7 介绍一下 https 的握手过程
  • 6.8 为什么 https 数据传输使用对称加密
  • 6.9 介绍下 https 中间人攻击的过程
  • 6.10 HTTPS 握手过程中,客户端如何验证证书的合法性
  • 6.11 问题
  • 6.12 数字签名?它是什么
  • 6.13 谈谈对数字证书的理解
  • 6.14 为什么说数字证书就能对通信方的身份进行验证呢
  • 6.15 请详细的说一下 HTTPS 它的加密传输过程,涉及到哪些算法呢?
  • 6.16 描述一下 RSA 握手
  • 6.17 ECDHE 握手和 RSA 握手又有什么区别呢
  • 6.18 你知道 TSL1.3 版本吗?它较 TSL1.2 做了哪些改进呢?
  • 6.19 介绍下 HTTPS 中间人攻击
  • 6.20 http/https 协议总结

7. WebSocket的实现和应用

  • 7.1 什么是 WebSocket
  • 7.2 WebSocket 是什么样的协议,具体有什么优点
  • 7.3 理解WebSocket协议的底层原理、与HTTP的区别

8. Token、cookie、Session区别

  • 8.1 Cookie 和 session 的区别
  • 8.2 cookie 和 token 都存放在 header 中,为什么不会劫持 token?
  • 8.3 介绍下如何实现 token 加密

9. 一个图片 url 访问后直接下载怎样实现

10. fetch 发送 2 次请求的原因

11. GET 和 POST 的区别

12. 301 和 302 的区别

13. DNS的作用、DNS解析的详细过程,DNS优化原理

14. 简单请求和复杂请求

15. Http请求中的keep-alive有了解吗

16. 管道机制的作用是什么

17. 什么情况下会触发 option 请求

18. GET 可以上传图片吗

19. CDN 的作用和原理

  • 如何捕获 CDN 上的 js 运行时导致的详细错误信息?

20. 强缓存命中发生了什么?

  • 默认的强制缓存时间是多少?

21. CORS跨域的原理

  • CORS的哪些是简单请求?
  • CORS的预检请求具体是怎样的?
  • 为什么简单请求不需要预检?
  • 复杂请求预检检查什么东西?
  • 如果CORS附带身份凭证要怎样做?
  • 如何减少CORS预请求的次数?

22. 在深圳的网页上输入百度,是怎么把这个请求发到北京的

23. 为什么使用多域名部署?

24. 页面10张img,http1是怎样的加载表现?怎样解决的?

25. 说一说SSO单点登录

26. 说一说OAuth

27. HTTP 中的 301、302、303、307、308 响应状态码

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

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

相关文章

计算存储设备(Computational Storage Drive, CSD)

随着云计算、企业级应用以及物联网领域的飞速发展,当前的数据处理需求正以前所未有的规模增长,以满足存储行业不断变化的需求。这种增长导致网络带宽压力增大,并对主机计算资源(如内存和CPU)造成极大负担,进…

网络协议与攻击模拟_14DNS欺骗

DNS欺骗就是利用某种方式将我们访问的域名解析到其他服务器上,从而使得我们无法正常访问到原本我们想要访问的网站。 一、DNS欺骗过程 首先在windows server 2016虚拟机上搭建网站服务,kali作为攻击机从而实现中间人攻击,使用ettercap工具的…

构造函数 | 初始化列表 | 拷贝构造 | 赋值运算符重载

文章目录 1.类的6个默认成员函数2.构造函数2.1基本概念和用法2.2初始化列表2.3explicit关键字 3.拷贝构造函数4.重载赋值运算符 1.类的6个默认成员函数 如果定义一个空类,其实并不是什么都没有,编译器会默认生成6个默认的成员函数!默认成员函…

从源代码看Chrome 版本号

一直以来都是用Chrome 浏览器,但是看到Chrome 点分4 组数据的表达方式,总是感觉怪怪的,遂深入源代码了解她的版本号具体表示的内容 chrome 浏览器中显示的版本号 源代码中的版本号标识 版本号文件位于 chrome/VERSION , 看到源代…

网络流数据集处理(深度学习数据处理基础)

一、数据集处理 处理数据集是一个文件夹 一个文件夹处理的,将原网络流数据集 放入一个文件夹 处理转换成 Json文件。(数据预处理)然后将这些文件处理成目标文件格式 再分割成训练集和测试集。每次运行只会处理一个文件夹。 运行train.py 导入…

Windows10 安装 OpenSSH 配置 SFTP服务器

1、下载 https://github.com/PowerShell/Win32-OpenSSH/releases 2、默认安装 3、创建用户 4、修改配置文件 C:\ProgramData\ssh\sshd_config# 最后一行后面加入 ForceCommand internal-sftp# 设置用户登录后默认目录 Match User sftpuser ChrootDirectory C:\SFTP# Disable…

进程信号-

一.信号概念 信号是进程之间事件异步通知的一种方式,属于软中断。 二.信号的产生 1.通过键盘进行信号的产生。(1-31多数都是杀掉进程) (ctrl c:向前台进程发送2号信号,杀掉进程) &#xff0…

基于JAVA的宠物管理系统

技术架构: Servlet JSP MySQL 有需要该项目的小伙伴可以私信我你的Q。 功能介绍: 系统主要分为前台和后台两大模块 前台主要由用户体验使用: 用户登录 注册 查找商品 商品类别等功能导航; 后台…

Github 2024-02-03 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-02-03统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6C项目1TypeScript项目1JavaScript项目1PowerShell项目1Rust项目1 MLflow: 机器学习生命周期平台 …

AI监控+智能充电桩系统如何缓解新能源汽车充电难问题

在新能源汽车行业的快速发展中,充电桩作为重要的配套设施,其建设和发展至关重要。随着新能源汽车销量的增长,补能需求也日益迫切,这为充电桩行业的发展提供了巨大的机遇。然而,充电桩行业在快速发展的同时,…

[云顶数模]2024美赛CEF题成品参考论文+配套数据集+可执行代码+运行结果图

E题社区抗灾能力综合评估与决策模型研究 摘要:社区抗灾能力的提升对于灾害风险管理至关重要。本研究基于机器学 习方法,构建了社区抗灾能力预测模型,以评估社区在灾害事件中的表现。首先, 我们采用梯度提升树模型对社区基础设施、…

Prometheus 采集Oracle监控数据

前言 oracledb_exporter是一个开源的Prometheus Exporter,用于从Oracle数据库中收集关键指标并将其暴露给Prometheus进行监控和告警。它可以将Oracle数据库的性能指标转换为Prometheus所需的格式,并提供一些默认的查询和指标。 download Oracle Oracle Windows Install …

【Docker】网络配置network详解

一,network的概述 解决痛点(能干什么?): (1)容器间的互联和通信以及端口映射 (2)容器IP变动时候,可以通过服务名直接网络通信而不受到影响 二,n…

功率信号的频谱

目录 1. 前言2. 功率信号的频谱3. 参考资料 1. 前言 知识点1:函数周期性判定定理   假设函数 f ( x ) f(x) f(x) 和函数 g ( x ) g(x) g(x) 均为周期性函数,其最小正周期分别为 T f T_f Tf​ 和 T g T_g Tg​,若 T f / T g T_f/T_g T…

搜索引擎评价指标及指标间的关系

目录 二分类模型的评价指标准确率(Accuracy,ACC)精确率(Precision,P)——预测为正的样本召回率(Recall,R)——正样本注意事项 P和R的关系——成反比F值F1值F值和F1值的关系 ROC(Receiver Operating Characteristic)——衡量分类器性能的工具AUC&#xff…

基于Java SSM框架实现校园兼职系统项目【项目源码+论文说明】

基于java的SSM框架实现校园兼职系统演示 摘要 社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个学生的使用。互联网具有便利性,速度快,效率高,…

[office] excel计算客户名单的人数 COUNTA 函数:“销售额”不仅是金额的总和 #知识分享#职场发展#知识分享

excel计算客户名单的人数 COUNTA 函数:“销售额”不仅是金额的总和 前文中介绍的 SUM 函数,是在日常工作中使用频率最高的函数之一。但是,在实际操作时也会出现问题。比如在计算销售额总和时,SUM 函数得出的结果为金额总和。但是…

RISC-V指令格式

RISC-V指令格式 1 RISC-V指令集命名规范2 RISC-V指令集组成2.1 基础整数指令集2.2 扩展指令集 3 RISC-V指令格式3.1 指令表述3.2 指令格式 本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 1 RISC-V指令集命名规范 前面提到过RV32I,这是…

5. 基础网络服务与应用配置

5.1 实验一:FTP 基础配置实验 5.1.1 实验介绍 5.1.1.1 关于本实验 设备支持多种文件管理方式,用户根据任务和安全性要求选择合适的文件管理方式。 用户可以通过直接登录系统、FTP(File Transfer Protocol)、TFTP(T…

【深度学习】数据归一化/标准化 Normalization/Standardization

目录 一、实际问题 二、归一化 Normalization 三、归一化的类型 1. Min-max normalization (Rescaling) 2. Mean normalization 3.Z-score normalization (Standardization) 4.非线性归一化 4-1 对数归一化 4-2 反正切函数归一化 4-3 小数定标标准化(Demi…