面试计算机网络框架八股文十问十答第三期

面试计算机网络框架八股文十问十答第三期

作者:程序员小白条,个人博客

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!

⭐点赞⭐收藏⭐不迷路!⭐

1)GET和POST请求的区别

主要区别如下:

  • GET:
    • 用于请求服务器上的资源。
    • 参数通过 URL 的查询字符串传递,可见于 URL 中。
    • 通常用于获取数据,不应该有副作用。
    • 请求长度受限于浏览器和服务器的限制。
    • 可以被缓存,以及添加到浏览器的历史记录中。
  • POST:
    • 用于向服务器提交数据,通常导致服务器状态的改变或副作用。
    • 参数传递在请求的消息体中,不可见于 URL,更适合传输敏感数据。
    • 通常用于向服务器提交表单数据、上传文件等操作。
    • 请求长度理论上没有限制。
    • 不能被缓存,不会被添加到浏览器的历史记录中。

2)POST和PUT请求的区别

主要区别如下:

  • POST:
    • 通常用于创建新资源或提交数据。
    • 每次请求可能会导致服务器上创建一个新的资源。
    • 对同一资源的多次 POST 请求会创建多个资源。
  • PUT:
    • 通常用于更新已存在的资源。
    • 每次请求会在服务器上更新指定的资源,如果资源不存在则创建。
    • 对同一资源的多次 PUT 请求不会创建多个资源,而是覆盖原有的资源。

3)常见的HTTP请求头和响应头

常见的 HTTP 请求头和响应头包括:

常见的请求头:

  • User-Agent: 发送请求的用户代理的名称和版本信息。
  • Accept: 指定客户端可接受的内容类型。
  • Content-Type: 发送请求时,指定请求体的内容类型。
  • Authorization: 包含用于进行身份验证的凭据,通常用于 HTTP 认证。
  • Cookie: 包含客户端发送到服务器的 cookie 信息。
  • Referer: 表示请求来源的 URL。

常见的响应头:

  • Content-Type: 指定响应体的内容类型。
  • Content-Length: 指定响应体的长度(以字节为单位)。
  • Cache-Control: 控制缓存的行为。
  • Set-Cookie: 服务器通过响应头设置 cookie。
  • Location: 用于重定向,指示客户端应该跳转到的 URL。
  • Server: 服务器的名称和版本信息。
  • ETag: 用于标识资源版本,配合 If-Match 或 If-None-Match 使用,支持条件请求。

4)HTTP状态码304是多好还是少好

HTTP 状态码 304 表示“未修改”,用于告知客户端缓存的资源仍然有效,并且客户端可以继续使用缓存的版本。因此,对于网络性能和用户体验来说,HTTP 状态码 304 是有益的,因为它减少了不必要的网络流量和资源加载时间。

优点:

  • 减少网络流量: 当客户端请求的资源未发生变化时,服务器返回 304 状态码,告知客户端可以继续使用缓存的资源,避免了不必要的数据传输。
  • 提升加载速度: 使用缓存资源可以加快页面加载速度,提升用户体验。

不足:

  • 可能导致更新延迟: 如果服务器端的资源已经更新,但客户端仍然使用缓存的资源,可能导致用户无法及时看到最新内容。

总的来说,HTTP 状态码 304 对于网络性能和用户体验是有利的,但在某些情况下,可能会导致更新延迟。

5)常见的HTTP请求方法

常见的 HTTP 请求方法包括:

  • GET: 用于请求指定的资源。
  • POST: 用于向服务器提交数据。
  • PUT: 用于更新指定的资源。
  • DELETE: 用于删除指定的资源。
  • PATCH: 用于对资源进行部分更新。
  • OPTIONS: 用于获取目标资源支持的通信选项。
  • HEAD: 类似于 GET 请求,但只返回头部信息。
  • TRACE: 用于对请求消息的回显测试。
  • CONNECT: 用于将请求连接转换为透明的 TCP/IP 隧道。

6)OPTIONS请求方法及使用场景

