网络安全之HTTP
什么是HTTP
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,是一个基于TCP/IP通信协议来传递数据
TCP/IP
通常使用的网络是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集,协议指的是不同硬件、操作系统之间的通信这一切都需要一种规则,这种规则称为协议。
TCP/IP协议族中最重要的是分层,按层次分为:应用层、传输层、网络层、数据链路层。分层是有好处的,如果某个地方需要改变设计时,只需要把变动的层替换掉即可
应用层
应用层决定了向用户提供应用服务时通信的活动,比如FTP、DNS等就是其中两类,HTTP协议也处于该层
传输层
提供网络连接中的两台计算机之间的数据传输
网络层
用来处理网络上流动的数据包
链路层
用来处理连接网络的硬件部分

首先客户端在应用层发出一个HTTP请求,
为了传输方便,在传输层(TCP)把应用层过来的数据进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
在网络层,增加作为通信目的地的MAC地址后转发给链路层
服务端把链路层接收到的数据层层往上发送,一直到应用层,这才算是真正接收到客户端发送过来的HTTP请求
IP
IP的作用就是把各种数据包传送给对方,而且要保证确实传送到对方那里,这就需要满足各种条件了,其中最重要的条件就是IP和MAC地址,MAC地址指的是网卡所属的固定地址,IP地址可以变换,但MAC地址基本不会改变。IP间的通信需要依赖MAC地址,简单来说就是IP绑定在网口上,网口需要MAC地址来标示。
TCP
TCP位于传输层,提供字节流传输服务,字节流指的是将大块数据分割成报文段进行传输,TCP协议能确认数据是否最终传输到对方。TCP采用三次握手策略,握手过程中会使用SYN和ACK作为标志。

DNS
DNS是位于应用层的协议,它提供域名到IP之间的解析服务,一般用户通常是使用域名来访问对方的计算机,而不是直接通过IP,因为与IP一串数字相比,域名更符合人的记忆习惯

HTTP的缺点
- 通信过程中不加密,使用明文
- 不验证通信方的身份信息,容易伪装
- 无法证明报文的完整性,有可能遭到篡改
为了解决HTTP存在的缺陷,提供了一种超文本传输安全协议,数据通信仍然是HTTP,但利用SSL/TLS加密数据包