[toc]
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,它基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP协议工作于客户端-服务端架构上。

此为典型案例:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
宏观工作方式:
- 客户端(UA)直接连接到Web服务器的通讯路径如图所示,客户端与Web服务器之间的通讯不需要任何的中介服务器,这是最简单的情况。

- 客户端(UA)通过中介服务器连接到Web服务器的通讯路径如图所示,客户端与Web服务器之间的通讯通过中介服务器进行转发,中介服务器可能有1个,也可能有多个。
- 客户端(UA)到中介服务器的通讯路径如图所示,客户端将请求发送给中介服务器1,中介服务器1将其发送中介服务器2,中介服务器2再发给Web服务器,最后客户端收到的内容由中介服务器1发送给它,而不是Web服务器。

内部操作过程:
如图所示,它分为四个步骤:建立连接、发出请求信息、发出响应信息、关闭连接。

HTTP默认端口号为80,但是也可以改为8080或者其他端口。

- HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式主要考虑到WWW服务器面向的是Internet中成干上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。
- HTTP是一种面向对象的协议:允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。
- HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
因HTTP在设计之初未深入考虑安全问题,它只是未解决数据传输和共享问题而设计。但被有心人恶意利用后就发现了一些安全隐患,部分隐患展示:
- 明文传输隐患
因HTTP传递的数据是不经过处理的,也就是常说的明文传输,不会加密这些信息,并因HTTP是基于TCP/IP的,TCP/IP的特点也决定了HTTP数据很容易被截获,只要攻击者能够捕获这些信息,用户的隐私就暴露在攻击者眼中(在不违法Web标准的情况下)。

- 身份验证隐患
因在HTTP标准中,没有校验对方身份的标准,无法有效的验证双方是本人故易被攻击者伪造进行恶意攻击。

- 数据完整性隐患
因HTTP数据在传输过程中,会经过很多节点,这些节点都可以修改原始数据,而对于客户端和服务器来说,没有任何技术来确保接收的数据就是发送者发送的原始数据,这样就存在了被篡改的隐患。

- 《HTTP百度百科》
- 《HTTPS教程》
- 《深入浅出HTTPS:从原理到实战》
- 《HTTP网页访问应用分析》