常州制作企业网站/找关键词的三种方法
本篇总结的是计算机网络知识相关的面试题,后续也会更新其他相关内容
文章目录
- 1、HTTP 与 HTTPS 有哪些区别?
- 2、HTTPS的加密过程是什么?
- 3、GET与POST有什么区别?
- 4、讲讲HTTP各个版本的区别?
- 5、HTTP与FTP的区别?
- 6、Session、Cookie的主要区别 ?
- 7、如果客户端禁止 cookie 能实现 session 还能用吗?
- 8、在浏览器输入一个网址到页面显示出来中间都发生了什么?
- 9、关于TCP粘包你知道什么?
- 10、Ping的工作原理是什么?
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的加密过程是什么?
答:在之前我们介绍了对称加密和非对称加密的优缺点,HTTPS是将两者结合起来,使用的对称加密和非对称
加密的混合加密算法。具体做法就是
- 使用非对称加密来传输对称密钥来保证安全性
- 使用对称加密来保证通信的效率。
简易的加密流程
- 服务端生成一对非对称密钥,将公钥发给客户端。
- 客户端生成对称密钥,用服务端发来的公钥进行加密,加密后发给服务端。
- 服务端收到后用私钥进行解密,得到客户端发送的对称密钥。
- 通信双方就可以通过对称密钥进行高效地通信了。
这其中存在一个很大地问题,就是客户端最开始如何判断收到的这个公钥就是来自服务端而不是其他人冒充的?
- 这就需要证书上场了,服务端会向一个权威机构申请一个证书来证明自己的身份.
- 到时候将证书(证书中包含了公钥)发给客户端就可以了
- 客户端收到证书后既证明了服务端的身份又拿到了公钥就可以进行下一步操作了。
HTTPS的加密过程
- 客户端向服务端发起第一次握手请求,告诉服务端客户端所支持的SSL的指定版本、加密算法及密钥长度等信息。
- 服务端将自己的公钥发给数字证书认证机构,数字证书认证机构利用自己的私钥对服务器的公钥进行数字签名,并给服务器颁发公钥证书。
- 服务端将证书发给客户端。
- 客户端利用数字认证机构的公钥,向数字证书认证机构验证公钥证书上的数字签名,确认服务器公开密钥的真实性。
- 客户端使用服务端的公开密钥加密自己生成的对称密钥,发给服务端。
- 服务端收到后利用私钥解密信息,获得客户端发来的对称密钥。
- 通信双方可用对称密钥来加密解密信息。
客户端哪里来的数字认证机构的公钥,其实,在很多浏览器开发时,会内置常用数字证书认证机构的公钥。
如下图:
3、GET与POST有什么区别?
答:它们都是都是HTTP的一种协议,但是
GET
是用于向服务器获取资源
,参数直接拼接在url上面。方法是安全、幂等、可被缓存的。POST
用于向服务器推送资源
,参数使用requestData传输,传输内容更多。方法是不安全,不幂等,不可缓存。
在 HTTP 协议里,所谓的「安全」是指请求方法不会「破坏」服务器上的资源。 所谓的「幂等」,意思是多次执行相同的操作,结果都是「相同」的。
- GET 方法就是安全且幂等的,因为它是「只读」操作,无论操作多少次,服务器上的数据都是安全的,且每次的结果都是相同的。所以,可以对 GET 请求的数据做缓存,这个缓存可以做到浏览器本身上(彻底避免浏览器发请求),也可以做到代理上(如nginx),而且在浏览器中 GET 请求可以保存为书签。
- POST 因为是「新增或提交数据」的操作,会修改服务器上的资源,所以是不安全的,且多次提交数据就会创建多个资源,所以不是幂等的。所以,浏览器一般不会缓存 POST 请求,也不能把 POST 请求保存为书签。
4、讲讲HTTP各个版本的区别?
答:
HTTP 0.9
:仅支持GET请求,不支持请求头。HTTP 1.0
:默认短连接,一次请求对应一次TCP连接,请求完就断开、支持GET、POST、 HEAD请求。HTTP 1.1
:默认长连接,一次TCP连接可以多次请求、加入了请求头、加入了缓存处理、支持断点续传功能、支持PUT,DELETE,PATCH等六种请求。HTTP 2.0
:多路复用,降低开销(一次TCP连接可以处理多个请求)、报头压缩,降低开销、允许服务器主动推送数据、基于二进制解析,解析错误少,更高效(HTTP 1.X解析基于文本),提高了传输性能;HTTP 3.0
:把HTTP下层的TCP协议改成了UDP,数据的可靠传输依靠 QUIC 协议来实现。无队头阻塞、建立连接速度快、连接迁移;(没有被正式推出);
5、HTTP与FTP的区别?
它们都是运行在TCP之上的应用层协议,区别是:
- HTTP超文本传输协议,面向网页; FTP文件传输协议,面向文件;
- FTP
控制信息
是带外(out-of-band)传送的,HTTP控制信息是带内(in-band)传送的; - FTP用两个并行的TCP连接来传输文件,一个是控制连接(持久性连接),一个是数据连接(非持久性连接);
- HTTP既可以使用非持久性连接,也可以使用持久性连接;
- FTP服务器必须在整个会话期间保留用户的状态(state)信息,HTTP是无状态的;
6、Session、Cookie的主要区别 ?
答:HTTP协议是无状态的,即服务器无法判断用户身份。但是Session和Cookie可以用来进行用户身份辨认。
Cookie
- Cookie是保存在客户端(浏览器)一个小数据块,其中包含了用户信息。
- 当客户端向服务端发起请求,服务端会向客户端浏览器发送一个Cookie,客户端会把Cookie存起来。
- 当下次客户端再次请求服务端时,会携带上这个Cookie,服务端会通过这个Cookie来确定身份。
Session
- Session是通过Cookie实现的,和Cookie不同的是,Session是存在服务端的。
- 当客户端浏览器第一次访问服务器时,服务器会为浏览器创建一个
sessionid
,将sessionid
放到Cookie中,保存在客户端浏览器。 - 比如浏览器访问的是购物网站,将一本《图解HTTP》放到了购物车,当浏览器再次访问服务器时,服务器会取出Cookie中的sessionid,并根据sessionid获取会话中的存储的信息,确认浏览器的身份是上次将《图解HTTP》放入到购物车那个用户。
更加详细的请看这一篇:cookie、session与token的真正区别
7、如果客户端禁止 cookie 能实现 session 还能用吗?
答:可以,Session的作用是在服务端来保持状态,通过sessionid来进行确认身份,但sessionid一般是通过
Cookie来进行传递的。如果Cooike被禁用了,可以通过在URL中传递sessionid。
8、在浏览器输入一个网址到页面显示出来中间都发生了什么?
答:例如查询www.baidu.com的IP地址分为以下几个步骤:
- 浏览器根据网址的域名查找对应的IP地址
- 首先会查找
浏览器的DNS缓存
:浏览器会缓存DNS记录一段时间; - 如果没有,查找本机
系统缓存中的DNS
信息,首先检查域名是否在本地hosts
里,再查系统本地缓存的其它DNS记录
; - 如果没有,接着就会
发送一个请求到路由器
上,然后路由器在自己的路由缓存上查找记录,路由器一般也存有DNS信息; - 如果本地路由器中没有,这个请求会被发送到
ISP(网络服务提供商)
,ISP也会有相应的ISP DNS服务器; - 如果没找到,
DNS递归查询
:本地域名服务器-----根域名服务器-----顶级域名服务器-----二级域名服务器-----三级域名服务器- 向本地DNS服务器发送一个含有域名的DNS查询报文;
- 本地DNS服务器把查询报文转发到根DNS服务器;
- 根DNS服务器注意到其com后缀并向本地DNS服务器返回com的顶级域名服务器的IP地址;
- 该本地DNS服务器再次向comDNS服务器发送查询请求;
- comDNS服务器注意到其www.baidu.com后缀并用负责该域名DNS服务器的IP地址作为回应 (否则再查二级,三级域名服务器);
- 最后,本地域名服务器将含有www.baidu.com的IP地址的响应报文发送给客户端主机;
- 首先会查找
- 浏览器根据查找到的IP地址向WEB服务器发送一个HTTP请求
- 建立
Socket通信
,调用系统库函数socket,建立TCP连接
; - 建立TCP连接后,会使用HTTP协议发送HTTP的GET请求 ;
- HTTP请求协议:请求行,请求头,请求体;
- 建立
- 服务器收到请求并处理
- 服务器向浏览器返回一个响应
- 浏览器对该响应进行解码,渲染显示到页面上
- 页面显示完成后,如果需要更新信息的话,浏览器就会继续向服务器发送异步请求。
DNS 服务器:一种专门保存了 Web 服务器域名与 IP 的对应关系的服务器
9、关于TCP粘包你知道什么?
答:TCP粘包就是指发送方发送的若干包数据到达接收方时粘成了一包,从接收缓冲区来看,后一包数据的头紧接着前一包数据的尾。
TCP采用了基于流的传输,基于流的传输不认为消息是一条一条的,是无保护消息边界的。
UDP是面向消息传输的,是有保护消息边界的,接收方一次只接受一条独立的信息,所以不存在粘包问题。
造成TCP粘包的原因有哪些?
出现粘包的原因是多方面的,可能是来自发送方,也可能是来自接收方。
- 发送方:TCP默认使用
Nagle算法
,将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包;减少网络中报文段的数量 - 接收方:TCP
接收数据包到缓存
的速度大于
应用程序从缓存中读取
数据包的速度,多个包
就会被缓存
,应用程序就有可能读取到多个首尾相接粘到一起的包。
出现TCP粘包了需要处理吗?
如果是一个文件被分成多个部分发送,这时当然不需要处理粘包现象;但是如果多个分组毫不相干,甚至是并列关系,那么这个时候就一定要处理粘包现象了。
如何处理粘包?
- 如果是发送方原因导致粘包:那么可以通过
关闭Nagle算法
来解决,使用TCP_NODELAY选项来关闭算法。 - 如果是接收方原因导致粘包:接收方没有办法来处理粘包现象,只能将问题交给应用层来处理。
- 应用层处理粘包:循环处理,应用程序从接收缓存中读取分组时,读完一条数据,就应该循环读取下一条数据,直到所有数据都被处理完成。
格式化数据
:每条数据有固定的格式(开始符,结束符),这种方法简单易行,但是选择开始符和结束符时一定要确保每条数据的内部不包含开始符和结束符。发送长度
:发送每条数据时,将数据的长度一并发送,例如规定数据的前4位是数据的长度,应用层在处理时可以根据长度来判断每个分组的开始和结束位置。
10、Ping的工作原理是什么?
我们在网络通信的过程中,常常使用 ping 某一个 IP 地址或者某个域名看下基本连接是否正常;是否有丢包;是否有网络延迟。
Ping 的原理是 ICMP(无连接、网络层协议) 协议,具体是:
- Ping通过向目的主机发送
ICMP Echo请求报文
,目的主机收到之后会发送Echo 回答报文
。 - Ping 会根据响应的时间和成功响应的次数估算出数据包往返时间以及丢包率。
相关文章:

【备战面试】每日10道面试题打卡-Day6
本篇总结的是计算机网络知识相关的面试题,后续也会更新其他相关内容 文章目录1、HTTP 与 HTTPS 有哪些区别?2、HTTPS的加密过程是什么?3、GET与POST有什么区别?4、讲讲HTTP各个版本的区别?5、HTTP与FTP的区别ÿ…...

Stable Diffusion 个人推荐的各种模型及设置参数、扩展应用等合集(不断更新中)
一、说明 | 表示或者 表示 以上 二、模型 适用风景、房子、车子等漫画类风格 模型的VAE不要用模型附带的,好像就是naifu的官方vae,很老了,用 vae-ft-mse-840000-ema-pruned.ckpt 或者是 kl-f8-anime2.ckpt; 嵌入模型要下载作者…...

Salesforce 2023财年逆风增长,现金流达历史最高!
在过去的一年里,Salesforce一直是华尔街最关注的公司之一。3月1日,CRM领域的全球领导者Salesforce公布了截至2023年1月31日的第四季度和整个财年的业绩。 Salesforce主席兼首席执行官Marc Benioff表示: Salesforce全年实现了314亿美元的收入…...

2023年3月全国数据治理工程师认证DAMA-CDGA/CDGP考试怎么通过?
弘博创新是DAMA中国授权的数据治理人才培养基地,贴合市场需求定制教学体系,采用行业资深名师授课,理论与实践案例相结合,快速全面提升个人/企业数据治理专业知识与实践经验,通过考试还能获得数据专业领域证书。 DAMA认…...

