软件测试面试之 Web 部分

1.OSI模型各层的基本功能描述

1、物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。


2、数据链路层:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
数据链路层的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层:同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层:在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LL)两个子层。MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制:LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。


3、网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。一般地,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能有多条路径)选择问题。


在实现网络层功能时,需要解决的主要问题如下:
A)、寻址:数据链路层中使用的物理地址(如 MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
B)、交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术后者又包括报文交换技术和分组交换技术。
C)、路由算法:当“源节点”和“目的节点”之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
D)、连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。


传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。

OSI 下3层的主要任务是数据通信,上3层的任务是数据处理。而传输层(Transport Layer)是 OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。

传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送,当两节点的联系确定之后,传输层则负责监督工作。


传输层的主要功能如下:
A)、传输连接管理:提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务。
B)、处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。


会话层:负责在网络中的两节点之间建立、维持和终止通信。
会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。
有人把会话层称作网络通信的“交通警察”。当通过拨号向你的ISP(因特网服务提供商)请求连接到因特网时,ISP服务器上的会话层向你与你的 PC客户机上的会话层进行协商连接。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限。


表示层:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。
表示层管理数据的解密与加密,如系统口令的处理。例如:在Internet 上查询你银行账户,使用的即是一种安全连接。你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。


应用层:主要负责对软件提供接口以使程序能使用网络服务。
术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

2. TCP/IP 模型每层描述及和 OSI 模型的区别 

 3.TCP/IP 模型每层都有哪些主要协议

层次

协议

应用层HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
HTTPs (Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over ssL,安全超文本传输协议),HTTP 协议的安全版本。
FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。
POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
SSH(Secure shel,用于替代安全性差的 TELNET),用于加密安全登陆用。
DNS(Domain NameService,域名服务),用于完成地址查找,邮件转发等工作
SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置 IP 地址。
传输层TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议
UDP(User Datagram Protocol)是一个简单的面向数据报的传输层协议
网络层IP(Internet Protocol)互联网协议,是用于报文交换网络的一种面向数据的协议。
ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。
RIP(Routing Information Protocol)是一种使用最广泛的内部网络上使用的路由协议
ICMP(Internet Control Message Protocol)网络控制消息协定
IGMP(Internet Group Management Protocol)因特网组管理协议,管理多播组成员的一种通信协议
网络接口层Wi-Fi是一个创建于 IEEE 802.11 标准的无线局域网络设备
PPP(Point-to-Point Protocol)点对点协议,通常用在两节点间创建直接的连接

4.常见端口号有哪些

(1)公认端口(Well-Known Ports)知名端口即众所周知的端口号,范围从 0到 1023,这些端口号一般固定分配给一些服务。比如 21端口分配给 FTP(文件传输协议)服务,25 端口分配给 SMTP(简单邮件传输协议)服务,80 端口分配给HTTP 服务,135 端口分配给 RPC(远程过程调用)服务等等。
(2)注册端口(Registered Ports)
端口号从 1025 到 49151。它们松散地绑定于一些服务。也是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义。

端口号服务说明
0Reserved说明
通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描使用
IP 地址为 0.0.0.0,设置 ACK 位并在以太网层广播。
21FTPFTP 服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous 的 FTP 服务器的方法。这些服务器带有可读写的目录。木马 Dolv TroianFore、Invisible FTP、WebEx、WinCrash 和 Blade Runner 所开放的端口。
23Telnet远程登录,入侵者在搜索远程登录 UNIX的服务。大多数情况下扫描这一端口是归
了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马 TinyTelnet Server 就开放这个端口。
25SMTPSMTP 服务器所开放的端口,用于发送邮件。入侵者寻找 SMTP 服务器是为了传递地
们的 SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的 E-MAIL 服务器上将简单的信息传递到不同的地址。木马 Antigen、Email Password Sender、Haebu Coceda.
Shtrilitz stealth、WinPc、WinSpy 都开放这个端口。
80HTTP用于网页浏览。
443HTTPS网页浏览端口,能提供加密和通过安全端口传输的另一种 HTTP。
1433SQLMicrosoft 的 SQL服务开放的端口。
1521Oracle
3306MySQL
8080代理端口WWW 代理开放此端口。Tomcat、JBoss

