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

    答:HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议,与http主要区别在于:

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

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

    下面具体介绍一下HTTP和HTTPS协议:

    首先说明一下:HTTP和HTTPS协议是应用层协议;

    上图充分表明:HTTP是应用层协议,并且HTTPS是在HTTP协议基础上添加SSL等加密策略后的协议;

    TLS/SSL中使用了非对称加密,对称加密以及HASH算法。

    (1)Http协议

    1)HTTP协议和TCP协议之间的区别联系

    ①TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据;

    ②HTTP的默认端口号是80,TCP/IP协议通信编程时端口号需要自己指定(例如socket编程);

    ③HTTP协议是在TCP/IP协议基础上实现的,即HTTP数据包是经过TCP/IP协议实现传输的;

    ④HTTP是无状态的短连接协议,TCP是有状态的长连接协议;

    HTTP是在有状态长连接TCP/IP协议的基础上实现的,为什么却是无状态短连接协议?

    答:因为HTTP协议每次请求结束就会自动关闭连接,这样就变成了短连接;

    短连接又导致了该次请求相关信息的丢失,也就造成了HTTP协议对于前期事务处理没有记忆能力,故为无状态协议。

    2)HTTP协议其完整的工作过程可分为四步:

    ①连接:首先客户机与服务器需要建立连接(由TCP/IP握手连接实现)。只要单击某个超级链接,HTTP的工作开始;

    ②请求:建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容;

    ③应答:服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上;

    ④关闭:当应答结束后,浏览器和服务器关闭连接,以保证其他浏览器可以与服务器进行连接。

    更完整的过程可能如下:

    域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户。

           如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

    (2)Https协议

    HTTPS握手过程包括五步:

    1)浏览器请求连接;

    2)服务器返回证书:证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。

    3)浏览器收到证书后作以下工作:

        a) 验证证书的合法性;

        b) 生成随机(对称)密码,取出证书中提供的公钥对随机密码加密;

        c) 将之前生成的加密随机密码等信息发送给网站;

    4)服务器收到消息后作以下的操作:

        a) 使用自己的私钥解密浏览器用公钥加密后的消息,并验证HASH是否与浏览器发来的一致;

        b) 使用加密的随机对称密码加密一段消息,发送给浏览器;

    5)浏览器解密并计算握手消息的HASH:如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览

    器生成的随机密码并利用对称加密算法进行加密。

    注意:服务器有两个密钥,一个公钥、一个私钥,只有私钥才可以解密公钥加密的消息;

    如图:

    或者如下图:

    HTTPS协议、SSL、和数字证书的关系介绍:

    概述:对于HTTPS协议,所有的消息都是经过SSL协议方式加密,而支持加密的文件正是数字证书;

    (1)SSL

    SSL常用的加密算法:对称密码算法、非对称密码算法、散列算法;

    SSL的加密过程:需要注意的是非对称加解密算法的效率要比对称加解密要低的多。所以SSL在握手过程中使用非对称密码算法来

    协商密钥,实际使用对称加解密的方法对http内容加密传输;

    (2)数字证书

    数字证书是用于在INTERNET上标识个人或者机构身份的一种技术手段,它通过由一些公认的权威机构所认证,从而可以保证其

    安全地被应用在各种场合。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。

  • 相关阅读:
    校园商铺-8商品模块-12接触商品与某商品类别的关联的实现
    centos 7访问windows共享文件夹
    怎样在CentOS 7.0上安装和配置VNC服务器
    【总结】教你怎么将centos7打造成桌面系统
    Centos 7安装gvim
    CentOS 7 安装virtualBox
    Centos 7中 vim 中文乱码
    CentOS 7 gedit编辑器中文乱码解决方法
    centos7支持ntfs
    delta
  • 原文地址:https://www.cnblogs.com/shuang0109/p/9118192.html
Copyright © 2011-2022 走看看