zoukankan      html  css  js  c++  java
  • HTTP和HTTPS

    前言:不管是前端开发、后端开发还是测试工程师的面试题,都可能问到HTTP和HTTPS。因此弄清楚这两个是十分重要的。

    什么是HTTP?

    超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用层最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接受HTML页面的方法。

    什么是HTTPS?

    基于HTTP协议,通过SSL或TLS提供加密处理数据,验证对方身份以及数据完整性保护。

    1. 内容加密:采用混合加密技术,中间者无法直接查看明文内容。
    2. 验证身份:通过证书认证客户端访问的是自己的服务器。
    3. 保护数据完整性:防止传输的内容被中间人冒充或者篡改。
    混合加密:结合对称加密和非对称加密技术。客户端使用对称加密生成秘钥对传输数据进行加密,然后使用非对称加密的公钥再对秘钥进行加密,所以网络上传输的数据是被秘钥加密的密文和用公钥加密后的秘钥,因此即使被黑客截取,由于没有私钥,无法获取到加密明文的秘钥,便无法获取到明文数据。
    

    HTTPS是如何工作的?

    基础知识:

    非对称加密的特点:

    • 任何经过A的公钥进行过加密的信息,只有A的私钥才能解密。
    • 任何有公钥的人可以确认对方发送的信息是被私钥加密过的。

    image-20210108232612292

    HTTP和HTTPS的区别:

    • https协议需要到CA申请证书,一般免费的证书较少,因而需要一定的费用。
    • http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议。
    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443.
    • http的连接很简单,是无状态的,https协议是有SSL + HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  • 相关阅读:
    jieba库的使用和词云
    类和正则表达
    数据库实践
    自己的第一个网页
    第一个爬虫和测试
    Linux 知识总结
    Python argparse模块基本用法
    Python面向对象编程
    linux Nginx发布基于PHP的WEB
    Linux nginx发布基于python的WEB环境
  • 原文地址:https://www.cnblogs.com/caituotuo/p/14253800.html
Copyright © 2011-2022 走看看