JasonWang's Blog

从HTTP到HTTPS

HTTP 自从上世纪90年代随着WEB的诞生而出现的,是所有WEB应用的基础。随着网络购物、电子商务、网上银行等逐渐普及,HTTP本身存在信息窃听与身份伪装等问题,已很难满足人们对于可信安全的通信环境的需求了。如何确保用户隐私与数据不被非法获取,这是HTTPS(HTTP Secure )需要解决的问题。使用HTTPS协议的网站,一般都以https开头而不是http,如:https://tools.ietf.org/html/rfc2246

那么,从数据安全的角度来看,HTTP有哪些不足了?

  • HTTP本身不具备加密功能,因此请求与响应都没有经过加密,而使用的是不加密的明文,因此内容可能会被窃听;
  • 通信时不会验证通信方(client/server)的身份,任何人都可以发送请求,而服务器对于所有请求也照单全收,因此客户端与服务端都有可能被伪装;
  • 在传输数据时,报文可能被篡改或者攻击,无法保证报文的完整性(integrity);这种在请求与数据传输过程中,被攻击者拦截并篡改的攻击方式被称为中间人攻击(Man-in-the-middle attack );
HTTP简介

HTTP(Hypertext Transfer Protocol)即超文本传输协议,是一种用于传输文本、音视频等超媒体(hypermedia)的应用层协议。HTTP从1990年开始就应用于WWW(World Wide Web)服务中,其发展变化与WEB服务紧密相连。这篇文章,就来看看HTTP协议的基本概念。

基本概念

HTTP协议允许不同类型的客户端与服务端进行通讯,支持不同的网络配置,并不依赖于特定的系统。在消息交换过程中,不保存任何状态(state-less,状态无关)。HTTP协议请求基于Request/Response,一个客户端向服务端发送request,该请求包含了Request Method, URL,协议版本以及请求的资源类型;服务端得到请求后,返回一个response,包括状态信息(协议版本,状态码)以及请求的资源。这样一次Request/Response的过程我们称为一次HTTP会话(session),大致有三个阶段:

  1. 客户端与服务端建立一个TCP链接;
  2. 客户端发送数据请求,等待回应;
  3. 服务端处理请求,返回结果并提供一个状态码与资源;