计算机网络知识总结

2020-11-03  本文已影响0人  Rachel_雷蕾

作为程序员,不论在大学还是在工作中,网络这个词是再熟悉不过了,作为移动端的一枚开发者,平时写业务需求,请求数据都要使用网络,那还记得网络的知识点么,今天就来回顾一下:

一、网络的基础知识

计算机网络:可以根据规模分WAN,Wide Area Network 广域网,和LAN局域网。通过电脑连接交换机再到路由器的连接。
TCP/IP机制:它是TCP/IP通信协议的统称。我们常听到协议入IP,TCP,HTTP等协议,记住:TCP/IP就是IP,TCP,HTTP等协议的集合。协议就是计算机与计算机之间通过网络实现通信时需要达成的一种的“约定”。这些协议就是让不同厂商的设备,不同的CPU和不同的操作系统组成的计算机之间进行通信

image.png
HTTPS:其实HTTP协议是承载于TCP协议之上的,在HTTPTCP之间添加一个安全协议层SSL或者TSL(ssl/tsl协议传输,包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer传递等),则就是常说的HTTPS
它是面向连接的,可靠的,基于字节流传输层通信协议。

从一个HTTP请求来看网络分层原理


image.png

二、HTTP

HTTP方法

getpost的差别
缓存角度:GET请求后浏览器会主动缓存POST 默认情况下
参数角度: GET请求一般放在URL中,因此不安全POST请求放在请求体中,相对而言较为安全,但是在抓包的情况下都是一样的。
编码角度: GET请求只能进行URL编码,只能接受ASCII码,而POST支持更多的编码类型对数据类型限值
GET请求幂等,POST请求不幂等,幂等指发送 M 和 N 次请求(两者不相同且都大于1),服务器上资源的状态一致。

HTTP报文组成

1、请求报文:请求方法 ,请求URL,HTTP协议以及版本,报文头,报文体

2、响应文:报文协议以及版本,状态码以及状态描述,响应头,响应体

3、持久连接
在http1.0中,客户端每隔很短时间会对服务器发出请求,查看是否有新的数据,只要轮询足够快,就可以造成交互实时进行,但这个做法,会对两端造成大量的性能浪费
对于http1.1中的长连接,使用connection:keep-alive进行长连接,客户端请求一次,但是服务器会将继续保持连接,再次请求时,避免重新建立连接
注意,keep-alive不会永久保持连接保持一个时间段。

4、HTTPS协议:由于HTTP天生“明文”的特点,整个传输过程完全透明,任何人都能够在链路中截获,修改或者伪造请求、响应报文,数据具有可信性。
使用HTTPS时,所有的HTTP请求和响应发送到网络前,都要进行加密。

image.png
https = http + ssl/tls

TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。

对称加密:加密 解密使用同一密钥

非对称加密:公钥-随意分发,私钥-服务器自己保持

公钥加密的数据,只能通过私钥解密
私钥加密的数据,所有公钥能解密(公钥都可以解开,指的是一对秘钥)
公钥可以发送给所有的客户端,私钥只保存在服务器端

5、URL统一资源定位符,URL的结构:


image.png

6、HTTP状态码
302:临时重定向
400:笼统地提示了错误
403:服务器禁止访问
405:请求方法不被服务器端允许
500:服务器报错
501:客户端请求的功能还不支持
503:服务器当时很忙,暂时无法响应服务

「1xx」: 代表请求已被接受,需要继续处理。
「2xx」: 表示成功状态。
「3xx」: 重定向状态。
「4xx」: 客户端错误。
「5xx」: 服务器端错误。

7、Accept字段理解


image.png

8、TCP和UDP的区别
TCP是一个面向连接可靠基于字节流传输层协议。

UDP是一个面向无连接的传输层协议。

TCP是面向连接的,客户端和服务器端的连接,双方互相通信之前,TCP需要三次握手建立连接,而UDP没有建立连接的过程

HTTPS请求过程

image.png

Client用户使用该「对称密钥」加密'明文内容B',发送给Server(服务器)
Server使用该「对称密钥」进行解密消息,得到明文内容B。

数字签名:将网站的信息,通过特定的算法加密,比如MD5,加密之后,再通过服务器的私钥进行加密,形成「加密后的数字签名」。
浏览器会去安装一些比较权威的第三方认证机构的公钥,比如VeriSign、Symantec以及GlobalSign等等。验证数字签名的时候,会直接从本地拿到相应的第三方的公钥,对私钥加密后的数字签名进行解密得到真正的签名。然后客户端利用签名生成规则进行签名生成,看两个签名是否匹配,如果匹配认证通过,不匹配则获取证书失败。

上一篇下一篇

猜你喜欢

热点阅读