经典计算机网络面试题

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.hqwc.cn/news/414161.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5 C++ 基础变量类型,关于框架的初级练习

一.创建自己的MyGameModed。并在其中设置好GamePlay框架。 1.创建MyGameState,MyGameState,MyHUD,MyPawn,MyPawn,MyPlayerController,MyPlayerState。 2.并在MyGameMode的头文件里面,把GmaeMode里的框架需要的框架类都包含进去。 3.写一个构…

Spring 核心之 IOC 容器学习一

IOC 与 DI IOC(Inversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象与对象…

电力能源三维可视化合集 | 图扑数字孪生

电力能源是现代社会发展和运行的基石,渗透于工业、商业、农业、家庭生活等方方面面,它为经济、生活质量、环境保护和社会发展提供了巨大的机会和潜力。图扑软件应用自研 HT for Web 强大的渲染引擎,助力现代化的电力能源数字孪生场景&#xf…

微信小程序(六)tabBar的使用

注释很详细,直接上代码 上一篇 新增内容: 1. 标签栏文字的内容以及默认与选中颜色 2. 标签栏图标的默认样式与选中样式 3. 标签选项路径页面 4.标签栏背景颜色 🐼(文末补充)设置标签栏后为什么navigator标签无法跳转页…

最新版git2.43安装、记住用户名和密码以及tortoisegit2.15使用

一、下载git 打开git官网地址:https://git-scm.com/进行下载 下载完安装,一直next就好,如果愿意就可以改下安装路径,改在d盘。 具体可以参考:git安装教程 二、安装完下载小乌龟以及中文语言包 下载地址:…

253:vue+openlayers 加载HERE多种地图(v2软件版本)

第253个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中添加HERE地图,并且含多种的表现形式。包括地图类型,文字标记的设置、语言的选择、PPI的设定。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果图配置方式示例源…

【STM32】| 02——常用外设 | I2C

系列文章目录 【STM32】| 01——常用外设 | USART 【STM32】| 02——常用外设 | I2C 失败了也挺可爱,成功了就超帅。 文章目录 前言1. 简介2. I2C协议2.1 I2C物理连接2.2 I2C通信协议2.2.1 起始和停止信号2.2.2 数据有效性2.2.3 数据传输格式2.2.4 从机地址/数据方…

腾讯云轻量化应用服务器_轻量化应用服务器_轻量化私有云

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器,CPU内存带宽配置高并且价格特别便宜,大带宽,但是限制月流量,轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年,540元三年、2核4G5M带宽218元一年&#xff0c…

esp32-idf eclipse 定时器的使用demo

esp32定时器的使用demo 1、介绍 ESP32芯片包含两个硬件定时器组。每组有两个通用硬件定时器。它们都是基于16位预分频器和64位自动重载功能的向上向下计数器的64位通用定时器。 2、API接口函数 创建定时器函数: esp_timer_create(); esp_err_t esp_timer_create …

阿里云ECS使用docker搭建mysql服务

目录 1.确保正确安装好docker 2.安装mysql镜像 3.创建容器(设置端口映射、目录映射) 1.确保正确安装好docker 安装教程: 阿里云ECS(CentOS镜像)安装docker-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135686614?spm10…

DAY12--learning English

一、积累 1.superstition 2.intersection If you are in an intersection and heard siren of an emergency vehicle. you should. 当你身处于道路交界处并且听到应急车辆的鸣笛声,你应该. 3. luxurious Japans $3000 Most luxurious sleeper train. 花费3000美元…

小程序商城 免 费 搭 建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景+b2b2c

java SpringCloud版本b2b2c鸿鹄云商平台全套解决方案 使用技术: Spring CloudSpring BootMybatis微服务服务监控可视化运营 B2B2C平台: 平台管理端(包含自营) 商家平台端(多商户入驻) PC买家端、手机wap/公众号买家端 微服务(30个通用…