【安卓软件】KMPlayer-一款完美的媒体播放器 可以播放所有格式的字幕和视频
KM PlayerKM Player是一款未编码的视频播放器,让您无需编码即可方便地播放各种格式的视频,并为您的新体验添加了字幕支持、视频播放速度和手势等功能。KMPlayer 拥有美观和直观的设计,让您可以更方便地管理和播放视频!功能高品质视…...

ClickHouse--分布式查询多副本的路由规则
前言在集群情况下,数据写入可以有写本地表和写分布式表2种方案,但是面向集群查询时,只能通过Distributed表引擎实现。本文主要介绍分布式查询多副本的路由规则。该配置项为:load_balancerandom/nearest_hostname/in_order/first_o…...

Linux 常用命令总结
本篇博客记录读研以来高频使用的 linux 系统下的命令合集 命令分类程序运行系统相关文件处理文件传输相关命令文件显示相关命令文件排列相关命令Anaconda 相关命令tmux 终端复用神器使用tips程序运行 自动保存日志,替代write命令: xxx | tee ./xxx.log…...

超分扩散模型 SR3 可以做图像去雨、去雾等恢复任务吗?
文章目录前言代码及原文链接主要的点如何进行图像恢复前言 关于扩散模型以及条件扩散模型的介绍,大家可以前往我的上一篇博客:扩散模型diffusion model用于图像恢复任务详细原理 (去雨,去雾等皆可),附实现代码。 SR3是利用扩散模…...

