栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

测试面试之网络

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测试面试之网络

什么是长连接和短连接,他们的定义区别及应用场景?
前提:
HTTP/1.0默认使用短连接,HTTP/1.1开始默认使用长连接;
HTTP协议的长连接和短连接,实质就是TCP协议的长连接和短连接;
TCP协议建立连接需要3次握手,断开连接需要4次握手,这个过程会消耗网络资源和时间;
定义:
长连接:在一个TCP连接上可以发送多个数据包,但是如果没有数据包发送时,也要双方发检测包以维持这个长连接;三次握手后连接,不断开连接,保持客户端和服务端通信,直到服务器超时自动断开连接,或者客户端主动断开连接。
短连接:当双方需要数据交互的时候,就建立一个TCP连接,本次交互完之后就断开这个连接;三次握手后建立连接,发送数据包并得到服务器返回的结果后,通过客户端和服务器的四次握手后断开连接。
优缺点:
长连接可以省去较多建立连接和断开连接的操作,所以比较节省资源和时间,但是长连接如果一直存在的话,需要很多探测包的发送来维持这个连接,这对服务器将是很大的负担;
相对而言,短连接不需要服务器承担太大负担,只要存在的连接就是有用的连接,但如果客户端请求频繁,就会在TCP的建立连接和断开连接上浪费较大的资源和时间。
使用场景:
短连接:适用于网页浏览等数据刷新频度较低的场景。一般而言像及京东,淘宝这些大型网站,随时都会有成千上万的用户请求,一般使用短连接,用户量太大,服务器扛不住那么多长连接;
长连接:适用于客户端和服务端通信频繁的场景,例如:聊天室,实时游戏等场景。即时通讯(QQ)般使用的都是长连接,但并不是永久连接(比如20分钟,半个小时),因为即时通讯是频繁的发送请求,使用长连接只需要建立一次连接,同时再根据业务设置保持时间,超过这个时间就会断开连接,一定程度上保证了服务器的压力不会过大。
Socket心跳包机制:
像心跳一样,每隔固定时间向服务器发送一个包,以此来告诉服务器,这个客户端还活着。为了保持长连接,一般都是很小的包(节约流量)或者只有包头的空包。
心跳检测步骤:
1.客户端每隔一段时间间隔就发送一个探测包给服务器;
2.客户端发包时启动一个超时定时器;
3.服务端接收到探测包后会回应一个包;
4.如果客户端收到服务器的应答包,则说明服务器正常,删除超时定时器;如果没有收到则服务器异常。
https的SSL怎么对数据进行加密,流程是什么?
(1)浏览器发送一个请求给服务器,服务器将自己的证书(包含服务器公钥s_PuKey)、对称加密算法种类及其他相关信息返回给客户端;
(2)客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发。若不是则给客户一个警告信息,询问是否继续访问;
(3)客户端浏览器比较证书里面的信息,如证书有效期、服务器域名和公钥S_PK,与服务器传回的信息是否一致,如果一致,则浏览器完成对服务器的身份认证;
(4)服务器要求客户端发送客户端证书(包含客户端公钥c_puKey)、支持的对称加密方案及其他相关信息。收到后,服务器进行相同的身份认证,若没有通过验证,则拒绝连接;
(5)服务器根据客户浏览器发送到密码种类,选择一个加密程度最高的方案,用客户端公钥C_Pukey加密后通知到浏览器;
(6)客户端通过私钥C_PrKey解密后,得知服务器选择加密方案,并选择一个通话秘钥key,接着用服务器公钥S_PuKey加密后发送给服务器;
(7)服务器接收到浏览器传送的消息,用私钥S_Pukey解密,获得通话秘钥key;
(8)接下来数据传输都使用该秘钥key进行加密;
SSL的对称加密和非对称加密?
对称加密:双方使用同一秘钥,既可以加密又可以解密,加密解密都是同一秘钥;
非对称加密:非对称加密算法需要两个秘钥:公开秘钥(publicKey)和私有秘钥(privatekey).公开秘钥和私有秘钥是一对,如果公开秘钥对数据进行加密,只有用对应的私有秘钥才能解密,如果用私有秘钥进行加密,那么只有用对应的公开秘钥才能解密;
TCP 和 UDP 有什么区别?
TCP 为有连接,所以握手会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换;
UDP 非可靠连接,会丢包,没有校验,速度快,无需握手过程;
DNS是什么?它是如何工作的?
域名解析服务,可用于域名解析IP,或者将IP解析为域名;客户机可指定DNS服务来解析,或用本地hosts文件进行解析;
描述一下Http协议?
http协议又叫做超文本传输协议,在做网络请求的时候,我们基本上是使用http协议。
http协议包括请求和响应。
请求中包括:请求地址,请求方式,请求方式包括get请求和post请求,get和post的区别是get请求是在地址栏后边跟随请求参数,但是请求参数大小是有限制,不同浏览器是不同的。一般是4KB。post请求主要用于向服务器提交请求参数。post请求的参数是放到请求实体内容中的,相对get请求较为安全一些。
另外,请求中会有各种请求头信息,比如支持的数据类型,请求的来源位置,以及Cookie头等相关头信息。
响应,主要包含响应的状态码,像200(),404(),500(),304(),307()
还有各种响应头信息,比如设置缓存的响应头,Content-Type内容类型,设置cookie头信息。
HTTP请求有几种方式?分别是什么?
get,post,head,put,delete,connect,options,trace
Http请求中get和post的区别?
Get请求参数是拼接在url中的,数据在Url中可以看到,Post请求参数是放在请求体中的;
Get提交的数据有限制,最多1024个字节,而Post 则没有限制;
安全性问题:如果提交的数据非常敏感,则get请求是暴露在Url中的,最好用Post;
GET 在浏览器回退时是无害的,而 POST 会再次提交请求。
GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。
GET 请求只能进行 url 编码,而 POST 支持多种编码方式
get只发送一个tcp数据报文(包含请求头和data),post发送两个报文(1.请求头,返回 100,2.data,返回200)
常见的Post提交数据的方式有哪些?
主要有四种方式:四种方式取决于Content-Type这个请求头:
Content-Type:application/x-www-form-urlencoded 特点:数据报文是字典, 相当于通过表单方式去提交数据,数据的格式:a=1&b=2&c=3
Content-Type:multipart/form-data 特点:报文包含有文件上传。 Content-Type:application/json(text/plain,text/xml…) 特点:报文都是字符串类型。
Content-Type:binary 特点:报文类型是以二进制的方式上传文件。
HTTP数据哪一层协议?
HTTP 数据应用层协议;
HTTP 和 HTTPS 的区别?
安全:HTTPS 是HTTP 协议的安全加强版,通过在HTTP 上建立加密层,对传输数据进行加密;主要
一:建立安全通道,保证数据传输的安全,二:确认网站的真实性;
表现:HTTPS 站点会在地址栏显示一把小锁,表示是加密过的安全网站;
端口:HTTP 标准端口 80, HTTPS 标准端口 443;
证书:HTTP 不需要证书,HTTPS 需要CA 机构颁发的SSL 证书,HTTP 协议工作于应用层,
HTTPS 工作于传输层;
HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进 行加密传输、身份认证的网络协议,比 http 协议安全。
HTTP 一次完整的事务过程?
1.域名解析;
2.发起TCP三次握手;
3.建立TCP连接后发送Http 请求;
4.服务端响应http请求,获得html代码;
5.浏览器解析html代码,并请求html代码中的资源;
6.浏览器对页面进行渲染,呈现给用户;
HTTP 请求头包含那些tag?
Host: 请求域名和端口,不包括协议;
Connection: 连接状态;
Upgrade-Insecure-Requests: http自动升级到https,防止跨域问题
User-Agent 浏览器用户代理信息
Accept-Encoding 浏览器能处理的压缩代码
Accept-Language 浏览器当前设置语言
Content-Length: 请求参数长度
Cache-Control 强制要求服务器返回的新文件的内容,不走缓存,返回的200
Origin 请求来源地址,包括协议
Referer 防盗链,原始的Url
Cookie 当前页面设置的Cookie
If-Modified-Since 缓存时间
X-Requested-With:异步请求。ajax异步请求。无刷新。
Http 响应头包含那些tag?
Date 消息发送的时间;
server 服务器名字
Connection 浏览器与服务器之间连接的类型
Content-type 数据类型
Content-Encoding:压缩格式
Cache-Control 控制Http 缓存
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers:
Access-Control-Allow-Methods: POST, GET, PUT, PATCH, DELETE, OPTIONS
Access-Control-Allow-Origin: https://kaiwu.lagou.com
Access-Control-Expose-Headers: Pard-Id,Coop51-InnerToken,X-S-HEADER,X-SS-REQ-HEADER
Access-Control-Max-Age: 86400
Connection: keep-alive
Date: Wed, 29 Dec 2021 03:41:33 GMT
HTTP 为什么是无状态的协议?带来的问题?怎么使HTTP有状态?
HTTP是无状态协议,即客户端和服务端不保留任何记录,上一次的请求对这次的请求没有任何影响,服务端不会对上次的请求做任何记录;
HTTP无状态带来的问题:用户的登录后切换到其他页面,服务器无法判断是那个用户登录的,每次切换页面都要进行登录;
采用Cookie-Session 机制来解决HTTP 无状态带来的问题;
什么是 Cookie-Session 机制?Cookie、Session 有什么区别?
Cookie-Session 机制是常见的会话跟踪技术,Cookie 是通过客户端记录用户信息确认身份。Session是通过服务器记录用户信息确认用户身份。
Cookie的实现过程:Cookie 会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再往该服务发送请求时,客户端会自动在请求报文中加入Cookie 值然后发送出去。也就是Cookie是服务端生成的,发给客户端,由客户端来保存,每次请求加上Cookie,服务端会根据客户端发过来的Cookie来检查是那一个客户端发过来的请求,对比服务器上的记录,得到之前的状态信息。
Session 是一种记录客户状态的机制,保存在服务器上,客户端浏览器访问服务器的时候,服务器把客户端以某种形式记录在服务器上,这就是Session,客户端再次访问浏览器时,只需要在session 中查找该客户的状态就可以了。HTTP是无状态的,Session 不能依据HTTP连接来判断是否为同一客户,因此Session 需要Cookie 来做为识别标识;
Cookie、Session 的区别:
1.Cookie 存储在客户端(浏览器),Session 存储在服务器;
2.Cookie 可以设置过期时间,使用session-destory(),我们将会销毁会话。
3.Cookie 数据不能超过4K,部分浏览器cookie 不能超过20个,Session 没有对数据量做限制,可以保存复杂的数据类型;
4.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
常见状态码?
 每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
  1、2XX 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
