网络安全之HTTP

215 阅读3分钟

网络安全之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加密数据包