STM32Cube STM32MP157 M4端CAN通讯实战
1、环境 开发系列:STM32MP157 开发软件:STM32CubeIDE 1.4.0 例程目的:在M4端实现CAN通讯 2、目的 近日,有客户需要在STM32MP157中的M4端实现CAN通讯,我也是初次在M4端编写CAN通讯代码,上网研究了其他人写…...

npm install报错unable to resolve dependency tree
一、问题背景npm install安装项目依赖时报错PS D:\test> npm install npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: vue-admin-template4.2.1 npm ERR! Found: webpack5.74.0 npm ERR! node_modules/we…...

力扣sql简单篇练习(二十六)
力扣sql简单篇练习(二十六) 1 每家商店的产品价格 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 多行变成多列,考虑用sum if分组 SELECT product_id,sum(IF(storestore1,price,null)) store1,sum(IF(storestore2,price,null)) store2, sum(IF(st…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A模块第九套解析(详细)
2022年全国职业院校技能大赛(中职组) 网络安全竞赛试题 (9) (总分100分) 赛题说明 一、竞赛项目简介 “网络安全”竞赛共分A.基础设施设置与安全加固;B.网络安全事件响应、数字取证调查和应用安全;C.CTF夺旗-攻击;D.CTF夺旗-防御等四个模块。根据比赛实际情况,竞…...

C++回顾(十六)—— 异常处理机制
16.1 异常的基本语法 1) 若有异常则通过throw操作创建一个异常对象并抛掷。2) 将可能抛出异常的程序段嵌在try块之中。控制通过正常的顺序执行到达try语句,然后执行try块内的保护段。3) 如果在保护段执行期间没有引起异常…...

【100个 Unity实用技能】 | Unity 在代码中 动态改变RectTransform位置及宽高 的方法整理
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案ÿ…...

哈希表的实现
哈希表概念 二叉搜索树具有对数时间的表现,但这样的表现建立在一个假设上:输入的数据有足够的随机性。哈希表又名散列表,在插入、删除、搜索等操作上具有「常数平均时间」的表现,而且这种表现是以统计为基础,不需依赖…...

搞懂海明码
海明码搞懂之前先了解奇偶校验。例如:1111 对其进行奇偶校验。 奇检验:11111 奇校验使1的个数保持在奇数 偶校验:01111 偶校验使1的个数保持在偶数 海明码可以拆分为三步: 一、确定校验的位数 公式:2^k > k n …...

数据库:Mysql数据库安装及使用
目录 一、数据库介绍 1、基本概念 2、数据库类型 3、版本演变 二、Mysql安装 1、官网下载yum安装 2、手动配置yum安装 三、Mysql基本操作 1、登录与改密 2、检测数据库健康 3、 库的创建与使用 4、数据类型 5、修饰符 6、表的创建与使用 7、分组查询 8、查询排…...