OPTIONS 请求方法用于获取目标资源所支持的通信选项,主要用于跨域资源共享(CORS)和预检请求。

使用场景:

  • CORS: 在进行跨域请求时,浏览器会先发送 OPTIONS 请求,以确定服务器是否支持跨域请求,并获取服务器端的 CORS 配置信息。
  • 预检请求: 当使用非简单请求(例如使用自定义头部或进行跨域请求)时,浏览器会先发送 OPTIONS 预检请求,以获得服务器的允许信息,然后再发送实际的请求。

主要作用:

  • 查询服务器支持的请求方法: OPTIONS 请求通常会返回一个 Allow 头部,其中包含了服务器支持的所有 HTTP 请求方法,客户端可以根据这个信息来确定可以使用哪些方法与服务器进行交互。
  • 查询服务器支持的请求头部: OPTIONS 请求还可以返回一个 Access-Control-Allow-Headers 头部,其中包含了服务器支持的所有自定义请求头部,这对于跨域资源共享(CORS)是非常有用的。

7)HTTP 1.0 和 HTTP 1.1 之间有哪些区别?

主要区别如下:

  • 持久连接(Keep-Alive): HTTP 1.1 默认启用了持久连接,在同一连接上可以传输多个请求和响应,减少了连接建立和关闭的开销,提高了性能。
  • 管道化(Pipeline): HTTP 1.1 支持管道化,允许客户端在同一连接上发送多个请求而无需等待响应,提高了并发性能。
  • 缓存控制: HTTP 1.1 引入了更强大的缓存控制机制,包括 Cache-Control 和 ETag 等头部,提供了更灵活和细粒度的缓存控制。
  • 主机头部(Host Header): HTTP 1.1 引入了 Host 头部字段,使得同一个 IP 地址上的不同域名可以共享同一个服务器,并区分不同的网站。
  • 状态码扩展: HTTP 1.1 引入了更多的状态码,如 100、101、206 等,增加了协议的灵活性和扩展性。
  • 其他改进: HTTP 1.1 还包括对消息传输编码、身份认证、代理服务器支持等方面的改进。

8)HTTP 1.1 和 HTTP 2.0 的区别

主要区别如下:

  • 多路复用(Multiplexing): HTTP 2.0 支持在同一个连接上并行发送多个请求和响应,克服了 HTTP 1.x 中的队头阻塞问题,提高了并发性能。
  • 头部压缩(Header Compression): HTTP 2.0 使用 HPACK 算法对消息头部进行压缩,减少了消息头部的大小,降低了传输延迟和带宽消耗。
  • 服务器推送(Server Push): HTTP 2.0 允许服务器在客户端请求之前向客户端推送资源,提高了页面加载速度和性能。
  • 二进制传输: HTTP 2.0 将消息分帧,并采用二进制格式进行传输,取代了 HTTP 1.x 的文本协议,提高了解析效率和传输速度。
  • 优化头部: HTTP 2.0 使用了“头部列表”和“头部块”等技术来优化消息头部的传输效率,减少了重复传输的信息。
  • 连接优化: HTTP 2.0 可以复用 TCP 连接,减少了连接建立和关闭的开销,提高了连接的利用率。

9)HTTP和HTTPS协议的区别

主要区别如下:

  • 安全性: HTTP 是明文传输的协议,数据传输过程中容易被窃听和篡改,而 HTTPS 则通过 SSL/TLS 加密保护数据的安全性,提供了更高的安全性保障。
  • 加密方式: HTTP 不加密数据传输,而 HTTPS 使用 SSL/TLS 协议对数据进行加密,保证数据传输的机密性和完整性。
  • 默认端口: HTTP 默认端口为 80,HTTPS 默认端口为 443。
  • 证书要求: 在使用 HTTPS 时,服务器需要具有有效的数字证书,以便客户端验证服务器的身份。
  • 速度: HTTPS 由于加密解密的过程会增加数据传输的延迟,可能会略微降低页面加载速度。

10)GET方法URL长度限制的原因

