zoukankan      html  css  js  c++  java
  • 面试-简论HTTP和HTTPS敖丙面试图解析

    简论HTTP和HTTPS

    开门见山,这篇可以讲的很多 ,对于面试使用的不算太多,相对于TCP和UDP而言,HTTPS和HTTP这块可问的不算是太多

    HTTP协议的缺点

    • 通信使用明文,内容可能被窃听(重要密码泄露)
    • 不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
    • 无法证明报文的完整性,有可能已遭篡改(运营商劫持)

    HTTPS能解决这些问题吗?

    能,https是在http协议基础上加入加密处理和认证机制以及完整性保护,即http+加密+认证+完整性保护=httpshttps并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。所谓https,其实就是身披ssl协议这层外壳的http

    SSL 是这片网络上唯一的一片净土

    为啥要发明 SSL 这个协议?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。

    http和https的区别:

    • HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
    • HTTP 是不安全的,而 HTTPS 是安全的
    • HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
    • 在 OSI 网络模型中,HTTPS的加密是在传输层完成的,因为SSL是位于传输层的,TLS的前身是SSL,所以同理
    • HTTP无需认证证书,而https需要认证证书

    HTTPS工作原理:

    • 首先服务端给客户端传输证书,这个证书就是公钥,只是包含了很多的信息,比如说证书的办法机构,证书的过期时间
    • 客户端进行证书的解析,比如说验证办法机构,过期时间,如果发现没有任何问题,就生成一个随机值(私钥),然后用证书对这个私钥进行加密,并发送给服务端
    • 服务端使用私钥将这个信息进行解密,得到客户端的私钥,然后客户端和服务端就可以通过这个私钥进行通信了
    • 服务端将消息进行对称加密(简单来说就是讲消息和私钥进行混合,除非知道私钥否则服务进行解密),私钥正好只有客户端和服务端知道,所以信息就比较安全了
    • 服务端将进行对称加密后的消息进行传送
    • 客户端使用私钥进行信息的解密

    HTTP1.0,1.1,2.0之间的区别和特性

    1. http1.0:无连接,无状态,一次请求一个tcp连接
    2. http1.1:持久连接,请求管道化(有一些缺陷) ,增加了host字段,缓存,断点续传
    3. http2.0 : 二进制分帧(多路复用的实现基础), 多路复用,头部压缩

    能力越强,责任越大。

    实事求是,严谨细致。

    惊蛰新博客

  • 相关阅读:
    PHP实现简易的模板引擎
    三种实现PHP伪静态页面的方法
    转 php简单伪静态实例
    Function mysql_db_query() is deprecated 错误解决
    PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
    PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
    mysql添加DATETIME类型字段导致Invalid default value错误的问题
    ASP程序中调用Now()总显示“上午”和“下午”,如何解决?
    解决程序开发中时间格式不对造成的问题
    “隐藏已知文件类型的扩展名”选项失败问题
  • 原文地址:https://www.cnblogs.com/jingzheins/p/14061760.html
Copyright © 2011-2022 走看看