zoukankan      html  css  js  c++  java
  • HTTP、HTTPS 了解一下

    什么是HTTP?

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

    缺点:

    1,通信使用明文,内容可能被窃听(重要密码泄露)

    2,不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)

    3,无法证明报文的完整性,有可能已遭篡改(运营商劫持)

    发展历史

    版本 产生时间 内容 发展现状
    HTTP/0.9 1991年 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 没有作为正式的标准
    HTTP/1.0 1996年 传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令 正式作为标准
    HTTP/1.1 1997年 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 2015年前使用最广泛
    HTTP/2 2015年 多路复用、服务器推送、头信息压缩、二进制协议等 逐渐覆盖市场

     

     

     

     

    多路复用:通过单一的HTTP/2连接请求发起多重的请求-响应消息,多个请求stream共享一个TCP连接,实现多留并行而不是依赖建立多个TCP连接。

    HTTP报文格式

    什么是HTTPS?

      即http+加密+认证+完整性保护=https。

    《图解HTTP》这本书中曾提过HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

    PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布【为了解决http是明文带来的问题】,1999年IETF将SSL标准化,改名为TLS,所以这两者其实就是同一种协议。

    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:
    SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
    SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。


    https并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。
    所谓https,其实就是身披ssl协议这层外壳的http

    https与http的区别

    1,https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

    2,http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

    3,http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    4,http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    问题:对称秘钥加密和非对称秘钥加密的区别

    问题:SSL/TLS协议的基本原理。

    参考:https://www.cnblogs.com/jesse131/p/9080925.html

    参考:https://blog.csdn.net/xiaoming100001/article/details/81109617

  • 相关阅读:
    ORACLE PL/SQL 实例精解之第七章 迭代控制之二
    ORACLE PL/SQL 实例精解之第六章 迭代控制之一
    ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句
    ORACLE PL/SQL 实例精解之第四章 条件控制:if 语句
    sql中用JOIN USING 简化JOIN ON
    ORACLE PL/SQL 实例精解之第三章 PL/SQL中的SQL
    ORACLE PL/SQL 实例精解之第二章 通用编程语言基础
    删除文件时提示“找不到该项目”,怎么解决? 转摘自:http://jingyan.baidu.com/article/e4d08ffdf5ab470fd2f60df4.html
    C#获取文件夹/文件的大小以及占用空间 转摘自:http://www.cnblogs.com/chenpeng-dota/articles/2176470.html
    git update-index --assume-unchanged on directory 转摘自:http://stackoverflow.com/questions/12288212/git-update-index-assume-unchanged-on-directory
  • 原文地址:https://www.cnblogs.com/hfeng007/p/11446460.html
Copyright © 2011-2022 走看看