网络协议(2)

HTTP与HTTPS



HTTP

HTTP(HyperText Transfer Protocol),超文本传输协议,是一个基于TCP实现的应用层协议。

请求响应模型

HTTP由请求和响应构成,是一个标准的客户端服务器模型(B/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。如图:

工作过程

1、解析地址

    从中分解出协议名、主机名、端口、对象路径等部分

    例如:协议名:http  ,主机名(域名):baidu.com

    通过DNS解析域名得到IP地址

2、封装HTTP请求数据包

3、封装TCP包,建立TCP连接

    HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接。

4、客户端发送请求

    建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可内容。

5、服务器响应

    服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

6、服务器断开TCP连接

    一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码

    Connection:keep-alive

    TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

HTTPS

HTTP+加密+认证+完整性保护 = HTTPS

HTTP协议采用明文传输信息,存在信息窃听、信息篡改和信息劫持的风险,而协议TLS/SSL具有身份验证、信息加密和完整性校验的功能,可以避免此类问题发生。

HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。HTTPS主要作用是:

    1、对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全

    2、对网站服务器进行真实身份认证

HTTPS协议的主要功能基本都依赖于TLS/SSL协议

TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。

你可能感兴趣的:(网络协议(2))