编程知识点Web前端之路让前端飞

前端之http初探

2017-08-24  本文已影响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的三次握手和四次挥手。

上一篇下一篇

猜你喜欢

热点阅读