Http2
1.网络协议是什么
在计算机网络要做到井井有条的交换数据,就必须遭守―些事先约定好的规则;比如交换数据的格式.是否需要发送一个应答信息。这些规则被称为网络协议。
2.为什么要对网络协议分层
-
简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响。
-
易于实现和维护。
-
促进标准化工作。分开后,每层功能可以相对简单地被描述。
3.计算机网络体系结构
-
os1 (Open System lnterconnect),即开放式系统互联。一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。S0为了更好的使网络应用更为普及,推出了OSl参考模型,这样所有的公司都按照统一的标准来指定自己的网络,就可以互通互联了。
-
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层,会话层、表示层、应用层)。
4.TCP/IP参考模型
-
应用层应用层最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP , HTTPS, FTP,TELNET等。
-
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDp就是在这一层。端口号既是这里的“端”。
-
网络层本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。JP协议是Internet的基础。
-
数据链路层通过―些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。
5.TCP与UDP区别:
-
TCP是面向连接的协议,发送数据前要先建立连接,,TCP提供可靠的服务,也就是说,通过TCP连接传输的数据不会丢失,没有重复,并且按顺序到达;
-
UDP是无连接的协议,发送数据前不需要建立连接,是没有可靠性;
-
TCP通信类似于于要打个电话,接通了,确认身份后,才开始进行通行;
-
UDP通信类似于学校广播,靠着广播播报直接进行通信。
-
TCP只支持点对点通信,UDP支持一对一、之对多、多对一、多对多;
-
TCP是面向字节流的,UDP是面向报文的;面向字节流是指发送数据时以字节为单位,二个数据包可以拆分成若干组进行发送,而UDP 一个报文只能一次发完。
-
TCP首部开销(20字节)比 UDP首部开销(8字节)要大
-
UDP的主机不需要维持复杂的连接状态表
6.TCP和UDP的应用场景:
对某些实时性要求比较高的情况使用UDP,比如游戏,媒体通信,实时直播,即使出现传输错误也可以容忍;其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失的情况
7.运行在TCP或UDP的应用层协议分析。
运行在TCP 协议上的协议:
-
HTTP (Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
-
HTTPS(HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
-
FTP (File Transfer Protocol,文件传输协议),用于文件传输。
-
POP3_(Post Office Protocol, vers ion 3,邮局协议)收邮件用。
-
SMTP (Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
-
TELNET (Teletype over the Network ,网络电传),通过一个终端( terminal)登陆到网络。
-
SSH (Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。
运行在UDP协议上的协议:
-
BOOTP (Boot Protocol,启动协议),应用于无盘设备。
-
NTP ( Network Time Protocol,网络时间协议),用于网络同步。
-
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
8.什么是NAT (Network Address Translation,网络地址转换)?
用于解决内网中的主机要和因特网上的主机通信。由NAT'路由器将主机的本地地址转换为全球IP地址,分为静态转换(转换得到的全球IP地址固定不变)和动态NAT转换。
9.从输入址到获得页面的过程?
-
浏览器查询DNS,获取域名对应的IP地址:具体过程包括浏览器搜索自身的DNS缓存、搜索操作系统的DNS缓存读取本地的Host文件和向本地DNS 服务器进行查询等。对于向本地 DNS'服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析(此解析具有权威性);如果要查询的域名不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析(此解析不具有权威性),如果本地域名服务器并未缓存该网址映射关系,那么将根据其设置发起递归查询或者迭代查询;
-
浏览器获得域名对应的IP地址以后,浏览器向服务器请求建立链接,发起三次握手;
-
TCP/IP链接建立起来后,浏览器向服务器发送HTTP请求;
-
服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;
-
浏览器解析并渲染视图,若遇到对js文件、css文件及图片等静态资源的引用,则重复上述步骤并向服务器请求这些资源;
-
浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面。
10.三次握手的具体细节
-
客户端向服务端发送SYN
-
服务端返回SYN,ACK
-
客户端发送ACK
11.用现实理解三次握手的具体细节
-
第―次握手:客户什么都不能确认;服务器确认了对方发送正常
-
第二次握手:客户确认了︰自己发送、接收正常,对方发送、接收正常;服务器确认了∶自己接收正常,对方发送正常
-
第三次握手:客户确认了:自己发送、接收正常,对方发送、接收正常;服务器确认了;自己发送、接收正常,对方发送接收正常所以三次握手就能确认双发收发功能都正常,缺—不可。
12.如果已经建立了连接,但客户端出现了故障怎么办?
服务器每收到一次客户端的请求后都会重新复位一个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。
13.什么是Socket
-
网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket 通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯—确定。
-
socket连接就是所谓的长连接,客户端和服务器需要互相连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉的,但是有时候网络波动还是有可能的
14.HTTPS工作原理
-
首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验;
-
客户端如果校验通过后,就根据证书的公钥的有效,生成随机数,随机数使用公钥进行加密(RSA加密);
-
消息体产生的后,对它的摘要进行MD5(或者SHA1)算法加密,此时就得到了RSA签名;
-
发送给服务端,此时只有服务端(RSA私钥)能解密。
-
解密得到的随机数,再用AES加密,作为密钥(此时的密钥只有客户端和服务端知道)。
15.一次完整的HTTP请求所经历几个步骤?
-
建立TCP连接
-
Web浏览器向Web 服务器发送请求行
-
Web浏览器发送请求头
-
Web 服务器应答
-
Web 服务器发送应答头
-
Web服务器向浏览器发送数据
-
Web 服务器关闭TCP连接
16.什么是对称加密与非对称加密
-
对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问颗,即如何安全地将密钥发给对方:;
-
而非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,非常的慢。
17.什么是 cookie
cookie是由Web 服务器保存在用户浏览器上的文件( key-value格式),可以包含用户相关的信息。客户端向服务器发起请求,就提取浏览器中的用户信息由http发送给服务器。
18.什么是session
session '是浏览器和服务器会话过程中,服务器会分配的一块储存空间给session。
19.cookie和session区别
-
cookie数据存放在客户端上,安全性较差,session数据放在服务器上,安全性相对更高。
-
单个cookie保存的数据不能超过4K,session无此限制信息后,使用自己的私钥进行解密。由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,非常的慢。
20.cookie和session对于HTTP有什么用?
HTTP协议本身是无法判断用户身份。所以需要cookie 或者session
标签:加密,TCP,发送,面试,服务器,Http,浏览器,客户端 From: https://www.cnblogs.com/yuan947022015/p/17632064.html