【冲刺蓝桥杯的最后30天】day7
大家好😃,我是想要慢慢变得优秀的向阳🌞同学👨💻,断更了整整一年,又开始恢复CSDN更新,从今天开始更新备战蓝桥30天系列,一共30天,如果对你有帮助或者正在备…...

REG.EXE修改注册表-解决win10微软输入法默认中文,将其全局修改为英文
REG.EXE修改注册表-解决win10微软输入法默认中文,将其全局修改为英文 使用REG.EXE 可以直接强制修改注册表字段 修改注册表: REG.EXE ADD 注册表路径 /v 注册表项字段 /t 注册表字段类型 /d 注册表值 /f 例如: REG. EX ADD HKLM\System\C…...

hive之正则函数研究学习regex/regex_replace/regex_extract
首先学习这个之前要先知道一些正则的基本知识。 随便百度一下正则表达式 – 元字符 | 菜鸟教程 字符描述\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,n 匹配字符 "n"。\n 匹配一个换行符。序列 \\ 匹…...

Codeforces Round 854 by cybercats (Div. 1 + Div. 2) C、D1
C. Double Lexicographically Minimum 题意 字符串sss,你可以把它按任意顺序组合,保留的是你组合的字符串和它的倒序之间大的那一个,问你在满足上面条件的前提下字典序最小的字符串。 思路 分析不难发现在没达到一个关键的点的时候肯定是…...

API 网关日志的价值,你了解多少?
本文介绍了 API 网关日志的价值,并以知名网关 Apache APISIX 为例,展示如何集成 API 网关日志。 作者钱勇,API7.ai 技术工程师,Apache APISIX Committer。 原文链接 网关日志的价值 在数字化时代,软件架构随着业务成…...

华大单片机、STM32单片机如何做printf串口打印格式化输出
第一种方法:使用标准C库,但使用标准C库你必须关闭半主机模式(1)添加下面代码就是关闭半主机模式/* 告知连接器不从C库链接使用半主机的函数 */ #pragma import(__use_no_semihosting)/* 定义 _sys_exit() 以避免使用半主机模式 */…...

unity 面试汇总
1、什么是协同程序?答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个可以与程序并行的逻辑。可以用来控制运动、序列以及对象的行为。2、Unity3D中的碰撞器和触发器的区别ÿ…...

Spring SpringBoot中使用Mybatis-plusDemo1
官网:https://baomidou.com GitHub:GitHub - baomidou/mybatis-plus: An powerful enhanced toolkit of MyBatis for simplify development Gitee:mybatis-plus: mybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com低代码组件库 http://aizuda.com My…...

【18.04Ubuntu中解决无法识别显示屏】
【18.04Ubuntu中解决无法识别外接显示屏】1. 问题来源2. 检查Ubuntu是否识别出外接显示器3. 解决没有识别出外接显示器问题4. 显示器扩展屏幕设置1. 问题来源 实验室的一个dell显示器,通过HDMI连接电脑后,在Windows上连接上就直接可以使用了。由于我电脑…...

Python 协程详解,都在这里了
什么是协程 协程(co-routine,又称微线程、纤程) 是一种多方协同的工作方式。 协程不是进程或线程, 其执行过程类似于 Python 函数调用, Python 的 asyncio 模块实现的异步IO编程框架中, 协程是对使用 asy…...

百家号如何写文章赚钱,百家号写文章真的赚钱?
随着互联网的快速发展,越来越多的人开始关注到写文章赚钱这个领域。而在众多写作平台中,头条号无疑是最受欢迎的一个。那么,百家号写文章赚钱是真的吗?如何写文章赚钱呢?下面我们就来一一解答。 首先,百家号…...

【HDFS】datanodeReport RPC优化
cat datanodeReport.txt | awk ‘{print $8}’ | sort | uniq | wc -l 结果15,说明我们有15个router。 每15秒一个router8次调用这个rpc。15秒是我们的监控采集间隔。 看下router为什么要调用这个rpc。 顺着这个配置项去寻找:dfs.federation.router.dn-report.time-out 一…...

【数据结构】研究链表带环问题
💯💯💯💯 本篇主要研究的是链表带环问题,快慢指针的应用,分析不同解法对带环链表的处理,梳理完本篇你将对链表的理解更加透彻Ⅰ.研究链表带环问题Ⅱ.扩展带环问题1.为什么慢指针和快指针一定会相…...