5.简述三次握手和四次挥手

三次握手:

TCP 是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。第一次握手:主机 A发送位码为 syn=1,随机产生 seg number=1234567 的数据包到服务器,主机 B由 SYN=1 知道,A 要求建立联机;
第二次握手:主机B收到请求后要确认联机信息,向A发送 acknumber=(主机 A的seq+1),syn=1,ack=1,随机产生 seq=7654321 的包
第三次握手:主机A收到后检査 ack number 是否正确,即第一次发送的segnumber+1,以及位码ack是否为 1,若正确,主机A会再发送 ack number=(主机B的 seq+1),ack=1,主机B收到后确认 seq 值与 ack=1则连接建立成功。

完成三次握手,主机A与主机 B开始传送数据。
位码即 tcp 标志位,有6种标示:

SYN(synchronous 同步)

ACK(acknowledgement 确认)

PSH(push 传送)

FIN(finish 结束)

RST(reset 重置)

URG(urgent 紧急)
SeLuence number(顺序号码)
Acknowledge number(确认号码)

四次挥手:
由于 TCP 连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个 FIN 来终止这个方向的连接。收到一个 FIN 只意味着这一方向上没有数据流动,一个 TCP 连接在收到一个 FIN 后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1)TCP 客户端发送一个 FIN,用来关闭客户到服务器的数据传送,(2) 服务器收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加 1。和 SYN 一样,一个 FIN 将占用一个序号。
(3)服务器关闭客户端的连接,发送一个 FIN 给客户端。
(4) 客户端发回 ACK 报文确认,并将确认序号设置为收到序号加 1。

6.简述 HTTP 头域的组成

HTTP 的头域包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。
通用头部是客户端和服务器都可以使用的头部,可以在客户端、服务器和其他应用程序之间提供一些非常有用的通用功能,如 Date 头部。
请求头部是请求报文特有的,它们为服务器提供了一些额外信息,说明是谁或什么在发送请求、请求源于何处,或者客户端的喜好及能力。服务器可以根据请求头部给出的客户端信息,试着为客户端提供更好的响应。
响应头向客户端提供一些额外信息,比如谁在发送响应、响应者的功能,甚至与响应相关的一些特殊指令。这些头部有助于客户端处理响应,并在将来发起更好的请求。
实体头部提供了有关实体及其内容的大量信息,从有关对象类型的信息,到能够对资源使用的各种有效的请求方法。

