深入HTTPS系列一(HTTP&HTTPS)

作者: muice | 来源:发表于2016-12-03 19:40 被阅读1706次

由于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系列一(HTTP&HTTPS)

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

  • HTTP&HTTPS

    Socket开发基础Socket注意事项http基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查...

  • HTTP&HTTPS

    网络基本概念 客户端(就是手机或者ipad等手持设备上面的APP) 服务器(远程服务器-本地服务器) 请求(客户端...

  • iOS http&https

    iOS 9 限制 http 协议的访问,如果 App 需要访问 http://, 则需要在Info.plist 添...

  • 详解HTTP&HTTPS

    前言 通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的。而HTTP属于它内部的一个子集。在整个网络...

  • http&&https

    HTTP与HTTPS握手的那些事 今天我总结了什么是HTTP三次握手,还有HTTPS握手的过程以及为什么HTTPS...

  • 深入HTTPS系列三(如何通信)

    继上篇深入HTTPS系列二(加密&证书)后,该篇主要讲HTTPS通信过程。 ** HTTPS的通信过程** 1、客...

  • 深入解析HTTPS

    HTTPS介绍 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩...

  • Charles抓HTTP&HTTPS包

    HTTP抓包 1.打开Charles程序 2.查看Mac电脑的IP地址,如192.168.1.7 导航栏 -> H...

  • HTTPS系列干货(一):HTTPS 原理详解

    作者:又拍云原文地址:https://zhuanlan.zhihu.com/p/27395037 HTTPS(全称...

网友评论

本文标题:深入HTTPS系列一(HTTP&HTTPS)

本文链接:https://www.haomeiwen.com/subject/zgcuettx.html