经典计算机网络面试题

news2024/9/27 15:24:27

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络:FTP

1. FTP 文件传输协议,FTP是用来传输文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。 2. 特点 明文传输。 作用:可以从服务器上下载文件,或将本地文件上传到服务器。 3. FTP原理 FTP有控制层面…

原神官网切换效果

这两天来研究一下原神游戏官网的效果,地址:《原神》官方网站-全新4.3版本「蔷薇与铳枪」上线! (mihoyo.com) 继续用我之前的模板项目: 等我把这一页写满,会上传原码。 效果很多,我们先看第一个&#xff…

数学建模美赛资料(赛题+获奖论文更新)

数学建模美赛历年真题可以帮助我们了解比赛的出题思路,对建模比赛有一个大致的了解。 在备赛过程中,通过往年真题,我们可以了解考试的范围和重点,做到心中有数,可以有的放矢。通过真题,我们可以感受到各个…

逻辑运算符

逻辑运算符 什么是逻辑运算符&#xff1f; 在数学中&#xff0c;一个数据x大于5&#xff0c;小于15&#xff0c;我们可以这样来进行表示&#xff1a;5<x<15.在Java中&#xff0c;需要把上面的式子先进行拆解&#xff0c;再进行合并表达。 拆解为&#xff1a;x>5和 x…

Python中HTTP代理的配置和使用

在Python中&#xff0c;HTTP代理是一种常用的技术&#xff0c;用于控制和修改HTTP请求和响应。通过使用HTTP代理&#xff0c;我们可以更好地控制网络请求的行为&#xff0c;提高安全性、隐私性和效率。下面我们将详细介绍如何在Python中配置和使用HTTP代理。 一、配置HTTP代理…

泛型编程——模板详解

文章目录 1. 前言2. 泛型编程3. 函数模板3.1 函数模板的概念3.2 函数模板的格式3.3 函数模板的原理3.4 函数模板的实例化3.5 模板参数的匹配原则 4. 类模板4.1 类模板的定义格式4.2 类模板的实例化 5. 模板参数6. 模板的特化6.1 概念6.2 函数模板特化6.3 类模板特化6.3.1 全特化…

【STM32】STM32学习笔记-I2C通信外设(34)

00. 目录 文章目录 00. 目录01. I2C简介02. I2C外设简介03. I2C框图04. I2C基本结构05. 主机发送06. 主机接收07. 软件/硬件波形对比08. 预留09. 附录 01. I2C简介 I2C(Inter&#xff0d;Integrated Circuit)总线是一种由NXP&#xff08;原PHILIPS&#xff09;公司开发的两线式…

链表练习 Leetcode234.回文链表

题目传送门&#xff1a;Leetcode234 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&…

element中表格组件的row-class-name和class-name属性的使用以及无效处理

1.这两个属性的使用&#xff0c;row-class-name用在el-table标签上&#xff0c;class-name用在el-table-column标签上。两个属性即可绑定类名也可绑定函数 <!-- 这里是绑定函数&#xff0c;也可以绑定类名 --> <el-table :data"tableData" selection-chang…

Ubuntu安装zsh

安装zsh sudo apt install zsh安装git&#xff08;如果有跳过&#xff09; sudo apt install git(1条消息) 关于Git这一篇就够了_17岁boy想当攻城狮的博客-CSDN博客 安装oh my zsh git clone https://github.com/robbyrussell/oh-my-zsh切换目录到oh-my-zsh文件夹下的tools…

VUE--插槽slot(将父级的模块片段插入到子级中)

组件可以接收任意类型的JS值作为props&#xff0c;但我们想要为子组件传递一些模板片段&#xff0c;并在子组件中进行渲染时&#xff0c;此时可以采用插槽slot来实现 简单来说&#xff0c;插槽时组件内留一个或多个插槽的位置&#xff0c;供组件传递对应的模板代码&#xff08;…

ASCII码常用

ASCII码的意义 对程序员来说真的是意义重大啊&#xff01; 作为一名程序员一定要牢记&#xff01; 常用A&#xff1a;65 a&#xff1a;97

设计模式⑦ :简单化

文章目录 一、前言二、Facade 模式1. 介绍2. 应用3. 总结 三、Mediator 模式1. 介绍2. 应用3. 总结 一、前言 有时候不想动脑子&#xff0c;就懒得看源码又不像浪费时间所以会看看书&#xff0c;但是又记不住&#xff0c;所以决定开始写"抄书"系列。本系列大部分内容…

c# 自定义 滑块TrackBar

辛苦半天做出来的&#xff0c;如果觉得好用&#xff0c;记得点赞 效果图如下&#xff1a; 具体操作&#xff1a; 1 、添加代码&#xff08;代码在下面&#xff09;&#xff0c;重新生成下整个工程&#xff0c;在工具栏中就出现控件&#xff0c;将控件拖到窗体中 2、只需要调整…

1434. 数池塘(四方向)-深度优先搜索-DFS

代码&#xff1a; #include<iostream> using namespace std; char a[200][200]; int fx[4]{0,1,0,-1}; int fy[4]{1,0,-1,0}; int k0; int n,m; void dfs(int x,int y){a[x][y].;int tx,ty;for(int i0;i<4;i){txxfx[i];tyyfy[i];if(tx>1&&tx<n&&am…

python24.1.19引入模块

引入方法 可引入第三方模块 安装模块&#xff1a;在终端输入pip install模块名字 eg&#xff1a;

kali下-MSF-ftp_login模块破解FTP账号及密码

一、环境准备 两台设备在同一个网络内 一台kali系统&#xff1a;192.168.10.128 一台winserver2016&#xff1a;192.168.10.132 二、MSF介绍 metasploit 全称是The Metasploit Framework&#xff0c;又称MSF&#xff0c;是Kali 内置的一款渗透测试框架&#xff0c;也是全球…

Docker(二)安装指南:主要介绍在 Linux 、Windows 10 和 macOS 上的安装

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 安装 Docker Docker 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南&#xff0c;这里主要介绍 Docker 在…

【网络技术】【traceroute】【Linux虚拟机(Ubuntu)】无法traceroute至谷歌【及解决方法】

一、问题描述 问题描述如下&#xff1a; Ubuntu虚拟机可以ping通谷歌&#xff08;www.google.com&#xff09;&#xff0c;但是却无法通过traceroute命令找到路由路线&#xff0c;如下图所示&#xff1a; 二、解决方法 从traceroute命令的返回内容可以看出&#xff0c;路由寻…

使用IEEE754标准转换过程

IEEE 754标准是一种用于浮点数表示和计算的标准。对于给定的浮点数&#xff0c;IEEE 754标准定义了如何表示它以及如何执行基本的算术运算。 例如&#xff0c;现在要将十进制浮点数3.25f转换为IEEE 754标准的二进制表示&#xff0c;可以按照以下步骤进行&#xff1a; 将3.25f…