经典计算机网络面试题

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 经典计算机网络面试题

1.说说HTTP常用的状态码及其含义?

状态码

类别

1xx

信息性状态码

2xx

成功状态码

3xx

重定向状态码

4xx

客户端错误状态码

5xx

服务端错误状态码

日常开发中的状态码:

状态码

含义

101

切换请求协议

200

请求成功

301

永久性重定向,会缓存

302

临时重定向,不会缓存

400

客户端请求的语法错误

403

服务器禁止访问,权限有关

404

服务器无法根据客户端的请求找的资源

500

服务端错误

2.HTTP常用的请求方式,区别和用途?

请求方式

用途

GET

对服务器资源获取的简单请求

POST

用于发送包含提交数据的请求

PUT

向服务器提交数据,以修改数据

HEAD

请求页面的首部,获取资源的元信息

DELETE

删除服务器上的某些资源

CONNECT

用于ssl隧道的基于代理的请求

OPTIONS

返回所有可用的方法,常用于跨域

TRACE

追踪请求-响应的传输路径

3.请简单说你了解的端口及对应的服务

端口

服务

21

FTP(文件传输协议)

22

SSH

23

telnet服务

25

SMTP(简单邮件传输协议)

53

DNS域名服务器

80

HTTP超文本传输协议

110

POP3邮件协议3

4.计算机网络体系结构

   

5.ISO七层模型

应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS

表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。

会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话。

传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP,UDP。

网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP,IGMP,IP等

数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。

物理层:建立、维护、断开物理连接。

6.从浏览器地址栏URL到显示主页的过程

1.DNS解析,查找域名对应的IP地址

2.与服务器通过三次握手,建立TCP连接

3.向服务器发送HTTP请求

4.服务器处理请求,返回网页内容

5.浏览器解析并渲染页面

6.TCP四次挥手 ,连接结束

7.交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?

在HTTP中响应体的connection字段指定为Keep-alive即可

8.http如何实现长连接?在什么时候会超时?

http的长连接实质是指tcp的长连接。至于什么时候超时,我们记住这几个参数如tcp_keepalive_time、tcp_keepalive_probes就好

在什么时候会超时?

http一般会有httpd守护进程,里面可以设置keep-alive timeout,当tcp连接闲置超过这个时间就会关闭,也可以在HTTP的header里面设置超时时间

tcp的keep-alive包含三个参数,支持在系统内核的net.ipv4里面设置;当tcp连接之后,闲置了tcp_keepalive_time,则会发生侦测包,如果没有收到对方的ACK,那么会每隔tcp_keepalive_intvl再发一次,直到发送了tcp_keepalive_probes,就会丢弃该连接。

9.http和https有什么区别

http,即超文本传输协议,是一个基于tcp/ip通信协议来传递明文数据的协议。http会存在这几个问题:

请求信息是明文传输,容易被窃听截取。

没有验证对方身份,存在被冒充的风险。

数据的完整性未校验,容易被中间人篡改。

所以为了解决这些问题,就有了https。

https=http+ssl,可以理解https是带着ssl的http。

http

https

安全性

不安全

安全

默认端口

80

443

资源消耗

较少

较多

是否需要证书

不需要

需要

报文是否加密

明文

密文

10.什么是数字签名?什么是数字证书?

数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。它的出现,是为了避免身份被篡改冒充的。比如Https的数字证书,就是为了避免公钥被中间人冒充篡改。

数字证书构成:

  • 公钥和个人等信息,经过Hash摘要算法加密,形成消息摘要;将消息摘要拿到拥有公信力的认证中心(CA),用它的私钥对消息摘要加密,形成数字签名。
  • 公钥和个人信息、数字签名共同构成数字证书。

11.说说DNS的解析过程

DNS,域名解析系统,是Internet上作为域名与IP相互映射的一个分布式数据库。它的作用很明确,就是可以根据域名查出对应的IP地址。

       

9.说下HTTP/1.0,1.1,2.0的区别

HTTP/1.0

默认使用短连接,每次请求都需要建立一个TCP连接。它可以设置connection:keep-alive,强制开启长连接。

