1.OSI七层模型
物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
数据链路层:负责建立和管理节点间的链路。
网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
会话层:向两个实体的表示层提供建立和使用连接的方法。
表示层:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。
应用层 :直接向用户提供服务,完成用户希望在网络上完成的各种工作。
2.TCP/IP五层模型
物理层、数据链路层、网络层、传输层、应用层
3.应用层协议有哪些?
HTTP、FTP、SMTP
4.TCP/UDP,IP,HTTP、SOCKET分别在哪一层?
TCP/UDP在传输层,IP在网络层,HTTP在应用层、SOCKET在传输层
5.TCP和UDP特点区别?各自的应用场景
- TCP是传输控制协议;UDP是用户数据报协议
- TCP是面向连接的,通信双方彼此交换数据前,必须先通过三次握手协议建立连接之后才能传输数据,数据传输慢;UDP面向非连接也就是发送数据前不需要建立链接,数据传输快。
- TCP提供可靠的服务;UDP无法保证可靠。
- TCP面向字节流;UDP面向报文。
应用场景:TCP适用于对效率要求低,但是对准确率要求高的场合(客户端应用);UDP适用于对效率要求高,对数据可靠性要求不是很高的场合(语音、视频)
6.TCP的特性
TCP是传输控制协议,是面向连接的,通信双方彼此交换数据前,必须先通过三次握手协议建立连接之后才能传输数据,数据传输慢;TCP提供可靠的服务,是面向字节流的。
7.TCP协议为什么要三次握手 ?两次不行吗?
“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。
如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。
8.TCP协议为什么要四次挥手?
因为TCP有个半关闭状态,假设A.B要释放连接,那么A发送一个释放连接报文给B,B收到后发送确认,这个时候A不发数据,但是B如果发数据A还是要接受,这叫半关闭。然后B还要发给A连接释放报文,然后A发确认,所以是4次。
9.TCP怎么保证可靠传输的?TCP为什么可靠?
TCP通过校验和、序列号、确认应答、超时重传、连接管理、流量控制、拥塞控制
实现了可靠性。
10.HTTP状态码有哪几种?
1** 消息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
11.HTTP常见的状态码?(两个不确定)
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:服务器成功处理了部分GET请求
301:永久性重定向
302:临时重定向
303:表示请求资源存在另一个URI,应使用GET定向获取请求资源
304:客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容并没有改变。
307:请求的资源临时从不同的URI 响应请求。
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
405:客户端请求中的方法被禁止
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙
12.HTTP请求报文格式?
HTTP请求报文由(请求行+请求头+空行+请求体)组成
13.HTTP请求头是什么(HTTP请求头内容)?
是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
14.HTTP请求头参数
Accept:指定客户端能够接收的内容类型
Accept-Encoding:浏览器可以接受的字符编码集
Accept-Language:指定浏览器可以支持的web服务器返回内容压缩编码类型
Accept-Charset:浏览器可接受的语言
Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
15.HTTP方法有哪些?分别什么功能?
GET:用于使用给定的URI从给定服务器中检索信息,即从指定资源中请求数据。
POST:用于提交请求,可以更新或者创建资源,是非幂等的
PUT:用原来向指定资源位置上传最新内容,是幂等的
DELETE:用来删除指定的资源,它会删除URI给出的目标资源的所有当前内容。
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法
HEAD:与GET方法类似,只是不返回报文主体
CONNECT:建立到给定URI标识的服务器的隧道
TRACE:回显服务器收到的请求,主要用于测试或诊断
16.GET和POST区别
- GET一般用来从服务器上获取资源,POST一般用来更新服务器上的资源的。
- GET是幂等的,即读取同一个资源,总是得到相同的数据,而POST不是幂等的,因为每次请求对资源的改变并不是相同的;GET不会改变服务器上的资源,而POST会对服务器资源进行改变;
- POST的安全性要比GET的安全性高,因为GET将请求数据放在url地址中,而且POST请求参数则被包装到请求体中,相对更安全。
- GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的。
17.HTTP 的过程:输入一个地址访问后的过程
1.DNS域名解析,找到对应的IP
2.客户机封装 HTTP 请求数据包,并封装成 TCP包并建立连接
3.客户机发送请求命令
4.服务器接受请求并返回 HTTP 响应
5.服务器关闭TCP连接
6.客户端浏览器解析HTML内容
18.域名跟IP怎么对应的?
通过域名系统DNS解析域名,就可以得到主机的IP地址
19.HTTP和TCP区别,联系
TCP协议对应于传输层,而HTTP协议对应于应用层,Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程很短。所以Http连接是一种短连接,是一种无状态的连接。
20.为什么HTTP是无状态?
- 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况
- 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器
21.什么是HTTP?什么是HTTPS?HTTP和HTTPS的特点区别?
HTTP是超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,是HTTP的安全版。
区别:①http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。②http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。③http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
22.HTTP的优点和缺点
优点:简单快速灵活
缺点:不能保证数据的安全性
23.HTTPS的优点和缺点
优点:
①HTTPS具有更好的加密性能,避免用户信息泄露
②HTTPS复杂的传输方式,降低网站被劫持的风险
缺点:
①HTTPS的技术门槛较高
②HTTPS需要申请加密协议,增加了运营成本
③HTTPS加重了服务端的负担,同时也降低了用户的访问速度。
24.HTTPS是如何做到安全的?为什么比http安全?
认证用户或服务器,确保数据发送到正确的客户机或服务器
加密数据,防止数据中途被窃取
维护数据完整性,防止内容被第三方冒充或者篡改
25.HTTPS建立连接的过程?
- 客户端向服务器端发起SSL连接请求
- 服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥
- 客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器端
- 服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密,中间方无法对其解密,这样保证了对称秘钥在收发过程中的安全,此时,服务器端和客户端拥有了一套完全相同的对称秘钥。
- 然后进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改
http1.0,1.1和2.0的区别
TCP 能有多少个连接,TCP 三次握手;
网络方面TCP断开time_wait(什么时候进入这种状态,为什么要有这种状态)
socket通信过程
TCP建立连接为啥不是两次握手,第三次握手的ACK没收到怎么办
tcp/ip 的 tcp 头格式,拥塞控制。
以及和Http的区别报文乱序,各自适合什么场景
有一个报文一直未收到,什么原因,怎么解决
TCP通信相关步骤、函数
TCP协议哪些字段
TCP三次握手,除了ACK这种东西还有什么数据
TCP time_wait 什么时候出现
TCP/IP和OSI区别,具体每层做什么,交换机路由器各工作在哪一层
介绍一下TCP,说一下三次连接的过程,为什么不是二次,四次挥手为什么不是三次?
状态码
NIO了解过吗? 怎么做的优化? 分为几个阶段?每个阶段是做什么的?
网络协议:A往B发一个消息:从五层网络架构分析下这个过程
3.tcp滑动窗口和阻塞避免
TCP拥塞控制
如果tcp连接断了(比如server宕机),client如何处理?
Tcp三次握手过程以及可能在哪个阶段被攻击?
arp协议和ip协议
TCP包最大长度是多少?(―1400字节?噢不对那是IP的,TCP最大应该是65535吧,面试官尴尬的笑了)
1.tcp四次挥手时,每种情况客户端和服务端所处的状态(closed close_wait)没答上来
在网络通信过程中有没有进行TCP分包?(―没用到,没涉及底层的通信)
三次握手四次挥手
cookie与seesion
若是很多用户请求,cookie、session怎么保证两台可以进行共享
网络相关,桥接和NAT
硬连接、软连接知道吗
流量控制
来源:51CTO
作者:Lamiaomiao
链接:https://blog.csdn.net/weixin_43338519/article/details/100060001