常用的网络知识

318 阅读2分钟

1、网络分层

五层:
底层是物理层(硬件)
顶层是应用层(应用程序)
中层是网络层(网络)

两条传输的道路
应用层<-->网络层:运输层(关注端点到端点的通信-->通信的可靠性)
网络层<-->物理层:数据链路层(关注点到点(一段到一段)的信息传送) image.png

2、三次握手&四次挥手

三次握手

帮助客户端和服务端建立通信

客户端A要和服务端通信B
A:我要建立通信,你能收到我的信息吗?
B:我收到了,你呢?
A:我也收到了。
至此三次通信实现了通信通道的建立。

四次挥手

image.png 任何一方提出要停止通信的协议

A:我要挂了,还有什么要交代的?
B:好的,等等,还有。
B:巴拉巴拉,好了,你可以挂了。
A:那我挂了。

3、浏览器中输入地址到显示页面的过程

  1. DNS解析-->(结论)把网址解析成 ip地址-->(过程)浏览器缓存、本地缓存hosts文件找对应的 ip,找不到就去 DNS服务器解析
  2. 拿到服务器 ip就让本机 ip和它进行 tcp连接
  3. 发送 HTTP请求
  4. 服务器处理请求并返回 HTTP报文
  5. 浏览器解析并渲染页面
  6. 结束连接

HTTP&HTTPS

1、无状态协议

HTTP协议本身是不保存请求和响应的状态。
实际应用场景里,我们会想要获得用户的信息。
这时候就可以聊聊 Session和Cookie了。

2、Session&Cookie

我们会用 Session、Cookie来保存用户状态,
它们的区别是,
Session是保存在服务器中的(对服务器会占用一定的资源);
Cookie是保存在本地浏览器中的(存在安全问题)。
实际项目中会结合两者来保存用户信息,提高用户体验,

比如
用户第一次登陆请求后,
服务器会产生 session(保存到服务器内存中,一般是保存在 redis中)和 sessionid保存到本地浏览器的cookie中。
用户第二次请求会携带 sessionid请求,获取到 session,得到用户会话信息。

3、HTTPS

默认端口是 443,
安全性来说的话,HTTPS的请求中传输的内容是加密过的,比 HTTP明文传输安全。
HTTPS有两种加密方式,会消耗一定的服务器资源。

  • 对称加密:密匙只有一个,加密解密同一个密码,速度快点。
  • 非对称加密:密匙成对出现(公匙和私匙),可以根据公匙加密需要私匙解密,私匙加密需要公匙解密。速度慢些。