经典计算机网络面试题

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状态。

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

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

相关文章

线上党建展厅有哪些功能,如何搭建一个成功的线上党建展厅

引言: 随着互联网的飞速发展,线上党建展厅成为党建宣传的新平工具,它提供了一个方便的党建学习、交流和展示的空间。那么线上党建展厅有哪些功能,如何搭建一个成功的线上党建展厅呢? 一、线上党建展厅有哪些功能 1.组…

Wheeltec小车的开发实录(0)

配置静态ip(可以联网) 首先在你正常链接网络的时候打开“Connection Information”(我的是wifi,而且是手机热点,所以我手机就相当于一台路由器) 查看路由ip 观察到Default Route 是192.168.***.225这就是我手机的地址&#xff0…

node.js(express.js)+mysql实现登录功能

文章目录 前言实现步骤 实现步骤一、检测登录表单的数据是否合法(3)新建schema/user.js(4)在routes/use.js中引入schema/user.js中的方法reg_login_schema,代码如下: 二、根据用户名查询用户的数据三、判断…

嵌入式-Stm32-江科大基于标准库的GPIO4个小实验

文章目录 一 、硬件介绍二 、实验:LED闪烁、LED流水灯、蜂鸣器提示2.1 需求1:面包板上的LED以1s为周期进行闪烁。亮0.5s,灭0.5s.....2.2 需求2: 8个LED实现流水灯 三、硬件介绍-按键开关、光敏电阻四、 实验 按键控制LED、光敏传感器控制蜂鸣器4.1 需求1…

Go 语言中高效切片拼接和 GO 1.22 提供的新方法

Table Contents 切片拼接的必要性基本拼接方法及其局限性使用 append 函数高效拼接的策略控制容量和避免副作用利用 Go 1.22 的新特性切片动态扩容的深入理解内存重新分配与数据迁移性能优化策略结论在 Go 语言中,切片拼接是一项常见的操作,但如果处理不当,可能会导致性能问…

【计算机网络】【新加坡南洋理工大学】【Computer Control Network】【广域网和局域网简介】【中英对照(自译)】

一、说明 仅供学习使用。 二、广域网(WAN)和局域网(LAN)简介

基于springboot+vue的在线拍卖系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

Android: alarm定时很短时,比如500ms,测试执行mPowerManager.forceSuspend()后,系统不会suspend

参考文档: https://blog.csdn.net/weixin_35691921/article/details/124961404 Android: alarm定时很短时,比如500ms,然后执行mPowerManager.forceSuspend()后,系统不会suspend,原因分析: static int ala…

软件测试|sqlalchemy relationship

简介 SQLAlchemy是一个流行的Python ORM(对象关系映射)库,它允许我们以面向对象的方式管理数据库。在SQLAlchemy中,relationship是一个重要的功能,用于建立表之间的关系。在本文中,我们将详细探讨relation…

渗透测试之Kali如何利用CVE-2019-0708漏洞渗透Win7

环境: 1.攻击者IP:192.168.1.10 系统: KALI2022(vmware 16.0) 2.靶机IP:192.168.1.8 系统:Windows 7 6.1.7601 Service Pack 1 Build 7601 已开启远程协助RDP服务开启了3389端口 问题描述: KALI 如何利用CVE-2019-0708漏洞渗透Win7 解决方案: 1.打开kali,msf搜索…

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05 1. Recursive Algirithm 递归算法2. Data Fusion 数据融合Covarince Matrix协方差矩阵State Space状态空间方程 Observation观测器3. Step by step : Deriatio…

在自定义数据集上训练 YOLOv8 进行目标检测

这是目标检测中令人惊叹的 AI 模型之一。在这种情况下,您无需克隆存储库、设置要求并配置模型,就像在 YOLOv5 及其之前的版本中所做的那样。 在 YOLOv8 中,不需要执行这些手动任务。您只需安装 Ultralytics 即可,我将向您展示如何…

mybatis----小细节

1、起别名 在MyBatis中&#xff0c;<typeAliases>元素用于定义类型别名&#xff0c;它可以将Java类名映射为一个更简短的别名&#xff0c;这样在映射文件中可以直接使用别名而不需要完整的类名。 下面是一个示例&#xff1a; 在mybatis核心配置文件中配置typeAliases标…

[go语言]输入输出

目录 知识结构 输入 1.Scan ​编辑 2.Scanf 3.Scanln 4.os.Stdin --标准输入&#xff0c;从键盘输入 输出 1.Print 2.Printf 3.Println 知识结构 输入 为了展示集中输入的区别&#xff0c;将直接进行代码演示。 三者区别的结论&#xff1a;Scanf格式化输入&#x…

“深度剖析Nginx的高级部署“

深度剖析Nginx的高级部署与优化技巧 引言1. Nginx基础概念1.1 Nginx简介1.1.1 什么是Nginx&#xff1f;1.1.2 Nginx的特点与优势 2. Nginx部署安装MySQL运行java 总结 引言 在现代网络架构中&#xff0c;Nginx作为一款高性能的开源Web服务器&#xff0c;广泛应用于反向代理、负…

个人网站制作 Part 8 添加电子邮件通知与社交媒体集成 | Web开发项目

文章目录 &#x1f469;‍&#x1f4bb; 基础Web开发练手项目系列&#xff1a;个人网站制作&#x1f680; 添加电子邮件通知&#x1f528;使用Nodemailer&#x1f527;步骤 1: 安装Nodemailer &#x1f680; 社交媒体集成&#x1f528;使用社交媒体API&#x1f527;步骤 2: 集成…

Springcloud+Vue智慧工地源码 AI智能识别

智慧工地解决方案 一、现状描述 建筑工程建设具有明显的生产规模大宗性与生产场所固定性的特点。建筑企业70%左右的工作都发生在施工现场&#xff0c;施工阶段的现场管理对工程成本、进度、质量及安全等至关重要。同时随着工程建设规模不断扩大&#xff0c;工艺流程纷繁复杂&…

通讯录(C语言版)(静态通讯录)

✨欢迎来到脑子不好的小菜鸟的文章✨ &#x1f388;创作不易&#xff0c;麻烦点点赞哦&#x1f388; 所属专栏&#xff1a;项目 我的主页&#xff1a;脑子不好的小菜鸟 文章特点&#xff1a;关键点和步骤讲解放在 代码相应位置 引言&#xff1a; 1.菜单 通讯录也如同游戏&…

pyspark 笔记:窗口函数window

窗口函数相关的概念和基本规范可以见&#xff1a;pyspark笔记&#xff1a;over-CSDN博客 1 创建Pyspark dataFrame from pyspark.sql.window import Window import pyspark.sql.functions as F employee_salary [("Ali", "Sales", 8000),("Bob&qu…