2023年大年初三,继续深造。今天就来备考与前端工程师有关的一些网络安全知识,简要介绍互联网七层模型 OSI、HTTPS状态码、GET和POST方式差别、HTTP/1.0和HTTP/1.1有什么不同等。
系列文章:
- 《复习前端:浏览器缓存策略》
- 《复习前端:前端安全》
- 《复习前端:JavaScript V8 引擎机制》
七层互联网OSI模型,TCP/IP和HTTP坐落于哪一层?
1.1 mac层
- 简述:传送到大数据的mac层。互联网(当地或全世界)中所有部件都能通过电缆线(网络线、光纤线等)或无线网络(wi-fi)等物理学传输方式相连接。
- 企业:位。
1.2 数据链路层
- 简述:数据链路层将比特犬封装形式成数据帧然后进行传送。这是 OSI 里的数据链路层,承担在 Internet 里的物理设备中间建立联系。因而,互联网技术仅仅一堆根据mac层相连接的电子计算机,以太网接口做为界定数据传输方式的协议。以太网协议遵照
IEEE 802.3
规范,是MAC 详细地址 数据信息重力梯度 CRC 校验和的搭配
。 - 企业:帧。
1.3 传输层
- 简述:界定 IP 详细地址,界定路由功能,创建服务器到主机通讯。
- 企业:包。
1.4 网络层
- 简述:承担靠谱或不安全的数据传递及其创建端口号到接口的通讯。网络层协议承担连接设备间的挥手,保证数据文件按恰当次序推送,根据校验和确保层数据库安全,操纵数据流分析速率,时分复用等。常见的传输控制协议/互联网协议(TCP/IP ) 是 TCP、UDP 等。
- 企业:数据段。
1.5 会话层
- 简述:控制应用程序间的对话水平,区别不一样的过程。
1.6 表现层
- 简述:数据类型鉴别、基本上缩小和数据加密作用。
1.7 网络层
- 简述:给予用户应用程序过程与底层数据互联网间的插口,是唯一与最后用户交互的层。网络层只对通讯开展规范化,完全依赖最底层传输层协议创建服务器到主机传送数据安全通道,并管理方法手机客户端-网络服务器或对等网络实体模型里的数据传输。常用网络层协议是 http、ftp、mqtt、websockets 等。
比较常见的HTTP状态码有什么
2.1 以2xx开始(要求取得成功)
200 OK
:前面(手机客户端)向服务器发送请求被正常的解决并回到。
2.2 3xx开始(跳转)
301 Moved Permanently
:永久性跳转,请求的网页页面早已永久性移到一个新的部位。当缺少对象此回应时,他会全自动将请求者分享到原部位。302 Moved Permanently
:临时性跳转,所请求的网页页面已经被临时性移到一个新的部位。网络服务器现阶段已经回应来自各式各样区域的网页的要求,可是请求者应当正常使用原处去进行之后请求。304 Not Modified
:Not Modified
,要求页面自之前要求之后没有被调整过。缺少对象此回应的时候不会回到网页页面。
2.3 以4xx开始(手机客户端不正确)
400 Bad Request
:不正确要求,网络不了解请求的词法,多见于前面(手机客户端)传递参数不正确。401 Unauthorized
:未经授权,表明上传的要求必须通过HTTP认证认证信息,多见于前面(手机客户端)未登录的现象。403 Forbidden
:Forbidden
网络服务器拒绝请求,一般主要是因为前面(手机客户端)权限不足。404 Not Found
:找不到,网络服务器找不着相对应的网络资源。
2.4 以5xx开始(服务器错误)
500 Inter Server Error
:内部结构服务器错误,网络服务器碰到不正确,无法完成请求。501 Not Implemented
:并未完成,网络服务器无法完成请求。502 Bad Gateway
:当做为网关ip或代理商服务器试着实行要求时,从上下游网络服务器接到失效回应。503 服务不可用
:服务不可用,网络服务器现阶段不能用(负载或停机维护),一般是一个临时性情况。
GET要求和POST请求有什么不同
GET
请求参数放到URL上,POST
请求参数放到请求体中(Request Body
)。GET
请求参数长短受限制,POST
请求参数长短能够非常大。POST
要求比GET
要求安全性一点,由于GET
要求参数值在 URL 上而且有历史数据。GET
要求能够被缓存文件,可是POST
不容易。
HTTP协议书没有要求 GET/POST
请求参数务必放到URL或请求体中,也没有明确GET
请求的长短。现阶段的 URL 长短限定是每一个浏览器限制。GET
和 POST
的核心区别就是:GET
要求是幂等的,而 POST
要求并不是。
幂等性代表着对资源一个或多个要求拥有相同的不良反应。比如,搜索是幂等实际操作,而删掉和加上并不是幂等实际操作。
因为 GET
要求是幂等的,在极端的网络空间下,很有可能要反复试着 GET
要求,导致重复数据操控的风险性。因而,GET
要求用以没什么副作用的操作(如检索)、增/删等行为适宜 POST
。
HTTP/1.0和HTTP/1.1有什么不同
- 长连接:
HTTP/1.1
适用长连接和要求管路,还可以在一个TCP连上推送好几个HTTP要求,防止了数次创建TCP相连的时长耗费和延迟时间。 - 缓存文件解决:
HTTP/1.1
引进了Entity
标识、If-Unmodified-Since
、If-Match
、If-None-Match
等一个新的请求头来调节缓存文件。 - 网络带宽优化数据连接的应用:
HTTP1.1
在请求头中引进了range
头字段,适用上传下载的功效。 - 主机头解决:在
HTTP/1.0
中,觉得每一台网络服务器都有一个唯一的IP地址,但是随着云虚拟主机技术发展,几台服务器分享一个IP地址的现象越来越普及。HTTP1.1
的请求报文和响应报文都应适用Host
头域,假如请求报文里没有Host
头域,就容易出现400
不正确。
HTTP/2.0的新特性
- 时分复用:即好几个要求通过一个TCP联接高并发进行。
- 服务器端消息推送:服务器端能够主动与手机客户端消息推送网络资源。
- 一个新的二进制文件格式:
HTTP/2
应用二进制文件格式传送数据。与HTTP/1.1
的文档格式对比,二进制文件格式具有更高的解析性和可扩展性。 - 标题文字缩小:
HTTP/2
缩小信息标题文字,降低传送数据大小。
HTTP/2.0时分复用的原理以及解决问题
HTTP/2
处理的问题在于 HTTP/1.1
存在的问题。
TCP慢启动:TCP联接成立后,会经历一个先慢后迅速的推送全过程,如同汽车启动一样。假如网页源代码(HTML
/JS
/CSS
/icon
)都要经过慢启动,也不会影响特性小损害。此外,慢启动是TCP用于降低网络拥塞的一种对策,现阶段也没办法更改它。
好几个TCP联接角逐网络带宽:假如与此同时创建好几个TCP联接,当带宽不足时,它会角逐网络带宽,危害核心资源的免费下载。
HTTP/1.1 队头堵塞:尽管 HTTP/1.1
长链接能通过单独TCP联接传送好几个要求,但是同时只有解决一个要求,别的要求只有堵塞到现阶段要求完毕。
为了解决以上问题,一个 HTTP/2
网站域名只使用一个TCP长连接传送数据,要求立即并行处理无堵塞,这便是时分复用。
完成基本原理:
HTTP/2
引进了二进制框架层。用户端和服务器端传送时,数据信息要经过二进制分帧层解决,转化成含有要求ID的帧。传送结束后,这种帧依据ID组成对应的数据信息。
HTTP和HTTPS有什么不同
- HTTPS 应用默认端口 443 ,而 HTTP 应用默认端口是 80。
- HTTPS 必须资格证书。
- HTTP是动态网页通信协议,是明文传输,HTTPS是SSL加密方式,传送安全系数高。
- HTTPS 比 HTTP 慢是由于 HTTPS 除开 TCP 挥手的三个数据文件外,还加入了 SSL 挥手的九个数据文件。
HTTPS是如何加密的
通过对比几类加密算法,由浅入深掌握HTTPS的加密算法及使用它缘故。
对称性加密
前面(手机客户端)和服务器分享一个密匙来加密和解密信息,这称之为对称加密算法。前面(手机客户端)和服务器就加密密钥达成一致。前面(手机客户端)在发送信息前应用密钥对信息实现数据加密,发给网络服务器后,服务器使用密钥对信息展开破译得到消息。
这种方法在一定程度上确保了数据库的安全性,但是一旦密匙泄漏(密匙在传送过程中被捕获),传送具体内容便会曝露,因此需要想尽办法安全性传送密匙。
对称加密
应用对称加密时,前面(手机客户端)和服务器端都是有公钥和私钥,公钥加密内容仅有相对应的公钥才能够破译。公钥自身存放,公匙发给对方。那样,信息在上传前首先用对方公钥加密,到手后通过自己的私钥解密。那样,网络攻击只有获得传输过程里的公匙,没法破解传送具体内容。
对称加密尽管处理因获得密匙而造成传送具体内容泄漏问题,可是中介人仍然能够根据伪造公匙获得或伪造传送具体内容,对称加密性能比不上对称加密算法。
第三方认证
以上方法的缺点取决于前面(手机客户端)不清楚公匙是服务器端返回或是中介人返回,因此引进第三方认证阶段:即第三方应用私钥加密公匙key, 电脑浏览器内置了一些权威性的第三方认证机构的公匙。电脑浏览器会用第三方公匙来解除我们用第三方私钥加密后公匙,获得公匙。如果可以破译取得成功,表明获得的公匙正确。
可是,第三方认证并没彻底消除难题。第三方认证是我们的,中介公司还可以申请资格证书。假如中介公司通过自己的资格证书取代原先的证,前面(手机客户端)依然无法确定公匙信息真实性。
电子签名
为了能让前面(手机客户端)可以认证公匙的源头,在公匙上加了电子签名。这类电子签名是由对于企业、网站等所有信息和公匙开展单边hach所得到的。一旦组成电子签名的信息产生变化,hash值就会发生变化,进而组成公匙信息的来源唯一标识。
从总体上,网络服务器在本地形成一对密匙,然后用着公匙与企业、网站等所有信息到CA(第三方认证核心)申请办理个人数字证书。CA会用一种单边散列算法(例如MD5),形成一串引言,这串引言就是这个堆数据的唯一标识,随后CA还会通过自己的公钥对引言开展数据加密并把它和我们云服务器公匙一起发给大家。
电脑浏览器得到电子签名后,会使用浏览器当地内置的CA公匙对个人数字证书开展开启和测试,获得正确公匙。因为对称加密性能比较低,前面(手机客户端)在取得公匙后,会自动生成一个对称密钥,用这种公钥加密,发给网络服务器,网络服务器通过自己的公钥开启对称密钥,及其此后的数据加密 联接应用此对称密钥开展对称加密算法。
总的来说,HTTPS在认证环节选用对称加密 第三方认证 电子签名的形式获得正确公匙,获得正确公匙后选用对称加密算法形式进行通讯。
汇总
本文以前端工程师的角度考虑备考互联网基本知识,全是一些基本的,在前端工程师中会涉及到的一些知识要点。