HTTP/1.1

引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用。

分块传输编码,即服务端没产生一块数据,就发送一块,用“流模式”取代“缓存模式”。

管道机制,即在同一个TCP连接里面,客户端可以同时发送多个请求。

HTTP/2.0

二进制协议,1.1版本的头信息是文本(ASCII),数据体可以是文本或者二进制;2.0中,头信息和数据体都是二进制。

完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。

报头压缩,HTTP协议不带有状态,每次请求都必须附上所有信息。

服务端推送,允许服务器未经请求,主动向客户端发送资源。

10.在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?

在HTTP中相应体的connection字段指定为keep-alive即可。

11.每一层网络协议有哪些?

应用层:HTTP(超文本传输协议),FTP(文本传输协议),SMTP(简单邮件传输协议),DNS(域名系统),SSH(安全外壳协议),DHCP(动态主机配置协议),TELNET(远程登录协议)

传输层:TCP(传输控制协议),UDP(用户数据报文协议)

网络层:IP(网际协议),ARP(地址转换协议),RARP(反向地址转换协议),ICMP(Internet控制报文协议)

数据链路层:ARQ(自动重传需求协议),CSMA(停止等待协议),PPP(点对点协议)

物理层:HUB,网线,中继器

12.说说websocket与socket的区别

socket就是IP地址+端口+协议

websocket是一个持久化的协议,伴随H5而出的协议,用来解决http不支持持久化连接的问题

socket一个是网编编程的标准接口,而websocket则是应用层通信协议。

13.IP地址有哪些分类?

IP地址=网络号+主机号

网络号:标志主机所连接的网络地址表示属于互联网的哪一个网络

主机号:标志主机地址表示其属于该网络中的哪一台主机

IP地址分为A,B,C,D,E五大类:

A类地址(1~126):以0开头,网络号占前8位,主机号占后面24位

B类地址(128~191):以10开头,网络号占前16位,主机号占后面16位

C类地址(192~223):以110开头,网络号占前24位,主机号占后面8位

D类地址(224~239):以1110开头,保留位多播地址

E类地址(240~255):以11110开头,保留位为将来使用

14.有了IP地址为什么还要用MAC地址?

一台计算机常用的就是IP地址和MAC地址,但计算机的IP地址可由用户自行更改,管理起来就相对困难,而mac地址不可更改,所以一般把mac地址和IP地址组合起来使用。

15.详细介绍一下TCP的三次握手机制

  • 第一次握手(SYN=1, seq=x),发送完毕后,客户端就进入SYN_SEND状态
  • 第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1), 发送完毕后,服务器端就进入SYN_RCV状态。
  • 第三次握手(ACK=1,ACKnum=y+1),发送完毕后,客户端进入ESTABLISHED状态,当服务器端接收到这个包时,也进入ESTABLISHED状态。

