计算机网络面试基础(一)

文章目录

  • 一、HTTP基本概念
    • 1.HTTP是什么?
    • 2.HTTP 常见的状态码有哪些?
    • 3.http常见字段
  • 二、GET和POST
    • 1.get和post有什么区别
  • 三、HTTP缓存技术
    • 1.HTTP 缓存有哪些实现方式?
    • 2.什么是强制缓存?
    • 3.什么是协商缓存?(不太懂)
  • 四、HTTP特性
    • 1.HTTP/1.1 的优点有哪些?
    • 2.HTTP/1.1 的缺点有哪些?
    • 3.HTTP/1.1 的性能如何?
  • 五、HTTP与HTTPS
    • 1.HTTP 与 HTTPS 有哪些区别?
    • 2.HTTPS 解决了 HTTP 的哪些问题?
  • 六、HTTP/1.1、HTTP/2、HTTP/3 演变
    • 1.HTTP/1.1 相比 HTTP/1.0 提高了什么性能?
    • 2 HTTP/2 做了什么优化?
    • 3.HTTP/3 做了哪些优化?

一、HTTP基本概念

1.HTTP是什么?

HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。

2.HTTP 常见的状态码有哪些?

在这里插入图片描述

3.http常见字段

  • Host字段:客户端发送请求时,用来指定服务器的域名。

  • Content-Length字段:服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据长度。

  • Connecton字段:最常用于客户端要求服务器使用「HTTP 长连接」机制,以便其他请求复用。
    HTTP 长连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。
    HTTP/1.1 版本的默认连接都是长连接,但为了兼容老版本的 HTTP,需要指定 Connection 首部字段的值为 Keep-Alive。

  • Content-Type 字段:用于服务器回应时,告诉客户端,本次数据是什么格式。

  • Content-Encoding 字段:数据的压缩方法。表示服务器返回的数据使用了什么压缩格式。

二、GET和POST

1.get和post有什么区别

  • 在 HTTP 协议里,所谓的「安全」是指请求方法不会「破坏」服务器上的资源。
  • 所谓的「幂等」,意思是多次执行相同的操作,结果都是「相同」的。

GET 的语义是从服务器获取指定的资源,GET 方法是安全、幂等、可被缓存的,GET 请求的参数位置一般是写在 URL 中,浏览器会对 URL 的长度有限制(HTTP协议本身对 URL长度并没有做任何规定)。
POST 的语义是根据请求负荷(报文body)对指定的资源做出处理,POST 不安全,不幂等,(大部分实现)不可缓存。POST 请求携带数据的位置一般是写在报文 body 中,览器不会对 body 大小做限制。

三、HTTP缓存技术

1.HTTP 缓存有哪些实现方式?

对于一些具有重复性的 HTTP 请求,比如每次请求得到的数据都一样的,我们可以把这对「请求-响应」的数据都缓存在本地,下次就直接读取本地的数据,不必在通过网络获取服务器的响应了。
HTTP 缓存有两种实现方式,分别是强制缓存和协商缓存。

2.什么是强制缓存?

强缓存指的是只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存,决定是否使用缓存的主动性在于浏览器这边。
在这里插入图片描述

图中,返回的是 200 状态码,但在 size 项中标识的是 from disk cache,就是使用了强制缓存。

强缓存是利用下面这两个 HTTP 响应头部(Response Header)字段实现的,它们都用来表示资源在客户端缓存的有效期:

  • Cache-Control, 是一个相对时间;
  • Expires,是一个绝对时间;

Cache-control 选项更多一些,设置更加精细,所以建议使用 Cache-Control 来实现强缓存。具体的实现流程如下:

  • 当浏览器第一次请求访问服务器资源时,服务器会在返回这个资源的同时,在 Response 头部加上Cache-Control,Cache-Control 中设置了过期时间大小;
  • 浏览器再次请求访问服务器中的该资源时,会先通过请求资源的时间与 Cache-Control中设置的过期时间大小,来计算出该资源是否过期,如果没有,则使用该缓存,否则重新请求服务器;
  • 服务器再次收到请求后,会再次更新 Response 头部的 Cache-Control。

3.什么是协商缓存?(不太懂)

当我们在浏览器使用开发者工具的时候,你可能会看到过某些请求的响应码是 304,这个是告诉浏览器可以使用本地缓存的资源,通常这种通过服务端告知客户端是否可以使用缓存的方式被称为协商缓存。

四、HTTP特性

1.HTTP/1.1 的优点有哪些?

HTTP 最突出的优点是「简单、灵活和易于扩展、应用广泛和跨平台」。

2.HTTP/1.1 的缺点有哪些?

HTTP 协议里有优缺点一体的双刃剑,分别是「无状态、明文传输」,同时还有一大缺点「不安全」。

3.HTTP/1.1 的性能如何?

HTTP 协议是基于 TCP/IP,并且使用了「请求 - 应答」的通信模式,所以性能的关键就在这两点里。

