WHCSRL 技术网

计算机网络面试题,看这三篇就够了(上),建议收藏_just_for

前言

一方面是因为计算机网络这块的知识太零碎不好记忆,另一方面是因为金九银十的到来,所以给大家准备了以下题目,可以对计算机网络的知识进行一个简单的梳理。

正题

1、http状态码及其含义?

1**:信息,服务器收到请求,需要请求者继续执行操作
2**:成功,请求被正确接收并处理工程
3**:重定向,需要进一步操作以完成请求
4**:客户端错误,请求包含语法错误或无法完成请求
5**:服务器错误,服务器处理请求时出现错误
  • 1
  • 2
  • 3
  • 4
  • 5

常用状态码

101:切换协议,只能切换到更高版本的协议,切换到http的新版本协议
200:请求成功,一般用于get请求和post请求
204:无内容,服务器处理成功,但未返回内容
301:永久移动。请求的资源已被永久的移动到新URI,浏览器会自动定向到新URL,以后的请求都应使用新的URI
302:临时移动,新的请求应还使用原来的URI
303:查看其他
400:客户端请求的语法错误,服务器无法理解
401:请求要求用户的身份认证
403:服务器理解客户的请求,但是拒绝执行此请求
404:服务器无法根据此请求找到对应的资源
500:服务器内部错误
501:服务器不支持请求的功能,无法完成请求
505:服务器不支持请求的http协议的版本


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2、Http的常用的请求方式,区别和用途?

GET:请求指定的页面信息,并返回实体主体
HEAD:类似GET请求,只不过请求没有内容,用于获取报头
POST:向指定资源提交数据进行处理,数据被包含在请求体中
PUT:向服务器提交数据,修改数据
DELETE:删除服务器得某些资源
CONNECT:HTTP/1.1协议中预留给能够将链接改为管道方式的代理服务器
TRACE:回显服务器收到的请求,主要用于测试或诊断
OPTIONS:允许客户端查看服务器的性能
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3、请简单说一下你了解的端口及对应的服务?

21:FTP
22:SSH
23Telnet(远程登陆)服务
25:SMTP(简单邮件传输协议)
53:DNS域名服务器
80:HTTP超文本传输协议
443:HTTPS
1080:sockets
1521Oracle默认端口
3306MySQL默认端口
27017:MongoDB默认端口
6379:redis默认端口
7001Weblogic默认端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4、计算机网络体系结构?

  1. OSI七层模型
    7、应用层
    6、表示层
    5、会话层
    4、运输层
    3、网络层
    2、数据链路层
    1、物理层
  2. TCP/IP四层模型
    应用层
    运输层(TCP or UDP)
    网际层IP
    网络接口层
  3. 五层体系结构
    5、应用层
    4、运输层
    3、网络层
    2、数据链路层
    1、物理层

4.1、OSI七层模型

会话层、表示层、应用层的重点内容:

1、数据传输基本单位为报文
2、包含的主要协议:FTP(文件传送协议),Telnet(远程登陆协议),DNS(域名解析协议),SMTP(邮件传送协议),HTTP协议
  • 1
  • 2

应用层:为操作系统或者应用提供访问网络的接口。
表示层:对上层的数据或信息进行变换保证一个主机的应用层信息可以被另一个主机的应用程序所理解。表示层的数据转换包括数据的加密、压缩和格式转换。
会话层:会话层管理主机之间会话进程、即负责建立、管理、终止进程之间的会话。会话层还利用子在数据中加入校验点,实现数据的同步
运输层:第一个端到端,主机到主机的层次。传输层数据负责将上层数据分段并提供端到端的,可靠的或不可靠的传输。

1、运输层负责将上层数据分段并提供端到端的、可靠的或者不可靠的传输以及端到端的差错控制和流量控制问题
2、包含的主要协议:TCP协议(Transmission Control Protocol 传输控制协议),UDP协议(User Datagram Protocol用户数据包协议)
3、重要设备:网关
  • 1
  • 2
  • 3

网络层:实现两个端系统的数据透明传送,具体功能包括路由选择、连接建立等,最少的字记忆就是“路径选择、路由及逻辑寻址”。

1、子网间的数据包进行路由选择。此外网络层还提供路由选择,拥塞控制等
2、基本数据单位为IP数据报
3、包含的主要协议:
	IP协议(Internet Protocol 因特网互联协议)
	ICMP协议(Internet Control Message Protocol 因特网控制报文协议)
	ARP协议(Address Resolution Protocol 地址解析协议)
	RARP协议(Reverse Address Resolution Protocol逆地址解析协议)
4、重要设备:路由器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

数据链路层:物理地址寻址、数据的成帧、流量控制、数据的检错、重发。数据链路层是在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层的数据可靠的传输到相邻节点的目标机网络层。在不可靠的物理媒介上为网络层提供可靠的服务。