16.TCP四次挥手过程

  1. 第一次挥手(FIN=1,seq=u),发送完毕后,客户端进入FIN_WAIT_1状态。
  2. 第二次挥手(ACK=1,ack=u+1,seq =v),发送完毕后,服务器端进入CLOSE_WAIT状态,客户端接收到这个确认包之后,进入FIN_WAIT_2状态。
  3. 第三次挥手(FIN=1,ACK1,seq=w,ack=u+1),发送完毕后,服务器端进入LAST_ACK状态,等待来自客户端的最后一个ACK。
  4. 第四次挥手(ACK=1,seq=u+1,ack=w+1),客户端接收到来自服务器端的关闭请求,发送一个确认包,并进入TIME_WAIT状态,等待了某个固定时间(两个最大段生命周期,2MSL,2 Maximum Segment Lifetime)之后,没有收到服务器端的ACK ,认为服务器端已经正常关闭连接,于是自己也关闭连接,进入CLOSED状态。服务器端接收到这个确认包之后,关闭连接,进入CLOSED状态。
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
12天前
|
网络协议 网络架构
OSPF邻居关系建立失败?揭秘网络工程师面试中最常见的难题,这些关键步骤你掌握了吗?网络配置的陷阱就在这里!
【8月更文挑战第19天】OSPF是网络工程中确保数据高效传输的关键协议。但常遇难题:路由器间无法建立OSPF邻居关系,影响网络稳定并成为面试热点。解决此问题需检查网络连通性(如使用`ping`),确认OSPF区域配置一致(通过`show running-config`),校准Hello与Dead计时器(配置`hello`和`dead`命令),及核查IP地址和子网掩码正确无误(使用`ip address`)。系统排查上述因素可确保OSPF稳定运行。
33 2
|
3月前
|
缓存 网络协议 安全
Android网络面试题之Http基础和Http1.0的特点
**HTTP基础:GET和POST关键差异在于参数传递方式(GET在URL,POST在请求体),安全性(POST更安全),数据大小限制(POST无限制,GET有限制),速度(GET较快)及用途(GET用于获取,POST用于提交)。面试中常强调POST的安全性、数据量、数据类型支持及速度。HTTP 1.0引入了POST和HEAD方法,支持多种数据格式和缓存,但每个请求需新建TCP连接。**
38 5
|
3月前
|
缓存 JSON 网络协议
Android面试题:App性能优化之电量优化和网络优化
这篇文章讨论了Android应用的电量和网络优化。电量优化涉及Doze和Standby模式,其中应用可能需要通过用户白名单或电池广播来适应限制。Battery Historian和Android Studio的Energy Profile是电量分析工具。建议减少不必要的操作,延迟非关键任务,合并网络请求。网络优化包括HTTPDNS减少DNS解析延迟,Keep-Alive复用连接,HTTP/2实现多路复用,以及使用protobuf和gzip压缩数据。其他策略如使用WebP图像格式,按网络质量提供不同分辨率的图片,以及启用HTTP缓存也是有效手段。
62 9
|
3月前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
41 2
|
3月前
|
缓存 网络协议 Android开发
Android网络面试题之Http1.1和Http2.0
HTTP/1.1 引入持久连接和管道机制提升效率,支持分块传输编码和更多请求方式如PUT、PATCH。Host字段指定服务器域名,RANGE用于断点续传。HTTP/2变为二进制协议,实现多工处理,头信息压缩和服务器推送,减少延迟并优化资源加载。HTTP不断发展,从早期的简单传输到后来的高效交互。
39 0
Android网络面试题之Http1.1和Http2.0
|
3月前
|
缓存 网络协议 Java
Android面试题之Java网络通信基础知识
Socket是应用与TCP/IP通信的接口,封装了底层细节。网络通信涉及连接、读写数据。BIO是同步阻塞,NIO支持多路复用(如Selector),AIO在某些平台提供异步非阻塞服务。BIO示例中,服务端用固定线程池处理客户端请求,客户端发起连接并读写数据。NIO的关键是Selector监控多个通道的事件,减少线程消耗。书中推荐《Java网络编程》和《UNIX网络编程》。关注公众号AntDream了解更多。
36 2
|
3月前
|
XML JSON Java
Android面试题 之 网络通信基础面试题
序列化对比:Serializable码流大、性能低;XML人机可读但复杂;JSON轻量、兼容性好但空间消耗大;ProtoBuff高效紧凑。支持大量长连接涉及系统限制调整、缓冲区优化。select/poll/epoll是IO多路复用,epoll在高连接数下性能更优且支持边缘触发。水平触发持续通知数据,边缘触发仅通知新数据。直接内存减少一次拷贝,零拷贝技术如sendfile和MMAP提升效率。关注公众号"AntDream"了解更多技术细节。
28 1
|
3月前
|
网络协议 Java 网络安全
架构面试题汇总:网络协议34问(2024版)
架构面试题汇总:网络协议34问(2024版)
|
3月前
|
运维 数据库 网络架构
详尽分享运维网络面试题101道
详尽分享运维网络面试题101道
108 0
|
4月前
|
Linux 网络安全
CentOS系统openssh-9,网络安全大厂面试真题解析大全
CentOS系统openssh-9,网络安全大厂面试真题解析大全
下一篇
云函数