`

计算机必知必会:HTTPS是什么?

    博客分类:
  • http
 
阅读更多

什么是 HTTPS?

HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。

你也可以说:HTTPS = HTTP + SSL

HTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。

为什么需要 HTTPS ?

超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的协议。HTTP 使用请求/响应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输。当你访问 Web 页面的时候你就是在使用 HTTP 协议,但 HTTP 是不安全的,可以轻松对qieting你跟 Web 服务器之间的数据传输。在很多情况下,客户和服务器之间传输的是敏感歇息,需要防止未经授权的访问。为了满足这个要求,网景公司(Netscape)推出了 HTTPS,也就是基于安全套接字层的 HTTP 协议。

HTTP 和 HTTPS 的相同点

大多数情况下,HTTP 和 HTTPS 是相同的,因为都是采用同一个基础的协议,作为 HTTP 或 HTTPS 客户端——浏览器,设立一个连接到 Web 服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用统一资源定位器 URI 模式,因此资源可以被唯一指定。而 HTTPS 和 HTTP 唯一不同的只是一个协议头(https)的说明,其他都是一样的。

HTTP 和 HTTPS 的不同之处

  1. HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
  2. HTTP 是不安全的,而 HTTPS 是安全的
  3. HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
  4. 在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
  5. HTTP 无需加密,而 HTTPS 对传输的数据进行加密
  6. HTTP 无需证书,而 HTTPS 需要认证证书

HTTPS 如何工作?

使用 HTTPS 连接时,服务器要求有公钥和签名的证书。

当使用 https 连接,服务器响应初始连接,并提供它所支持的加密方法。作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份。完成之后,在确保使用相同密钥的情况下传输加密信息,然后关闭连接。为了提供 https 连接支持,服务器必须有一个公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的,以保证证书是安全的。

换句话说,HTTPS 跟 HTTP 一样,只不过增加了 SSL

HTTP 包含如下动作:

  1. 浏览器打开一个 TCP 连接
  2. 浏览器发送 HTTP 请求到服务器端
  3. 服务器发送 HTTP 回应信息到浏览器
  4. TCP 连接关闭

SSL 包含如下动作:

  1. 验证服务器端
  2. 允许客户端和服务器端选择加密算法和密码,确保双方都支持
  3. 验证客户端(可选)
  4. 使用公钥加密技术来生成共享加密数据
  5. 创建一个加密的 SSL 连接
  6. 基于该 SSL 连接传递 HTTP 请求

什么时候该使用 HTTPS?

银行网站、支付网关、购物网站、登录页、电子邮件以及一些企业部门的网站应该使用 HTTPS,例如:

  • PayPal: https://www.paypal.com
  • Google AdSense: https://www.google.com/adsense/

如果某个网站要求你填写信用卡信息,首先你要检查该网页是否使用 https 加密连接,如果没有,那么请不要输入任何敏感信息如信用卡号。

浏览器集成

多数浏览器在收到一个无效证书的时候都会显示警告信息,而一些老的浏览器会弹出对话框让用户选择是否继续浏览。新的浏览器一般在整个窗口显示横幅的警告信息,同时在地址栏上显示该网站的安全信息。如果网站中包含加密和非加密的混合内容,多数浏览器会提示警告信息。

分享到:
评论

相关推荐

    电子学必知必会.zip

    《电子学必知必会》是一份非常重要的学习资源,主要涵盖了电子学领域的核心概念、原理和应用。作为IT行业的重要分支,电子学是研究电子设备和系统设计的基础科学,对于理解和开发各种电子产品至关重要。这份资料的...

    JVM必知必会

    ### JVM必知必会知识点梳理 #### 1. JVM的定义与层次 Java虚拟机(JVM)具有多重含义: - **一套规范**:即Java虚拟机规范,定义了Java虚拟机应该具有的行为。 - **一种实现**:例如HotSpot、J9、JRockit,它们都是...

    正则表达式 必知必会 pdf

    本书名为《正则表达式 必知必会》,作者是Ben Forta,这本书由杨涛等人翻译,由人民邮电出版社出版。它的出版,为程序员和开发人员提供了一本实用性强的正则表达式学习资源。本书基于各种实用场景,从基础的文本匹配...

    MySQL必知必会

    本书《MySQL必知必会》深入浅出地介绍了MySQL的基础知识和实用技能,是学习数据库管理的重要参考资料。 首先,我们需要理解什么是数据库。数据库是一个有组织地存储数据的系统,它允许高效、安全地存储和检索数据。...

    C++必知必会(入门经典)

    "C++必知必会(入门经典)"这本书正是针对初学者,旨在帮助他们快速掌握C++的基础知识和核心概念。 1. **C++概述** - C++起源于C语言,由Bjarne Stroustrup在1983年发展而成。 - 它引入了类、模板、异常处理、命名...

    IT人士知必必会的计算机常用英语

    IT人士知必必会的计算机常用英语

    MySQL必知必会 的配套源码 直接导入使用

    "MySQL必知必会"是一本非常经典的教程书籍,旨在帮助初学者掌握MySQL的基本概念、语法和操作。本压缩包提供的"crashcourse.sql"文件是这本书的配套源码,它包含了一系列预先构建的数据库模式和示例数据,供读者在...

    数据结构和算法必知必会的50个代码实现

    "数据结构和算法必知必会的50个代码实现"涵盖了这一领域的重要知识点,旨在通过具体的代码示例帮助学习者深入理解并熟练应用这些概念。 首先,我们要明确数据结构和算法的概念。数据结构是指在计算机中组织、存储和...

    工程师必知必会

    书中也提到了本书的写作风格,作者希望能带给读者幽默感,同时书中也包含了一些对未来可能存在的问题和挑战的预见,比如工程外包和高技术工作签证可能会抑制薪酬增长,但是高技术工程项目的总体需求仍然会增加。...

    SQL必知必会(第3版 中文高清版)

    《SQL必知必会(第3版 中文高清版)》作为一本面向初学者的图书,深入浅出地介绍了SQL的基础知识与高级特性,涵盖了各种主流数据库系统的应用。本书通过对基础知识的介绍和实际案例的分析,让读者能够快速掌握SQL的...

    SQL必知必会

    ### SQL必知必会知识点详解 #### 一、SQL简介 **SQL**(Structured Query Language)是一种用于管理和操作关系型数据库的标准计算机语言。由于其广泛的应用范围和强大的功能,几乎所有的主流数据库管理系统(DBMS)都...

    SQL必知必会 电子版

    SQL 是目前使用最为广泛的数据库语言之一。本书没有涉及理论,而是从实践出发,由浅入深地讲解了广大读者所必需的SQL 知识,适用于各种主流数据库。... 图书信息: 书名:SQL必知必会(第3版

    mysql必知必会样例表create.sql和populate.sql

    在MySQL数据库管理中,"必知必会"是学习数据库技术的一个重要阶段,它涵盖了数据库设计、查询语言、事务处理等核心概念。本话题聚焦于两个关键的SQL脚本文件——`create.sql`和`populate.sql`,它们是用于创建和填充...

    jvm指令手册 +JVM必知必会,掌握虚拟机编译过程.rar

    《JVM必知必会》记录了对JVM的总结及学习笔记,详解的介绍了什么是jvm,以及弄清楚jvm的工作原理等等,会深入了解JVM有一定的帮助。 Java Virtual Machine(Java虚拟机),它bai是一个虚构出来du的计算机,是通过在...

    嵌入式工程师必知必会

    这包括计算机体系结构,理解CPU的工作原理,内存层次结构,以及I/O接口等。你需要熟悉不同的微处理器和微控制器,如ARM架构,以及它们的指令集和编程模型。 其次,嵌入式系统编程语言是核心技能之一。C和C++是最...

    SQL必知必会 第4版.pdf

    SQL必知必会(第4版)是一本详细介绍SQL语言的教科书,适合于对SQL感兴趣的初学者、希望快速掌握并熟练使用SQL的开发者,以及希望通过自学有效而快速地使用SQL进行应用程序开发的读者。书中由Ben Forta所著,提供了...

    正则表达式必知必会_正则表达式_

    正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。本书从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值...

Global site tag (gtag.js) - Google Analytics