五、HTTP与HTTPS

1.HTTP 与 HTTPS 有哪些区别?

  • HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
  • HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
  • 两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
  • HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

2.HTTPS 解决了 HTTP 的哪些问题?

HTTP存在风险:

  • 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。
  • 篡改风险,比如强制植入垃圾广告,视觉污染,用户眼容易瞎。
  • 冒充风险,比如冒充淘宝网站,用户钱容易没。

在这里插入图片描述

  • 信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。
  • 校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾广告。
  • 身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。

如何解决以上三个风险?

  • 混合加密的方式实现信息的机密性,解决了窃听的风险。
  • 摘要算法的方式来实现完整性,它能够为数据生成独一无二的「指纹」,指纹用于校验数据的完整性,解决了篡改的风险。
  • 将服务器公钥放入到数字证书中,解决了冒充的风险。

1.混合加密
通过混合加密的方式可以保证信息的机密性,解决了窃听的风险。
在这里插入图片描述
HTTPS 采用的是对称加密和非对称加密结合的「混合加密」方式:

  • 通信建立前采用非对称加密的方式交换「会话秘钥」,后续就不再使用非对称加密。
  • 通信过程中全部使用对称加密的「会话秘钥」的方式加密明文数据。

采用「混合加密」的方式的原因:

  • 对称加密只使用一个密钥,运算速度快,密钥必须保密,无法做到安全的密钥交换。
  • 非对称加密使用两个密钥公钥和私钥,公钥可以任意分发而私钥保密,解决了密钥交换问题但速度慢。

2. 摘要算法(哈希函数) + 数字签名:通过哈希函数计算比较,判断收到的内容是否被篡改。

3. 数字证书 : 确保公钥真实可靠
可以通过哈希算法来保证消息的完整性;
可以通过数字签名来保证消息的来源可靠性(能确认消息是由持有私钥的一方发送的)

六、HTTP/1.1、HTTP/2、HTTP/3 演变

1.HTTP/1.1 相比 HTTP/1.0 提高了什么性能?

  • 使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。
  • 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。
  • 引入了更多的缓存控制策略。
  • 增加了很多的请求方法。

2 HTTP/2 做了什么优化?

在这里插入图片描述
HTTP/2 相比 HTTP/1.1 性能上的改进

  • 头部压缩:发请求的时候如果头是一样的,协议会消除重复的部分。在客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。

  • 二进制格式:HTTP/2 不再像 HTTP/1.1 里的纯文本形式的报文,而是全面采用了二进制格式,头信息和数据体都是二进制,并且统称为帧(frame):头信息帧(Headers Frame)和数据帧(Data Frame)。增加了数据传输的效率

  • 并发传输:HTTP/1.1 在发送请求的时候,必须要等响应以后才能继续发请求,容易造成队头堵塞的问题。HTTP/2实现了多路复用,在一个连接中,客户端和服务器都可以同时发送多个请求和回应。

  • 服务器推送:HTTP/2 还在一定程度上改善了传统的「请求 - 应答」工作模式,服务端不再是被动地响应,可以主动向客户端发送消息。

3.HTTP/3 做了哪些优化?

  • HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP!
  • UDP 发送是不管顺序,也不管丢包的,所以不会出现像 HTTP/2 队头阻塞的问题。大家都知道 UDP 是不可靠传输的,但基于 UDP 的 QUIC 协议 可以实现类似 TCP 的可靠性传输。

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

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

相关文章

Visual C++ Redistributable下载

安装程序的时候提示丢失mfc140u.dll 如下图,查了资料说可以下载Visual C Redistributable来进行处理 下载Visual C Redistributable 1.打开网站 https://www.microsoft.com/zh-cn/download/details.aspx?id48145&751be11f-ede8-5a0c-058c-2ee190a24fa6True) 2.点击下载 …

算法:94. 二叉树的中序遍历

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入:root [1] 输出&am…

刷完50题,搞定十大网络基础知识

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 上午好,我的网工朋友 咱新手网工,入行之前最需要做的准备之一,就是抓住网络基础知识,毕竟是饭碗&…

信息学奥赛初赛天天练-22-C++基础关键字、进制转换、结构体与联合体的实用技巧大揭秘