GET 方法的 URL 长度限制是由浏览器或服务器设置的,通常存在于浏览器或服务器的配置参数中。主要原因包括:

  • 浏览器限制: 不同浏览器对 URL 长度的限制可能不同,一般来说,浏览器为了保护用户不受恶意网站的攻击,会设置最大的 URL 长度限制,超出限制的 URL 可能会被截断或拒绝发送。
  • 服务器限制: 服务器端也可能对 URL 长度进行限制,一般是出于安全考虑或性能考虑,防止恶意请求或过大的请求占用服务器资源。
  • 协议限制: HTTP 协议本身并没有对 URL 长度进行严格的限制,但是在实际应用中,由于网络设备、中间件等的限制,通常会存在一定的 URL 长度限制。
  • 传输限制: URL 的长度也受到网络传输的限制,例如在某些网络环境下,URL 过长可能会被分段或截断,导致数据传输错误或不完整。

总的来说,GET 方法 URL 长度限制的原因是多方面的,包括浏览器、服务器、协议和传输等方面的因素都可能影响到 URL 的最大长度限制。

开源项目地址:https://gitee.com/falle22222n-leaves/vue_-book-manage-system

已 300 + Star!

⭐点赞⭐收藏⭐不迷路!⭐

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

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

相关文章

JavaScript中如何判断数据类型

在JavaScript中,判断数据类型是我们在日常开发中经常会遇到的问题。正确地判断数据类型不仅有助于我们编写出更加健壮的代码,还可以提高程序的可读性和可维护性。本文将为大家介绍几种判断数据类型的方法 使用typeof运算符: typeof运算符可以…

