转:https://www.jianshu.com/p/a677fecec927

由于iOS即将强制使用HTTPS,所以最近花时间再次深入研究了一下HTTPS。
该篇主要先讲一些HTTPS术语。

1、HTTP是什么

首先,HTTP 是一个网络应用层协议,是专门用来帮你传输 Web 内容。

2、HTTP 和 TCP 之间的关系

在网络分层模型中,TCP 被称为“传输层协议”,而 HTTP 被称为“应用层协议”。

传输层主要有两个协议,分别是 TCP 和 UDP。TCP 比 UDP 更可靠。你可以把 TCP 协议想象成某个水管,发送端这头进水,接收端那头就出水。并且 TCP 协议能够确保,先发送的数据先到达(UDP 不保证这点)。

简单地说,HTTP 协议需要依靠 TCP 协议来传输数据。

3、HTTP 协议如何使用 TCP 连接?

HTTP 对 TCP 连接的使用,分为两种方式:俗称“短连接”和“长连接”。

在“短连接”的模式下,浏览器会先发起一个 TCP 连接,拿到该网页的 HTML 源代码(拿到 HTML 之后,这个 TCP 连接就关闭了)。然后,浏览器开始分析这个网页的源码,知道这个页面包含很多外部资源(图片、CSS、JS)。然后针对【每一个】外部资源,再分别发起一个个 TCP 连接,把这些文件获取到本地(同样的,每抓取一个外部资源后,相应的 TCP 就断开)

如果是“长连接”的方式,浏览器也会先发起一个 TCP 连接去抓取页面。但是抓取页面之后,该 TCP 连接并不会立即关闭,而是暂时先保持着(所谓的“Keep-Alive”)。然后浏览器分析 HTML 源码之后,发现有很多外部资源,就用刚才那个 TCP 连接去抓取此页面的外部资源。

在 HTTP 1.0 版本,【默认】使用的是“短连接”(那时候是 Web 诞生初期,网页相对简单,“短连接”的问题不大);
到了1995年底开始制定 HTTP 1.1 草案的时候,网页已经开始变得复杂(网页内的图片、脚本越来越多了)。这时候再用短连接的方式,效率太低下了。所以,在 HTTP 1.1 中,【默认】采用的是“Keep-Alive”的方式。

4、“SSL/TLS”又是什么?

SSL(Secure Sockets Layer),中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。
为啥要发明 SSL 这个协议捏?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。
后来SSL 因应用广泛,便被标准化。且名称改为 TLS(Transport Layer Security),中文叫做“传输层安全协议”。
很多相关的文章都把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。

5、“HTTPS”是啥意思?

解释完 HTTP 和 SSL/TLS,现在就可以来解释 HTTPS 啦。咱们通常所说的 HTTPS 协议,说白了就是“HTTP 协议”和“SSL/TLS 协议”的组合。

你可以把 HTTPS 大致理解为——“HTTP over SSL/TLS”
Https的作用:
身份认证 认证用户和服务器,确保数据发送到正确的客户机和服务器;(通道端可靠)
内容加密 建立一个信息安全通道,来保证数据不被窃听;(通道加密)
数据完整性 防止内容被第三方篡改;(避免通道劫持)

6、HTTPS和HTTP的区别
1、HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。
3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者使用的端口是80,后者使用的端口是443。
4、HTTPS的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

此文到此结束!
请继续关注下文,深入HTTPS系列二(加密&证书)

参考资料:
1.HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事