PDF文档公众号回复关键字:20240607 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 1 在C中,下面哪个关键字用于声明一个变量,其值不能被修改?( &#…

讯方618代表有话说 | 行业大咖详解鸿蒙,全程在线答疑

讯方618“代表有话说” 系列专场直播活动来啦 6月11日(周二)19:30 本期直播特邀华为、学校、讯方代表 与大家畅聊鸿蒙奥秘 共同开启未来技术之门! 行业大咖将带大家 了解鸿蒙概况和岗位需求 解析鸿蒙系统强势崛起带来的影响 解读高校…

常见Rabbitmq面试题及答案总结

1、 什么是 rabbitmq 釆用AMQP高级消息队列协议的一种消息队列技术撮大的特点就是消费并不需要 确保提供方存在,实现了服务之间的高度解耦 2、 为什么要使rabbitmq (1) 在分布式系统下具备异步,削峰,负载均衡等一系列高级功能&…

openh264 场景变化检测算法源码分析

文件位置 openh264/codec/processing/scenechangedetection/SceneChangeDetection.cppopenh264/codec/processing/scenechangedetection/SceneChangeDetection.h 代码流程 说明: 通过代码流程分析,当METHOD_SCENE_CHANGE_DETECTION_SCREEN场景类型为时…

【PostgreSQL 小课】日志及审计 01:日志

日志及审计 01:日志 以下内容是来自于我的知识星球:《PostgreSQL 小课》专栏,有需要可以关注一下 PostgreSQL 提供了非常丰富的日志基础设施。能够检查日志是每个 DBA 的关键技能——日志提供了关于集群过去的操作、当前正在进行的操作以及发…

Android 高德地图API(新版)

新版高德地图 前言正文一、创建应用① 获取PackageName② 获取调试版安全码SHA1③ 获取发布版安全码SHA1 二、配置项目① 导入SDK② 配置AndroidManifest.xml 三、获取当前定位信息① ViewBinding使用和导包② 隐私合规设置③ 权限请求④ 初始化定位⑤ 获取定位信息 四、显示地…

高级文件操作

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python内置的os模块除了可以对目录进行操作,还可以对文件进行一些高级操作,具体函数如表4所示。 表4 os模块提供的与文件相…

重新学习STM32(2)NVIC

概念简介 NVIC,即嵌套向量中断控制器,控制着中断相关的功能,是内核里面的一个外设。 中断在单片机编程中的作用是使单片机能及时响应需要立即处理的事件,但是这些事件也分紧急和非紧急,因此需要优先级来区分。…

frp之XTCP实现内网穿透家用电脑远程桌面公司电脑

官网XTCP介绍 《XTCP介绍》 实现图 fprs.toml # frps 服务端口(不填,则默认:7000) bindPort 81 auth.token "token 令牌"公司电脑frpc.toml serverAddr "frps公网服务器域名或ip" serverPort frps 服…

基于 vue-element-template 框架添加 tagsview

1. 需求 vue-element-template 是一个基础模板,默认没有 tagsview。所以要手动添加。 参考最全面的集成方案框架 vue-element-admin ,拷贝和修改相关文件到你的项目中。 2. 修改 复制如下文件或文件夹 \src\layout\components\TagsView\src\store\mo…

什么情况下要配置DNS服务

什么是DNS 一、DNS就是域名解析 我们上网的方式通常都由ip地址组成,但是为了有个规范,而且我们也不可能去记住那么多一串Ip数字,首先域名就会比ip好记很多,其次固定性,一旦服务器换了,只要重新绑定域名对…

java第二十一课 —— 快捷键,包,访问修饰符

IDEA 快捷键 删除行:Ctrl Y复制行:Ctrl D补全代码:Alt /添加取消注释:Ctrl /导入该行需要的类:Alt Enter快速格式化代码:Ctrl Shift L快速运行程序:Ctrl Shift F10生成构造器&#xf…

分享万能点击器免费版,吾爱大佬出品,这个太赞了!

小伙伴们!阿星又来给大家推荐神奇的小软件啦!这次的主角可是个神器——鼠标连点器!你听过没?这玩意儿简直是个“自动小助手”,让你的鼠标在屏幕上飞舞,点得飞快,解放你的双手,让你网…

企业费用标准如何制定?

在当前宏观经济环境和市场竞争日益激烈的背景下,国内很多企业的费用管理流程依旧面临诸多挑战。特别是制造业、零售业等人员众多的企业,如何通过制定精细化、自动化的企业费用标准来实现降本增效,已经成为企业财务流程优化的首要目标。 企业…

Oracle数据库设计规范指南(Word原件)

方便业务功能实现、业务功能扩展;方便设计开发、增强系统的稳定性和可维护性;保证数据完整性和准确性;提高数据存储效率,在满足业务需求的前提下,使时间开销和空间开销达到优化平衡。资料获取:本文本个人名…

常见硬件工程师面试题(一)

大家好,我是山羊君Goat。 对于硬件工程师,学习的东西主要和电路硬件相关,所以在硬件工程师的面试中,对于经验是十分看重的,像PCB设计,电路设计原理,模拟电路,数字电路等等相关的知识…

FANUC机器人SRVO-348 DCS MCC关闭报警处理方法总结

FANUC机器人SRVO-348 DCS MCC关闭报警处理方法总结 如下图所示,由于操作人员在操机时误打开了安全门,导致机器人紧急制动停止,示教器上显示: SRV0-348 DCS MCC关闭报警0,1, 如下图所示,查看手册中关于SRVO-348报警的具体内容: 原因分析:给机器人主电源上电的接触器在紧…