200 成功,服务器成功处理了请求;
201 已创建,请求成功,服务器创建了新的资源
202 已接受,服务器已接受请求,但尚未处理
203 非授权信息 服务器成功处理了请求,但返回的信息来自另一来源
204 无内容 服务器成功处理了请求,但未返回任何内容
205 重置内容
206 部分内容 服务器成功处理了get 请求
  2、3XX 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
300 多种选择 服务器可执行多种操作,提供操作列表供请求者选择
301 永久移动 请求的网页永久移到新位置,服务器对返回的相应,会自动转到新的位置
302 临时移动 服务器目前从不同位置的网页相应请求,但请求者继续使用原来位置进行以后的请
求
303 查看其他位置 请求者对不同的位置使用单独的Get 来检索响应时,服务器返回此代码
304 未修改 上次请求后,请求的网页未修改过,服务器返回此响应,不会返回网页内容
305 使用代理 请求者只能使用代理访问请求的网页,如果服务器返回此响应,表示请求者使用代理
307 临时重定向 服务器目前从不同位置的网页响应请求,但请求者应继续使用原来的位置进行以后的请求
  3、4XX 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
400 错误请求 服务器不理解请求的语法
401 未授权 请求要求身份验证
403 禁止 服务器拒绝请求
404 未找到 服务器找不到请求的网页
405 方法禁用 禁止请求中指定的方法
406 不接受 无法使用请求的内容特性响应请求的网页
407 需要代理授权 此状态码与401(未授权)类似,但指定请求者应当授权使用代理
408 请求超时 服务器等候请求时发生超时
409 冲突 服务器在完成请求时发生冲突,服务器必须在响应中包含有关冲突的信息
410 已删除 如果请求的资源永久删除,服务器就会返回此响应
411 需要有效的长度 服务器不接受不含有效内容长度标头字段的请求
412 为满足前提条件 服务器未满足请求者在请求中设置的一个前提条件
413 请求实体过大 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力
414 请求的URI 过长 请求的URL过长,服务器无法处理
415 不支持媒体类型 请求格式不受请求页面的支持
416 请求范围不符合要求 如果页面无法提供请求的范围,则服务器会返回此状态代码
417 为满足期望值 服务器未满足期望,请求标头字段的要求
4、5xx: 代表服务器有异常,500代表服务器内部异常;503服务器当前不能处理客户端的请求,一段时间后可能恢复正常;504代表服务器端超时,没返回结果。
500 服务器内部异常 服务器遇到错误,无法完成请求
501 尚未实施 服务器不具备完成请求的功能,服务器无法完成请求方法时可能会返回此代码
502 错误网关 服务器作为网关或代理,但没有及时使上游服务收到请求
503 服务不可用 服务器目前无法使用(由于超载或停机维护),通常这只是暂停状态
504 网关超时 服务器做为网关或代理, 但是没有及时从上游服务器收到请求
505 HTTP版本不受支持 服务器不支持请求中所用的HTTP 版本协议
OSI 网络体系结构分为几层?分别是什么?
OSI 是一个理论上的网络通信模型,而 TCP/IP 则是实际上的网络通信标准
(1).物理层;2.数据链路层;3.网络层;4.传输层;5.会话层;6.表示层;7.应用层;
物理层:参考模型的最底层,也是OSI模型的第一层,实现计算机节点之间比特流的透明传送,并尽可能地屏蔽掉具体传输介质和物理设备的差异,使其上层(数据链路层)不必关心网络的具体传输介质。
(2).数据链路层:接收物理层的位流形式的数据,并封装成帧,传送到上一层,同样,也将上层的数据帧,拆装为位流形式的数据转发到物理层,这一层在物理层提供的比特流的基础上,通过差错控制,流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
(3)网络层:将网络地址翻译成对应的物理地址,确定源端到目的端的路由选择,路由可以选用网络中固定的静态路由表,也可以在每一次回话时决定,还可以 根据当前的网络负载状况,灵活的决定每一个分组的分别决定。
(4)传输层:从会话层接收数据传输给网络层,同时确保到达目的端的各端信息正确无误,而且使会话层不受硬件变化的影响,通常,会话层每请求建立一个数据连接,传输层就为其创建一个独立的网络连接。
(5)会话层:允许不同机器上的用户之间建立会话的关系,既可以进行类似传输层的普通数据传输,也可以被用于远程登录到分时系统或者两台机器间传递文件。
(6)表示层:确保一个系统的应用层发出的信息被另一个系统的应用层读取,如有必要,表示层实现多种数据格式之间的转换。
(7)应用层:规定应用程序的数据格式
TCP/IP协议分为几层?
数据链路层,网络层,传输层,应用层。
TCP/IP每层主要协议?
应用层:HTTP,FTP,SMTP,DNS,Talnet;
传输层:TCP,UDP;
网络层:IP,ICMP,PIP,OSPF,BGP,LGMP;
数据链路层:SLIP,CSLP,PPP,ARP,RAPP
TCP 为什么需要三次握手呢?而不是两次?
为了防止失效的连接请求报文突然传送到服务端,产生错误。为了实现可靠性传输,TCP协议双方都必须维护一个序列号,三次握手的过程即是通信双方互相告知序列号的起始值,并确认对方已经收到了序列号起始值的步骤。
TCP为什么需要四次挥手呢?
tcp是双向传输的对等模式,故有两个方向的链接,需要两个FIN才能断开,
简述子网掩码的用途?
子网掩码主要来判断两个IP地址是否处在同一个局域网中,子网掩码是由连续的2禁止组成的,子网掩码和IP地址进行按位与运算后,结果一致,标识处于一个局域网当中,如果不一致,表示不在同一个局域网当中,需要寻找路由。
什么事内存泄露?什么是内存溢出?两者的区别是什么?
内存溢出(OutOfMemory-OOM):指你的应用内存已经不能满足正常使用了,堆栈已经达到了系统设置的最大值,进而导致系统奔溃,这是一种结果描述。
内存泄露(Memory Lack):指你的应用资源使用后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述;
了解的操作系统?
Windows,Linux,Unix,Mac;
局域网?
局域网(Local Area Network),简称 LAN,是指在某一区域内由多台计算机互联成的计算机组。“某一 区域”指的是同一办公室、同一建筑物、同一公司和同一学校等,一般是方圆几千米以内。局域网可以实现文 件管理、应用软件共享、打印机共享、扫描仪共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。
广域网?
广域网(Wide Area Network),简称 WAN,是一种跨越大的、地域性的计算机网络的集合。通常跨越 省、市,甚至一个国家。广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型的广域网。
什么事IP地址?
IP 地址是互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Adress的缩写,IP 地址是IP协议提供的一种统一的地址格式,它为互联网的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异;
B/S 和 C/S 的区别?
b/s 代表浏览器和服务器架构;
c/s 代表客户端和服务器架构
网络环境不同(c/s 建立在专用的局域网上,b/s 建立在广域网上)
安全要求不同(c/s 必须安装客户端,安全度较高;b/s 安全度较低)
系统维护不同(c/s 升级困难,需要重新安装最新客户端;b/s 无缝升级)
对系统要求不同(c/s 对系统要求较高;b/s 对系统要求较低)
什么是VLAN?VLAN的划分方法?
VLAN(无线局域网)是为解决以太网的广播问题和安全性而提出的一种协议,它在以太网帧的基础上增加了VLAN头,用VLAN ID把用户划分为更小的工作组,限制不同工作组间的用户二层互访,每个工作组就是一个虚拟局域网。虚拟局域网的好处是可以限制广播范围,并能够形成虚拟工作组,动态管理网络。
  VLAN在交换机上的实现方法,可以大致划分为4类:
  1、 基于端口划分的VLAN
  这种划分的方法的优点是定义VLAN成员时非常简单,只要将所有的端口都指定义一下就可以了。它的缺点是如果VLAN A的用户离开了原来的端口,到了一个新的交换机的某个端口,那么就必须重新定义。
  2、基于MAC地址划分VLAN
  这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置他属于哪个组。这种划分VLAN的方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分方法是基于用户的VLAN,这种方法的缺点是初始化时,所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。另外,对于使用笔记本电脑的用户来说,他们的网卡可能经常更换,这样,VLAN就必须不停的配置。
  3、基于网络层划分VLAN
  这种划分VLAN的方法是根据每个主机的网络层地址或协议类型(如果支持多协议)划分的,虽然这种划分方法是根据网络地址,比如IP地址,但它不是路由,与网络层的路由毫无关系。它虽然查看每个数据包的IP地址,但由于不是路由,所以,没有RIP,OSPF等路由协议,而是根据生成树算法进行桥交换,
  这种方法的优点是用户的物理位置改变了,不需要重新配置所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要,还有,这种方法不需要附加的帧标签来识别VLAN,这样可以减少网络的通信量。
  这种方法的缺点是效率低,因为检查每一个数据包的网络层地址是需要消耗处理时间的(相对于前面两种方法),一般的交换机芯片都可以自动检查网络上数据包的以太网祯头,但要让芯片能检查IP帧头,需要更高的技术,同时也更费时。当然,这与各个厂商的实现方法有关。
  4、根据IP组播划分VLAN
  IP 组播实际上也是一种VLAN的定义,即认为一个组播组就是一个VLAN,这种划分的方法将VLAN扩大到了广域网,因此这种方法具有更大的灵活性,而且也很容易通过路由器进行扩展,当然这种方法不适合局域网,主要是效率不高。
  鉴于当前业界VLAN发展的趋势,考虑到各种VLAN划分方式的优缺点,为了最大程度上地满足用户在具体使用过程中需求,减轻用户在VLAN的具体使用和维护中的工作量,Quidway S系列交换机采用根据端口来划分VLAN的方法。
什么是代理?代理是怎么工作的?
代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息,它是网络信息的中转站,是个人网络和服务商之间的中间代理机构,负责转发合法的网络信息,对转发的进行控制和登记。
工作:访问网站时,将提交的请求转发到代理服务器,代理服务器处理请求(加密、修改等),再请求相应的服务器;相应的服务器将数据响应给代理服务器,代理服务器将信息传输到页面,它可以充当防火墙或Web过滤器,使网页显示所需的信息;
代理服务器分为3中:转发代理服务器;反向代理服务器;开放式代服务去哦;
在浏览器输入网址发生了什么?
DNS 查询
TCP 连接
处理请求
接受响应
渲染页面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号