HTTP与HTTPS协议介绍

来源:互联网 发布:做报表的软件 编辑:程序博客网 时间:2024/05/17 00:17

HTTP与HTTPS协议简介

随着互联网飞速发展,每天都有爆炸性的数据、文本、HTML页面、音视频等资源通过互联网在世界各地传输,这些数据借助于HTTP/HTTPS(HTTP加密安全版)协议载体迅速、便捷、可靠地将Web 服务器搬移到人们桌面上的 Web 浏览器。

HTTP(Hypertext Transfer Protocol,超文本传输协议) 在OSI 七层模型属于应用层协议,在网络与传输层使用可靠的数据传输协议TCP/IP,因此,通常情况下即使数据来自地球的另一端,HTTP协议也能够确保数据在传输的过程中不会被损坏或产生混乱,用户在访问信息时就不用担心其完整性了。然而在网络环境中,数据的安全性在某些情境中也变得至关重要,比如访问银行账户、网络购物等场景,HTTP协议采用明文传输信息的方式,不可避免存在信息被窃听、篡改和劫持的风险,此时一种安全可靠地HTTPS协议产生了。

HTTPS (Secure Hypertext Transfer Protocol,安全超文本传输协议)是一个安全通信通道,基于HTTP开发,用于在客户端和服务器之间交换信息时采用安全套接字层(SSL)进行信息交换。通俗地讲,HTTPS是HTTP的安全版,即使用了TLS/SSL加密的HTTP协议, HTTPS克服了HTTP协议中采用明文传输信息,存在窃听、篡改和劫持的风险,使用协议TLS/SSL具有身份验证、信息加密和完整性校验的功能避免此类问题发生。

这里写图片描述

图中的TLS/SSL(Transport Layer Security,安全传输层协议Transport Layer Security)是介于TCP和HTTP之间的一层安全协议,它的存在不影响原有的TCP协议和HTTP协议,实际使用上HTTPS基本不需要对HTTP页面进行太多的改造。

HTTP与HTTPS传输过程

实际使用中通过URL实现告知服务器去是否采用HTTPS安全协议版本, 通常情况下,未加密HTTP 的 URL 前缀为http,例如:http://www.csdn.net/
而在安全HTTPS协议中,URL 的前缀为https,例如:https://www.pbc.gov.cn

客户端对某服务器执行请求时,通过检查URL来区分:

  • 如果 URL 的方案为 http,客户端就会打开一条到服务器端口 80(默认情况下)的连接,并向其发送普通的HTTP 命令。
  • 如果 URL 的方案为 https,客户端就会打开一条到服务器端口 443(默认情况下)的连接,然后与服务器“握手”,以二进制格式与服务器交换一些 SSL 安全参数,附上加密的 HTTP 命令。

在未加密 HTTP 中,客户端会打开一条到服务器端口 80 的 TCP 连接,发送一条请求报文,接收一条响应报文,关闭连接。HTTPS 中这个过程会略微复杂一些,在 HTTPS 中,客户端首先打开一条到服务器端口 443(安全 HTTP 的默认端口)的连接。一旦建立了 TCP 连接,客户端和服务器就会初始化 SSL 层,对加密参数进行沟通,并交换密钥。握手完成之后,SSL 初始化就完成了,客户端就可以将请求报文发送给安全层了,在将这些报文发送给 TCP 之前,要先对其进行加密。服务器的响应保温,也同样才用加密传输。

HTTP与HTTPS传输过程参考下图:
这里写图片描述
注:图片来自《HTTP权威指南》

HTTP与HTTPS区别

两者差异上述介绍已经部分提及,主要区别总结如下:

  1. HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。
  2. HTTPS需要用到SSL证书,需要到CA申请证书,一般免费证书很少,需要交费,而HTTP不用。
  3. HTTP的连接很简单,是无状态的,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 ,要HTTP更加安全,对搜索引擎更友好。
  4. 两者链接端口不同,HTTPS标准端口443,HTTP标准端口80。
  5. HTTPS相对于HTTP 存在加密解密环节相关的计算耗时以及协议交互所增加的网络耗时,性能有一定损失。
0 0
原创粉丝点击