1.什么是HTTP协议
http是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。他用于界定客户端向服务端链接时的通讯格式,目前有两个版本:http1.0和http1.1
http1.0:
在站点访问中,因为一个站点中可能会接受来自成千上万用户的访问,为了提高系统的效率,http的链接被设置为无状态链接,即每次请求数据需要与服务器建立一个tcp链接,然后请求完一次数据后,连接即断开,服务端不会记录连接的来去。但这也留下了一些缺陷,即当向服务器请求带有多图片的网页时,需要根据每一个图片的网址再去跟服务器建立连接,这样一来,效率反而降低
http1.1
http1.1主要用于克服客户端一次请求只能获得单一数据的缺点,即再一次链接中,可以获取多个数据文件,同时可以在上一次请求还未回复时,发出下一次请求,但服务器回应也是按请求的先后顺序回应。主要通过持久连接和管道技术实现
2.基于TCP/IP协议族实现的HTTP
(1)TCP/IP协议族:是指互联网相关联的协议集合都叫TCP/IP协议族
(2)TCP/IP分层管理:应用层、传输层、网络层、数据层
(3)TCP/IP通信传输流
第一步,客户端在应用层发出想要看到某个web页面的http请求。
第二步,HTTP协议为传输方便,传输层利用TCP协议将从应用层处收集到的数据进行分割,并在各个报文上打上标记序号,及端口号转发给网络层。
第三步,在网络层IP协议增加作为目的地址的MAC地址转发给链路层,这样一来,发往网络的通信请求就准备齐全了。
第四步,接收端的服务器在链路层接收到数据,按层往上层发送,一直到应用层。当传输到应用层,才算真正接收到由客户端发送过来的HTTP请求。
发送端在层与层之间传输数据时,每经过一层必定会被打上一个该层所属的首部信息(HTTP数据,TCP首部,IP首部,以太网首部),这种把数据信息包装起来的做法称为封装。
3.TCP协议、IP协议、DNS服务的作用
4.http请求响应的完整过程
5.http中可使用的方法及用途
6.http的缺点及对应方法
(1)http的缺点:
(2)防窃听—>加密处理
(3)遭遇对方身份的伪装
(4)内容遭篡改–>使用数字签名的方法
7.https:超文本安全传输协议
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。(即http首先和ssl建立通信,再有ssl与tcp建立通信)
https的安全通信机制(以下主要涉及ssl通信建立):
步骤1: _客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度等)。
步骤2: _服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。
步骤3: _之后服务器发送Certificate报文。报文中包含公开密钥证书。
步骤4: 最后服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。
步骤5: SSL第一次握手结束(拿到服务器的公钥)之后,客户端以Client Key Exchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密钥进行加密。
步骤6: 接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密钥加密。
步骤7: 客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。
步骤8: 服务器同样发送Change Cipher Spec报文。
步骤9: 服务器同样发送Finished报文。
步骤10: 服务器和客户端的Finished报文交换完毕之后,SSL连接就算建立完成。当然,通信会受到SSL的保护。从此处开始进行应用层协议的通信,即发送HTTP请求。
步骤11: 应用层协议通信,即发送HTTP响应。
步骤12: 最后由客户端断开连接。断开连接时,发送close_notify报文。上图做了一些省略,这步之后再发送TCP FIN报文来关闭与TCP的通信。
https的缺点:处理速度会变慢,比http慢2-100倍