1、数据链路层为网络层提供可靠的数据传输
2、基本数据单位为帧(frame)
3、主要的协议:以太网协议
4、两个重要的设备:网桥和交换机
  • 1
  • 2
  • 3
  • 4

物理层:建立、链接、断开物理链接,确保原始的数据可以在各种物理媒体上传输,有两个重要的设备:中继器(放大器)和集线器

5、如何理解HTTP协议是无状态的?

1、HTTP的无状态跟Cookie,Session等都没有关系;
2、无状态指的是两个请求之间的相互独立,第二个请求并不会知道第一个请求的情况。

有状态:小明,国庆去哪里了?   
       去了北京
       好玩吗?
       是的,非常好玩。

无状态:小明,国庆去哪里了?   
       去了北京
       好玩吗?
       什么?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

6、浏览器输入地址到显示主页的过程?

1、在浏览器地址栏输入URL;
2、浏览器查看缓存,看是不是”小鲜肉“(数据是否足够新)
1)如果资源没有缓存,就发起请求
2)如果资源是新的,就直接返回客户端
判断资源是否是新的,有两个字段:ExpiresCache-control
HTTP1.0 中提供Expires,表示一个绝对时间表示新鲜的时长
HTTP2.0中提供Cache-control:max-age=,的值以秒为单位,表示最长的保鲜时间。
3、浏览器解析URL获取协议、主机、端口,path
4、浏览器组成一个http请求
5、浏览器获取ip过程:
1)浏览器缓存
2)本机缓存
3)hosts文件
4)路由器缓存
5)ISP DNS缓存
6)DNS递归查询(可能存在负载均衡导致每次的ip都不一样)
6、打开一个socket与目标地址ip、端口建立链接,需要经过三次握手

1、客户端发送一个SYN=1,Seq=X的包到服务器端口
2、服务器发回SYN=1,ACK=x+1,Seq=y的包
3、客户端发送ACK=y+1,Seq=z的包
  • 1
  • 2
  • 3

7、建立链接后 开始发送数据,浏览器接收响应后,决定是否关闭链接,关闭连接的时候需要四次挥手;

1、主动方发送Fin=1,ACK=z,Seq=x
2、接收方发送ACK=x+1,Seq=z
3、被动方发送Fin=1,ACK=x,seq=y
4、主动方发送ACK=Y,Seq=x
  • 1
  • 2
  • 3
  • 4

7、HTTP/1.0、1.1、2.0的区别

HTTP/1.0:需要明确开启Keep_Alive
HTTP/1.1:默认开启Keep-Alive,支持只发送head,支持host域,增加错误通知
HTTP/2.0:多路复用,头部数据压缩,服务器推送

8、交互过程中数据传送完了,还不想断开链接?

在 HTTP 中响应体的 Connection 字段指定为 keep-alive

9、HTTP如何实现长连接?在什么时候会超时?

HTTP并不支持长连接,HTTP的长连接其实是TCP的长连接,长连接需要服务端和客户端的支持,不同的服务器长连接的时间不一致,tomcat的应该是200ms。也可以设置Keep-Alive:timeout = 60,代表空闲60s后该长连接就会被关闭掉。

10、HTTP与HTTPS的区别?

HTTP:没有加密
HTTPS:数据经过加密,HTTP+SSL。HTTPS按作用分为两种,一种是建了一个安全信息通道确保数据的安全,另一种是确认接收信息的网站时安全的。

11、Https的流程?

(1)客户端发送HTTPS请求,服务端返回证书公钥
(2)客户端产生随机对称密钥
(3)客户端使用公钥对随机对称密钥加密
(4)客户端发送加密的随机对称密钥
(5)客户端通过加密后的对称密钥进行通信

12、数字签名?数字证书?

数字签名:保证数据的正确性和完整性
数字证书:证明你自己是你自己

13、对称加密和非对称加密区别?

对称加密:密码只有一个,加密速度快
非对称加密:公钥和私钥,安全速度较慢

14、DNS解析过程?

(1)www.baidu.com发送之后,会先看浏览器是否有记录,有就直接结束,访问这个IP地址,地址也通过TTL来设置;
(2)如果浏览器没有命中,浏览器会检查操作系统中是否有缓存,如windows里边的hosts文件
(3)如果还没有命中,就去去访问本地域名服务器(LDNS),80%%%%的请求应该都会在这里结束;
(4)如果在LDNS仍然没有找到,那么就去找Root Server域名服务器进行解析;
(5)根域名服务器会返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶级域名服务器,如com,cn等 )
(6)此时LDNS再发送请求给上一步返回的主域名服务器
(7)接收请求的GTLD Server查询并返回这个域名的Name Server地址,这个Name Server就是网站注册的域名服务器
(8)Name Server根据映射找到对应的IP,返回LDNS
(9)LDNS缓存这个域名和对应的IP
(10)LDNS把解析的结果返回给客户,客户通过这个IP进行访问

15、CSRF攻击是什么?如何防御?

CSRF:跨站请求伪造。
通过referer字段和添加Token进行验证

推荐阅读