前端之http初探

作者: 贵在随心 | 来源:发表于2017-08-24 22:42 被阅读154次

    从转行到现在做了一年多的前端开发,中间的过程跌跌转转,总觉得对一些网络的基础知识有所欠缺。这几天看了一些http的相关文章和资料,以下是对这几天的所学做个总结。

    当我们打开一个网站,浏览器某个网页,都必须有一个http请求。下面了解一下http的一些基础知识:

    定义

    HTTP协议(Hyper Text Transfer Protocol),即超文本传输协议的缩写,是从万维网服务器传输超文本到本地浏览器的传送协议,是一个基于TCP/IP通信协议来传递数据。

    http请求过程

    1、域名解析

    2、发起TCP3次握手

    3、建立TCP请求发起 http 请求

    4、服务器响应http请求,得到 html 代码

    5、浏览器解析 html 代码,并请求 html 代码资源

    6、浏览器对页面进行渲染,呈现给用户

    http 状态码

    常见的状态码:

    200:请求成功

    301:资源被永久的转移到其他URL

    404:请求的资源不存在

    500:内部服务器错误

    状态码分类:

    1XX:信息。服务器收到请求,需要请求者继续操作

    2XX:成功。操作被成功接收并处理

    3XX:重定向。需要进一步的操作以完成请求

    4XX:客户端错误。请求包含语法错误或无法完成请求

    5XX:服务器错误。服务器在处理请求的时候发生错误

    与 http 相对应的 https

    什么是 https ?我们用一个简单的公式来理解:

    HTTPS = HTTP + TLS/SSL

    也就是:在 http 的传输的 过程加了一道 TLS/SSL (传输层加密协议),而这个协议是HTTPS 安全的核心。

    https 加密流程

    1、客户端将 TLS/SSL 协议的版本号、加密算法的种类,产生的随机数A等信息传给服务器

    2、服务器选择其中的一种组合为加密方式,同事将自己的证书、公钥、另外一个随机数一起传给客户端

    3、客户端获得服务端返回的信息(包括证书、签名、域名等),验证成功,则生成对称加密秘钥S,用公钥加密后返回给服务器

    4、服务器用私钥将这段密钥解密,得到对称密钥S,并用次密钥加密一段握手消息返回客户端

    5、客户端收到握手信息,用对称密钥解密,验证成功,则握手成功。

    https 加密方式

    1、对称加密

    加密数据用的密钥(即公钥)和解密数据用的密钥(即私钥)是一样的。

    2、非对称加密

    公钥和私钥是不一样的,只能保证单项数据的传输

    理解加密的关键点:私钥能解开公钥加密的数据,但私钥加密的数据,同样能用公钥解密

    https 优缺点

    优点:

    1、使用 https 协议可以认证用户和服务器,确保数据发送到正确的客户机和服务器

    2、https 协议是由 SSL+HTTP 协u议构建的可进行加密传输、身份认证的网络协议,要比http 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性

    3、https 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本

    缺点:

    1、在相同的网络环境下,https 协议会使页面的加载时间延长近50%,增加10%到20%的耗电。此外,https 协议还会影响缓存、增加数据开销和功耗

    2、https协议的安全是有范围的,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用

    3、最关键的,SSL 证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行

    4、SSL 的专业证书需要购买,功能越强大的证书费用越改。个人网站、小网站可以选择入门级免费证书

    5、SSL 证书通常需要绑定固定IP,为服务器增加固定IP会增加一定费用

    6、https 连接服务器端资源占用较高,相同负载下会增加带宽和服务器投入成本

    关于http 和 https 先到此,下次继续深入 TCP的三次握手和四次挥手。

    相关文章

      网友评论

        本文标题:前端之http初探

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