类型主要头域描述
通用头Cache-Control指定请求和响应遵循的缓存机制。
请求时的缓存指令包括 no-cache、no-store、max-age、 max-stale、min-fresh.only-if-cached
响应消息中的指令包括 public、private、no-cache、no-store、no-transformmust-revalidate、proxy-revalidate、max-age.
Pragma用来包含实现特定的指令,最常用的是Pragma:no-cache。在 HTTP/1.1 协议中,它的含义和 Cache- Control:no-cache 相同。
Connection表示是否需要持久连接。如果 Serlet看到这里的值为“Keep-Alive”,或者看到请求使用的是 HTTP 1.1(HTTP 1.1 默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如 Applet,图片),显著地减少下载所需要的时间。
Date表示消息发送的时间,服务器响应中要包含这个头部,因为缓存在评估响应的新鲜度时要用到,Date 描述的时间表示世界标准时。
Transfer-EncodingWEB 服务器表明自己对本响应消息体(不是消息体里面的对象)作了怎样的编
码
请求头Accept告诉 WEB 服务器自己接受什么介质类型,*/*表示任何类型,type/*表示该类型下的所有子类型,type/sub-type。
Accept-Charset浏览器告诉服务器自己能接收的字符集
Accept-Encoding浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什
么压缩方法(gzip,deflate)
Accept-Language浏览器申明自己接收的语言
Authorization当客户端接收到来自 WEB 服务器的 WwW-Authenticate 响应时,用该头部来回应自己的身份验证信息给 WEB 服务器
If-Match如果对象的 ETag 没有改变,其实也就意味著对象没有改变,才执行请求的动作,获取文档
lf-None-Match如果对象的 ETag 改变了,其实也就意味著对象也改变了,才执行请求的动作,获取文档。
If-Modified-Since如果请求的对象在该头部指定的时间之后修改了,才执行请求的动作(比如返回对象),否则返回代码 304,告诉浏览器该对象没有修改。例如:If-Modified-Since: Thu, 10 Apr 2008 09:14:42 GMT
If-Unmodified-Since如果请求的对象在该头部指定的时间之后没修改过,才执行请求的动作(比如返回对象)
lf-Range浏览器告诉 WEB 服务器,如果我请求的对象没有改变,就把我缺少的部分给我,如果对象改变了,就把整个对象给我。浏览器通过发送请求对象的 ETag 或者自己所知道的最后修改时间给 WEB 服务器,让其判断对象是否改变了。总是跟 Range 头部一起使用。
Host客户端指定自己想访问的WEB 服务器的域名/IP 地址和端口号
Referer浏览器向 WEB 服务器表明自己是从哪个网页 URL 获得点击当前请求中的网址/URL,例如:Referer:http://www.ecdoer.com/
User-Agent浏览器表明自己的身份(是哪种浏览器)。例如:User-Agent:Mozilla/5.0(Windows; U; Windows NT 5.1; zh-CN;rv:1.8.1.14)Gecko/20080404 Firefox/2.0.0.14
响应头Age当代理服务器用自己缓存的实体去响应请求时,用该头部表明该实体从产生到现在经过多长时间了。
ServerWEB 服务器表明自己是什么软件及版本等信息。例如:Server:Apache2.0.61
Accept-RangesWEB 服务器表明自己是否接受获取其某个实体的一部分(比如文件的一部分)的请求。bytes:表示接受,none:表示不接受。
VaryWEB 服务器用该头部的内容告诉 cache 服务器,在什么条件下才能用本响应所返回的对象响应后续的请求。假如源WEB 服务器在接到第一个请求消息时,其响应消息的头部为:Content-Encoding: gzip; Vary: Content-Encoding,那么 Cache服务器会分析后续请求消息的头部,检查其Accept-Encoding,是否跟先前响应的 Vary 头部值一致,即是否使用相同的内容编码方法,这样就可以防止 Cache服务器用自己 Cache 里面压缩后的实体响应给不具备解压能力的浏览器。例如:Vary: Accept-Encoding.
实体头Allow服务器支持哪些请求方法(如 GET、POST 等)。
Location表示客户应当到哪里去提取文档,用于将接收端定位到资源的位置(URL)上。Location 通常不是直接设置的,而是通过 HttpServetResponse 的 sendRedirect方法,该方法同时设置状态代码为 302。
Content-Base解析主体中的相对 URL时使用的基础 URL。
Content-Encoding

WEB 服务器表明自己使用了什么压缩方法(gzip,deflate)压缩响应中的对象。

例如:Content-Encoding:gzip

Content-Language
 
WEB 服务器告诉浏览器理解主体时最适宜使用的自然语言
Content-LengthWEB 服务器告诉浏览器自己响应的对象的长度或尺寸,例如:Content-Length:26012
Content-Location资源实际所处的位置
Content-MD5主体的 MD5 校验和
Content-Range实体头用于指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长笠式
般格
Content-Range:bytes-unitSPfirst-byte-pos-last-byte-pos/entity-legth。例如,传送头500 个字节次字段的形式:Content-Range:bytes0-499/1234 如果一个 http 消息包含此节(例如,对范围请求的响应或对一系列范围的重叠请求),Content-Range表示传送的范围,Content-Length 表示实际传送的字节数。
Content-Type
 
WEB 服务器告诉浏览器自己响应的对象的类型。例如:Content-Type:application/xml
Etag就是一个对象(比如 URL)的标志值,就一个对象而言,比如一个 html 文件,如果被修改了,其 Etag 也会别修改,所以,ETag的作用跟 Last-Modified 的作用差不多,主要供 WEB 服务器判断一个对象是否改变了。比如前一次请求某个html文件时,获得了其 ETag,当这次又请求这个文件时,浏览器就会把先前获得 ETag 值发送给 WEB 服务器,然后 WEB 服务器会把这个 ETag 跟该文件的当前 ETag 进行对比,然后就知道这个文件有没有改变了。
ExpiresWEB 服务器表明该实体将在什么时候过期,对于过期了的对象,只有在跟 WEB服务器验证了其有效性后,才能用来响应客户请求。是HTTP/1.0的头部。例如:Expires: Sat,23 May 2009 10:02:12 GMT
Last-ModifiedWEB 服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间等等。例如:Last-Modified:Tue,06 May 200802:42:43 GMT

7. HTTP 响应代码有哪些 

类型代码描述
1XX信息100

 
继续。请求者应当继续提出请求。服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分。
101切换协议。请求者已要求服务器切换协议,服务器已确认并准备进行切换
2xx成功200OK。服务器已成功处理了请求。
201己创建。请求成功且服务器已创建了新的资源。
202已接受。服务器已接受了请求,但尚未对其进行处理。
204无内容。服务器成功处理了请求,但未返回任何内容。
3xx重定向301永久移动。请求的网页已被永久移动到新位置。服务器返回此响应(作为对 GET 或HEAD 请求的响应)时,会自动将请求者转到新位置。您应使用此代码通知 Googlebot某个网页或网站已被永久移动到新位置。
302临时移动。服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。此代码与响应GET和 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置。但由于 Googlebot 会继续抓取原有位置并将其编入索引,因此您不应使用此代码来通知 Googlebot 某个页面或网站已被移动。
304未修改。自从上次请求后,请求的网页未被修改过。服务器返回此响应时,不会返回网页内容。如果网页自请求者上次请求后再也没有更改过,您应当将服务器配置为返回此响应(称为 lf-Modified-since HTP 标头)。由于服务器可以告诉 Googlebot 自从上次抓取后网页没有更改过,因此可节省带宽和开销


307
 
临时重定向。服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。此代码与响应 GET 和 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置。但由于 Googlebot 会继续抓取原有位置并将其编入索引,因此您不应使用此代码来通知 Googlebot 某个页面或网站已被移动。
4xX客户端错误401未授权。请求要求进行身份验证。登录后,服务器可能会返回对页面的此响应。
 
403已禁止。服务器拒绝请求。如果在 Googlebot 尝试抓取您网站上的有效网页时显示此状态代码(您可在 Google 网站管理员工具中诊断 下的网络抓取 页面上看到此状态代码),那么,这可能是您的服务器或主机拒绝 Googlebot 对其进行访问。
404未找到。服务器找不到请求的网页。例如,如果请求是针对服务器上不存在的网页进行的,那么,服务器通常会返回此代码。
5XX服务器错误500服务器内部错误。服务器遇到错误,无法完成请求。
501尚未实施。服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。
502错误网关。服务器作为网关或代理,从上游服务器收到了无效的响应。
503服务不可用。目前无法使用服务器(由于超载或进行停机维护)。通常,这只是一种暂时的状态。

8. HTTP 请求的方式和区别答:

1)、HTTP 请求的方式主要有 Get 和 Post 两种方式。
2)、get 请求强调向服务器“要”内容,如要图片、HTML 文件
Post 请求强调把数据“给”服务器,常用于表单
3)、表单中,使用 action 控制表单的提交(<form action="get”>或 <form action="post”>)
4)、从协议角度出发,get方式使用请求的“头”部提交请求内容,相应可提交的数据量较小,post方式使用“实体”部提交请求内容,相应提交的数据量较大;从直观来看,get 方式地址栏会直接出现请求的参数(http://...?username=admin),post 方式地址栏看起来比较干净。


9.IP 地址和 MAC 地址的区别

答:

IP地址和MAC地址是两种不同的网络标识符。

IP地址(Internet Protocol Address)是一个由数字组成的标识符,用于在网络上唯一标识和定位设备。IP地址是由网络管理员分配的,在网络中进行路由和寻址时使用。它主要用于在互联网上进行通信和数据传输。

MAC地址(Media Access Control Address)是一个由六组十六进制数字组成的标识符,用于在局域网中唯一标识和定位网络设备。MAC地址是由硬件制造商固化在网络设备的网卡中的,一般无法更改。它主要用于在局域网内部进行数据传输和通信。

IP地址是逻辑上的标识符,它可以根据需要进行更改和重新分配,而MAC地址是物理上的标识符,一般不会改变。IP地址是在网络层上使用的,用于在不同网络之间传输数据,而MAC地址是在数据链路层上使用的,用于在同一个网络内部传输数据。

总结来说,IP地址用于在互联网上进行通信和数据传输,而MAC地址用于在局域网内部进行数据传输和通信。


10.从发出请求到收到响应主要由哪些过程构成思路:参考HTTPWatch工具的Timechar 部分

答:

从发出请求到收到响应,主要经历以下几个过程:

  1. DNS解析:首先,浏览器会根据请求的URL地址提取出主机名,然后向DNS服务器发送一个DNS查询请求,以获取该主机名对应的IP地址。

  2. 建立TCP连接:在收到DNS解析结果后,浏览器会通过本地的TCP/IP协议栈与目标服务器建立TCP连接。这个过程包括三次握手,即发送SYN(同步)包、收到SYN+ACK(同步+确认)包、发送ACK(确认)包。

  3. 发送请求:建立TCP连接后,浏览器会向目标服务器发送HTTP请求。请求中包含请求方法、请求URL、请求头部等信息。

  4. 服务器处理请求:服务器接收到请求后,会根据请求的URL、请求方法等信息,来处理请求。这个过程可能包括查找、读取、修改数据库等操作。

  5. 服务器发送响应:服务器处理完请求后,会生成一个HTTP响应,并将响应发送回客户端。

  6. 接收响应:客户端浏览器接收到服务器发送的HTTP响应。

  7. 解析响应:浏览器解析响应内容,提取出响应的状态码、响应头部和响应体等信息。

  8. 渲染页面:浏览器根据响应中的HTML、CSS、JavaScript等资源,解析和渲染页面。

  9. 断开TCP连接:页面渲染完成后,浏览器会关闭与服务器的TCP连接,释放相关资源。

以上是一个简要的过程,实际过程中还有一些细节,比如中间可能还会经过代理服务器、负载均衡服务器等。HTTPWatch工具的Timechar部分可以更详细地展示这些过程中各个步骤的耗时。


11.IP 地址的分类

答: 

IP地址的分类是根据它们的网络标识位来划分的。常见的IP地址分类有以下几种:

  1. IPv4地址:IPv4是最常用的IP地址版本,由32位二进制数字组成,通常用四个十进制数表示,每个数值范围在0-255之间。IPv4地址被分为三类:A类、B类和C类。
  • A类地址:以0开头,范围从1.0.0.0到126.0.0.0,其中第一个字节用来表示网络标识,后三个字节用来表示主机标识。A类地址适用于大型网络,可以容纳大量主机。

  • B类地址:以10开头,范围从128.0.0.0到191.255.0.0,其中前两个字节用来表示网络标识,后两个字节用来表示主机标识。B类地址适用于中等规模的网络。

  • C类地址:以110开头,范围从192.0.0.0到223.255.255.0,其中前三个字节用来表示网络标识,后一个字节用来表示主机标识。C类地址适用于小型网络。

  1. IPv6地址:IPv6是IPv4的扩展版,由128位二进制数字组成,通常用八个四位十六进制数表示。IPv6地址的范围非常大,可以支持更多的设备和网络。

  2. 特殊地址:除了常规的IP地址分类,还有一些特殊的IP地址分类,如回环地址(127.0.0.1)、广播地址、多播地址等。这些地址有特定的用途,用于特定的网络通信需求。


12.子网掩码和网关的作用

答:

子网掩码(subnet mask)用于划分网络地址和主机地址,将一个IP地址划分为网络地址和主机地址两部分。它与IP地址一起使用,用于确定本地网络和外部网络的边界。

网关(gateway)是连接不同网络之间的设备或者设备接口,它使得数据包能够在不同网络之间进行转发。当一个设备要与其他网络通信时,数据包首先会发送到网关,然后由网关将数据包转发到目标网络。网关就像是网络之间的门户,控制着数据的出入。

子网掩码和网关的作用是协助路由器和交换机识别局域网的地址范围,使得数据包能够正确发送到目标网络。子网掩码用于划分网络地址和主机地址,而网关用于将数据包从一个网络转发到另一个网络。它们是构建局域网的基本要素,使得不同设备能够在同一个局域网中进行通信。

13.集线器、交换机和路由器的区别

答: 

集线器、交换机和路由器是计算机网络中常见的设备,它们在网络中起着不同的作用。

  1. 集线器(Hub):集线器是一种简单的网络设备,用于将来自不同设备的数据集中转发到网络上的其他设备。它没有智能功能,不能分析数据包的内容,只是将所有数据包广播给网络上的所有设备。这意味着所有连接到集线器上的设备都会收到所有数据包,包括目标设备以外的数据包。这样会导致网络拥塞和数据冲突。

  2. 交换机(Switch):交换机是一种智能的网络设备,根据目标设备的MAC地址来决定将数据包转发给哪个设备。交换机具有端口和MAC地址表,可以学习和记忆设备的MAC地址,并通过查找MAC地址表来决定数据包的转发路径。这样只有目标设备才会接收到数据包,提高了网络传输效率。

  3. 路由器(Router):路由器是一种智能的网络设备,用于连接不同的网络,并根据目标IP地址决定将数据包转发到哪个网络。路由器具有多个接口,每个接口连接一个网络。路由器可以学习和记录不同网络的IP地址,并根据路由表来决定数据包的转发路径。路由器还可以进行网络地址转换(NAT)等功能,实现不同网络之间的互联和数据转换。

总结起来,集线器是简单的广播设备,交换机是根据MAC地址决定转发路径的设备,路由器是根据IP地址决定转发路径的设备。在网络中,一般会使用交换机替代集线器,使用路由器实现不同网络之间的连接和数据转发。


14.缓存怎么测试

答:

要进行缓存测试,可以按照以下步骤进行:

  1. 确定测试范围:确定需要进行缓存测试的具体模块或系统。

  2. 定义测试目标:明确测试的目标,例如验证缓存是否能够正确地存储和提供数据,以及测试缓存的性能和可靠性等。

  3. 设计测试用例:根据测试目标设计测试用例,包括正常情况下的读写操作、异常情况下的处理以及缓存的并发访问等场景。

  4. 准备测试环境:建立缓存测试环境,包括安装和配置缓存组件、设置缓存参数和容量等。

  5. 执行测试用例:按照设计好的测试用例进行测试,包括写入数据、读取数据、删除数据等操作。

  6. 记录测试结果:记录每个测试用例的执行结果,包括数据是否正确存储、读取速度、缓存命中率等。

  7. 分析测试结果:分析测试结果,检查是否达到了预期的目标,如果发现问题,需要进行排查和修复。

  8. 优化和调整缓存配置:根据测试结果,对缓存进行优化和调整,例如修改缓存容量、缓存过期时间等。

  9. 重复测试:对修改后的缓存再次进行测试,确保问题已经修复并满足了预期的要求。

总之,缓存测试主要包括功能测试、性能测试和可靠性测试等方面,通过多次测试和优化,确保缓存能够正常工作,并满足业务需求。  


15.Cookie和会话(Session)的区别

答:

Cookie和会话(Session)是 web 开发中常用的两种数据存储方式,它们有以下几个区别:

  1. 存储位置:Cookie是存储在客户端(浏览器)中的,而会话存储在服务器端。

  2. 数据容量:Cookie的数据容量有限,通常只能存储几 KB 的数据,而会话可以存储更大量的数据,通常没有容量限制。

  3. 生命周期:Cookie可以设置过期时间,可以在客户端存储一段时间,甚至可以通过设置永不过期来长期存储。而会话通常在用户关闭浏览器后会自动销毁。

  4. 安全性:由于 Cookie 存储在客户端,因此可以被用户篡改和删除,存在一定程度的安全风险。而会话存储在服务器端,相对较安全。

  5. 使用方式:Cookie可以在客户端和服务器之间进行传递,可以用于跟踪用户的会话状态。会话数据存储在服务器端,通过会话ID来识别不同的会话。

总的来说,Cookie适用于存储小量的数据,可以在客户端和服务器之间传递,并且可以长期保持。会话适用于存储较大量的数据,只在用户会话期间有效,并且存储在服务器端,相对较安全。

posted @ 2024-11-24 07:30  雷神lyx  阅读(36)  评论(0)    收藏  举报  来源