深入HTTPS系列一(HTTPHTTPS)相关推荐

  1. HTTPS系列之CA数字证书

    数字证书的两个作用: 1. 身份验证.确保客户端访问的网站是通过CA认证的可信赖的网站 2. 分发公钥. 简介 PKI(Public Key Infrastructure)公钥基础设施 "遵 ...

  2. HTTP2和HTTPS来不来了解一下?

    一.前言 只有光头才能变强 HTTP博文回顾: PC端:HTTP就是这么简单 PC端:HTTP面试题都在这里 微信公众号端:HTTP就是这么简单 微信公众号端:HTTP面试题都在这里 本文力求简单讲清 ...

  3. HTTPS原理全面介绍【备查】

    来源:https://www.cnblogs.com/haimishasha/p/11373034.html 目录 应用层协议:HTTPS 1. HTTPS定义 2. 密码学基础 3. HTTP通信问 ...

  4. 应用层协议:HTTPS

    1. HTTPS定义 Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本传输协议,网景公式设计了SSL(Secure Socket ...

  5. HTTPS 到底加密了什么?

    关于 HTTP 和 HTTPS 这个老生常谈的话题,我们之前已经写过很多文章了,比如这篇<从HTTP到HTTPS再到HSTS>,详细讲解了 HTTP 和 HTTPS 的进化之路,对的没错, ...

  6. Android 网络编程之HTTPS详解

    前言:HTTPS涉及相关的知识,总是很难的将其归纳总结起来,本文旨在带你学习详细的HTTPS相关知识点,看完本文后,你会了解到以下相关知识点: HTTPS的工作原理 HTTPS为什么要这样设计 密码学 ...

  7. Apache2 配置 HTTPS

    文章目录 自签名 CA 证书 服务器部署 HTTPS 客户端验证 Https 原理 常见问题 参考 自签名 CA 证书 生成密钥 使用 128 位的 RSA 算法生成的密钥,4096 是密钥的长度,建 ...

  8. 变更git url/添加https.sslverify参数解决同步超时、重置连接错误

    报错信息 Failed to connect to github.com port 443 after 21082 ms: Timed out OpenSSL SSL_read: Connection ...

  9. Conda 环境常用碎笔记

    环境管理 #创建/激活/退出/删除名为envName的虚拟环境 conda create -n envName python=3.x conda activate envName conda deac ...

最新文章

  1. AI一分钟|潘建伟团队首次实现18个量子比特纠缠;特斯拉第二季度共交付40740辆汽车...
  2. JVM的内存配置参数
  3. SQLServer技巧
  4. String/StringBuffer/StringBuilder的执行效率以及区别
  5. linux 获取文件父目录权限,使用setfacl实现子目录继承父目录权限
  6. 高性能python_[转]【原创】High Performance Python(Python 高性能计算)(一)
  7. 【WPF】绑定Hyperlink超链接
  8. SPOJ SUBST1 New Distinct Substrings(后缀数组 本质不同子串个数)题解
  9. iPhone清理喇叭灰尘_厉害了!原来可以这样一键清理 iPhone 喇叭灰尘!
  10. mac matlab破解
  11. 乐优商城项目视频及源码
  12. Java OCR文字识别(Tess4J)
  13. 从用AI+VR虚拟教室穿越到中国说起,看红头文件下,互联网教育公司的AI招牌
  14. Linux Shell重定向 管道命令 grep搜索 awk编程 sed文件操作高阶函数
  15. SpringBoot入门到精通 idea教学 (余胜军通俗易懂版本)
  16. html 自动悬浮,HTML 悬浮float介绍
  17. Foxmail只能接收邮件,不能发邮件,Mcafee需设置
  18. 26MB160A-ASEMI大功率电源专用单相整流桥26MB160A
  19. 抗锯齿相关技术介绍:MSAA、FXAA、SMAA、TXAA、MSAA
  20. 推荐一款开源物流管理系统,适合学习研究

热门文章

  1. wow周四服务器维护,新一轮大服务器实装开启:3月12日维护8小时
  2. 计算机无法加载远程访问连接管理器服务,Win7网络无法加载远程访问连接管理器服务怎么办...
  3. 动漫鬼刀MAC高清动态桌面壁纸
  4. 11-28 BUU做题记录
  5. 算法时间复杂度以及代码实现
  6. 竞赛通知|首届工业数字孪生大赛
  7. 启动Tomcat报错- jar not loaded. Offending class: javax/servlet/Servlet.class
  8. [前端笔记037]vue2之vuex
  9. Android RIL代码详细分析
  10. PhotoZoom Pro 7 支持哪些图像格式?