美文网首页
HTTP与HTTPS

HTTP与HTTPS

作者: 青城墨阕 | 来源:发表于2022-08-15 18:20 被阅读0次

    前言

    了解HTTP与HTTPS之前可以先简单了解下网络协议分层,以及每层的具体的工作分工与协议,可参考阮一峰老师的文章互联网协议入门(一)互联网协议入门(二)

    网络协议分层--经典五层模型

    TCP和HTTP请求之间有什么关系?

    TPC/IP协议传输层协议,主要解决数据如何在网络中传输
    HTTP应用层协议,主要解决如何包装数据。
    WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。(在http请求之前需要建立tcp链接。)

    1. 在完成一个HTTP请求后,TCP链接会否立即断开?
    • HTTP/1.0的时候是会的,需要手动设置Connection: keep-alive
    • HTTP/1.1的时候Connection默认为keep-alive

    一般情况下,复用的 TCP连接在等待设置的超时时间之后还没有被任何连接使用的话,就会主动断开。

    2. 一个TCP链接可以对应多少个HTTP请求?

    一个TCP链接可以对应多个HTTP请求,只要这个TCP链接没有断开,就可以发送HTTP请求。

    3. 这些HTTP请求可以同时发送,同时响应么,在一个TCP链接中?比如:三个HTTP请求同时发送,同时接收响应。
    • 在HTTP/1.1中,单个TCP链接在同一时刻只能处理一个请求,意思就是:任意两个 HTTP 请求从开始到结束的时间在同一个 TCP链接里不能重叠。
    • HTTP/2.0 提供了Multiplexing 多路传输(多路复用)。可以在一个TCP链接中同时发起多个HTTP请求,同时响应多个HTTP请求。
    4. 浏览器http请求的并发性是如何体现的?并发请求的数量有没有限制?

    浏览器会同时与服务器建立多个TCP链接,来支持多个HTTP同时请求的。
    就例如:Chrome浏览器最多允许对同一个域名Host建立6个TCP连接,不同的浏览器有所区别。

    HTTP

    HTTP(HyperText Transfer Protocol)超文本传输协议是互联网上应用最为广泛的一种网络协议。

    HTTP的工作原理

    HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件、图片文件, 查询结果等。
    HTTP协议一般用于B/S架构()。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
    我们以访问百度为例:


    关于HTTP的三次握手,其实就是使用三次TCP握手确认建立一个HTTP连接。
    一般http中存在的问题:
    • 请求信息明文传输,容易被窃听截取。
    • 数据的完整性未校验,容易被篡改
    • 没有验证对方身份,存在冒充危险

    HTTPS

    为了解决上述HTTP存在的问题,就用到了HTTPS。
    HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密
    SSL/TLS又是什么? SSL(Secure Socket Layer,安全套接字层)1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持;TLS(Transport Layer Security,传输层安全)其前身是 SSL

    HTTPS的工作原理

    (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
    (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
    (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
    (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
    (5)Web服务器利用自己的私钥解密出会话密钥。
    (6)Web服务器利用会话密钥加密与客户端之间的通信。

    HTTPS的缺点
    • HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;
    • HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
    • SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
    • SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
    • HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

    HTTPS和HTTP的区别

    1. https协议需要到ca申请证书或自制证书。
    2. http的信息是明文传输,https则是具有安全性的ssl加密。
    3. http是直接与TCP进行数据传输,而https是经过一层SSL(OSI表示层),用的端口也不一样,前者是80(需要国内备案),后者是443。
    4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    相关文章

      网友评论

          本文标题:HTTP与HTTPS

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