[NSSRound#17 Basic]WEB

1.真签到 看robots.txt 密码先base32再base64得到md5加密的密文,在线解得到密码为Nss hint用16进制转字符串,提示新生赛遇到过 是一个敲击码加密 账号是ctfer,登录之后源码提示在F111n4l.php 要求nss参数若比较等于732339662,但是不能是数…

rtt设备io框架面向对象学习-脉冲编码器设备

目录 1.脉冲编码器设备基类2.脉冲编码器设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.脉冲编码器设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的pulse_encoder.h定义…

Java学习21--abstract抽象类

abstract抽象类 在Java中,abstract 是一个关键字,用于定义抽象类abstract class或抽象方法abstract method。abstract class是一种特殊的class,它不能用来建立具体的object,即不能实例化对象。abstract class通常用作其他类的基类…

关于idea无法检测出lombok,导致代码爆红的处理

为啥需要本地安装lombok插件? 编译错误提示:Lombok 使用注解来自动生成代码,这些代码在编译时会由 Lombok 插件进行处理。如果没有安装 Lombok 插件,IDEA 在编译过程中可能会报告错误,因为它无法识别并处理 Lombok 注解…

【RL】Bellman Optimality Equation(贝尔曼最优等式)

Lecture3: Optimal Policy and Bellman Optimality Equation Definition of optimal policy state value可以被用来去评估policy的好坏,如果: v π 1 ( s ) ≥ v π 2 ( s ) for all s ∈ S v_{\pi_1}(s) \ge v_{\pi_2}(s) \;\;\;\;\; \text{for all…

Python数据科学:Scikit-Learn机器学习

4.1Scikit-Learn机器学习 Scikit-Learn使用的数据表示:二维网格数据表 实例1:通过Seaborn导入数据 def skLearn():scikit Learn基本介绍:return:import seaborn as sns#导入Iris数据集#注:一般网络访问不了iris sns.load_dataset(iris)ir…

【JavaScript】回调函数

文章目录 1. 什么是回调函数2. 回调函数的用法作为函数参数作为匿名函数 3. 处理异步编程4. 解决回调地狱问题5. 总结 在 JavaScript 中, 回调函数是一种重要的编程模式,特别是在处理异步操作时。本篇博客将介绍回调函数的概念、用法以及在异步编程中的…

Jdk11新增特性

目录 模块化系统(Jigsaw) 新的垃圾收集器(ZGC和Shenandoah) 新的API和工具 其他改进 JDK 11(Java Development Kit 11)Java的版本引入了一些新特性和改进,主要有:

助眠神器小程序源码|白噪音|小睡眠|微信小程序前后端开源

安装要求和说明后端程序运行环境:NginxPHP7.4MySQL5.6 PHP程序扩展安装:sg11 网站运行目录设置为:public 伪静态规则选择:thinkphp 数据库修改文件路径:/config/database.php需要配置后端的小程序配置文件,…

[word] word分割线在哪里设置 #其他#经验分享

word分割线在哪里设置 在工作中有些技巧,可以快速提高工作效率,解决大部分工作,今天给大家分享word分割线在哪里设置的小技能,希望可以帮助到你。 1、快速输入分割线 输入三个【_】按下回车就是一条长直线,同样分别…

webgis后端安卓系统部署攻略,超详细Termux攻略

目录 前言 一、将后端项目编译ARM64 二、安卓手机安装termux 1.更换为国内源 2.安装ssh远程访问 3.安装文件远程访问 三、安装postgis数据库 1.安装数据库 2.数据库配置 3.数据导入 四、后端项目部署 五、自启动设置 总结 前言 因为之前一直做的H5APP开发&#xf…

webpack面试解析

参考: 上一篇webpack相关的系列:webpack深入学习,搭建和优化react项目 爪哇教育字节面试官解析webpack-路白 1、Webpack中的module是什么? 通常来讲,一个 module 模块就是指一个文件中导出的内容,webpack…

什么是系统工程(字幕)27

0 00:00:00,990 --> 00:00:03,590 那么下一个在16.4 1 00:00:03,590 --> 00:00:06,190 16.4是描述需求嘛 2 00:00:06,190 --> 00:00:06,970 对不对 3 00:00:07,250 --> 00:00:07,501 4 00:00:07,501 --> 00:00:10,520 在那个教材里面是描述需求 5 00:00:11,…

android--RxJava源码详解

其实所有的节日都不是为了礼物和红包而生,而是为了提醒我们,不要忘记爱与被爱,生活需要仪式感,而你需要的是在乎和关爱 目录 前言 一,Hook点 二,RXJava的观察者模式 三,Map操作符原理 前言 关于…

Amber-Leedcode-Java - 代码随想录打卡第38 - 39天-动态规划汇总

本质上感觉是一个相加的问题,状态的转换,由前一种状态推至下一种状态509. 斐波那契数 较为简单 746. 使用最小花费爬楼梯 62. 不同路径 一开始写的时候被吓到了,但是发现听完一半之后再写还是比较容易的 对于我而言主要是找到逻辑&#xf…

Linux文件属性与目录等知识详解

在 Linux 系统中,文件和目录是基本的文件系统组成部分。文件系统是用于组织和存储文件的一种结构,而文件和目录则是文件系统的核心元素。以下是对 Linux 文件和目录的详细解释: 1. 文件(File) 在 Linux 中&#xff0…

Vue3+Ant-Design-Vue:报错Cannot read properties of null (reading ‘isCE‘)

问题描述 在使用Ant-Design-Vue内置的Table表格组件,实现expand展开行功能时,报错:Uncaught TypeError: Cannot read properties of null (reading ‘isCE‘) 。 报错信息图示: 在GitHub上找到如下描述, 解决方案 网上…

【漏洞复现】和为顺IP-COM WiFi未授权下载漏洞

Nx01 产品简介 深圳市和为顺网络技术有限公司是一家聚焦于商用级网络通信设备的研发与应用,为全球中小型企业提供高速、安全、易维护的网络设备产品和解决方案的公司。 Nx02 漏洞描述 深圳市和为顺网络技术有限公司IP-COM WiFi方案解决专家存在任意文件下载漏洞&am…

代码随想录算法训练营29期Day50|LeetCode 70,322,279

文档讲解:爬楼梯(进阶) 零钱兑换 完全平方数 70.爬楼梯(进阶) 题目链接:https://kamacoder.com/problempage.php?pid1067 思路: 这其实是一个完全背包问题。1阶,2阶&#xff0c…