深入HTTPS系列一(HTTPHTTPS)
转: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)相关推荐
- HTTPS系列之CA数字证书
数字证书的两个作用: 1. 身份验证.确保客户端访问的网站是通过CA认证的可信赖的网站 2. 分发公钥. 简介 PKI(Public Key Infrastructure)公钥基础设施 "遵 ...
- HTTP2和HTTPS来不来了解一下?
一.前言 只有光头才能变强 HTTP博文回顾: PC端:HTTP就是这么简单 PC端:HTTP面试题都在这里 微信公众号端:HTTP就是这么简单 微信公众号端:HTTP面试题都在这里 本文力求简单讲清 ...
- HTTPS原理全面介绍【备查】
来源:https://www.cnblogs.com/haimishasha/p/11373034.html 目录 应用层协议:HTTPS 1. HTTPS定义 2. 密码学基础 3. HTTP通信问 ...
- 应用层协议:HTTPS
1. HTTPS定义 Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本传输协议,网景公式设计了SSL(Secure Socket ...
- HTTPS 到底加密了什么?
关于 HTTP 和 HTTPS 这个老生常谈的话题,我们之前已经写过很多文章了,比如这篇<从HTTP到HTTPS再到HSTS>,详细讲解了 HTTP 和 HTTPS 的进化之路,对的没错, ...
- Android 网络编程之HTTPS详解
前言:HTTPS涉及相关的知识,总是很难的将其归纳总结起来,本文旨在带你学习详细的HTTPS相关知识点,看完本文后,你会了解到以下相关知识点: HTTPS的工作原理 HTTPS为什么要这样设计 密码学 ...
- Apache2 配置 HTTPS
文章目录 自签名 CA 证书 服务器部署 HTTPS 客户端验证 Https 原理 常见问题 参考 自签名 CA 证书 生成密钥 使用 128 位的 RSA 算法生成的密钥,4096 是密钥的长度,建 ...
- 变更git url/添加https.sslverify参数解决同步超时、重置连接错误
报错信息 Failed to connect to github.com port 443 after 21082 ms: Timed out OpenSSL SSL_read: Connection ...
- Conda 环境常用碎笔记
环境管理 #创建/激活/退出/删除名为envName的虚拟环境 conda create -n envName python=3.x conda activate envName conda deac ...
最新文章
- AI一分钟|潘建伟团队首次实现18个量子比特纠缠;特斯拉第二季度共交付40740辆汽车...
- JVM的内存配置参数
- SQLServer技巧
- String/StringBuffer/StringBuilder的执行效率以及区别
- linux 获取文件父目录权限,使用setfacl实现子目录继承父目录权限
- 高性能python_[转]【原创】High Performance Python(Python 高性能计算)(一)
- 【WPF】绑定Hyperlink超链接
- SPOJ SUBST1 New Distinct Substrings(后缀数组 本质不同子串个数)题解
- iPhone清理喇叭灰尘_厉害了!原来可以这样一键清理 iPhone 喇叭灰尘!
- mac matlab破解
- 乐优商城项目视频及源码
- Java OCR文字识别(Tess4J)
- 从用AI+VR虚拟教室穿越到中国说起,看红头文件下,互联网教育公司的AI招牌
- Linux Shell重定向 管道命令 grep搜索 awk编程 sed文件操作高阶函数
- SpringBoot入门到精通 idea教学 (余胜军通俗易懂版本)
- html 自动悬浮,HTML 悬浮float介绍
- Foxmail只能接收邮件,不能发邮件,Mcafee需设置
- 26MB160A-ASEMI大功率电源专用单相整流桥26MB160A
- 抗锯齿相关技术介绍:MSAA、FXAA、SMAA、TXAA、MSAA
- 推荐一款开源物流管理系统,适合学习研究
热门文章
- wow周四服务器维护,新一轮大服务器实装开启:3月12日维护8小时
- 计算机无法加载远程访问连接管理器服务,Win7网络无法加载远程访问连接管理器服务怎么办...
- 动漫鬼刀MAC高清动态桌面壁纸
- 11-28 BUU做题记录
- 算法时间复杂度以及代码实现
- 竞赛通知|首届工业数字孪生大赛
- 启动Tomcat报错- jar not loaded. Offending class: javax/servlet/Servlet.class
- [前端笔记037]vue2之vuex
- Android RIL代码详细分析
- PhotoZoom Pro 7 支持哪些图像格式?