目录
TCP/IP四层模型
应用层、传输层、网络层、网络接口层
OSI七层模型
应用层:为计算机用户提供服务,应用进程之间的交互
表示层:数据处理,处理交换信心的表达方式
会话层:管理应用程序之间的会话
传输层:为两台主机的进程之间的通信提供通用的数据传输服务
网络层:路由和寻址
数据链路层:相连节点传输帧,帧编码和误差纠正控制
物理层:比特流传输
为什么网络要分层?
1.各层之间相互独立
2.提高了灵活性和可替换性
3.大问题化小
常见的网络协议
应用层:HTTP超文本传输协议,FTP文件传输协议,DNS域名管理系统,SMTP简单邮件发送协议,SSH安全的网络传输协议
传输层:TCP传输控制协议,UDP用户数据协议
网络层:IP网际协议,ARP地址解析协议,NET网络地址转换协议,RIP路由信息协议
HTTP状态码
1开头 接收的请求正在处理
2开头 请求正常处理完毕
3开头 需要重定向来完成请求
4开头 客户端出错
5开头 服务器出错
从输入URL到页面展示发生了什么?
1.浏览器通过DNS协议,查找域名对应的IP地址
2.浏览器根据IP地址和端口号,向目标服务器发起一个TCP连接请求
3.浏览器在TCP连接上,向服务器发送一个HTTP请求报文,请求获取网页内容
4.服务求收到请求报文后处理请求,返回HTTP响应报文给浏览器
5.浏览器收到报文后解析HTML代码,进行页面渲染,再次发起HTTP请求,获取静态资源
6.当浏览器不再需要和服务器通信时,可以主动关闭TCP连接,或者等待服务器的关闭请求
HTTP和HTTPS的区别
1.端口号:HTTP默认端口号80,HTTPS默认端口号443
2.URL前缀:HTTP前缀为http://,HTTPS前缀为https://
3.安全性:HTTP运行在TCP之上,传输内容是明文,客户端服务端都无法验证对方身份
HTTPS运行在SSL/TLS之上,传输内容经过加密
4.资源消耗:HTTPS加密采用对称加密,对称加密的密钥用服务器方的证书进行了非对称加密, 所以HTTPS耗费更多资源
5.SEO(搜索引擎优化):HTTPS因为安全性在搜索结果中可能会被优先显示
HTTP加密过程
1.客户端向服务器发送HTTPS请求
2.服务器将公钥证书发送给客户端
3.客户端验证服务器的证书
4.如果验证通过,客户端生成一个用于会话的对称密钥
5.客户端使用服务器的公钥对对称密钥进行加密,并将加密后的密钥发送给服务器
6.服务器使用私钥对客户端发送的加密密钥进行解密,得到对称密钥
7.服务器和客户端使用对称密钥进行加密和解密数据传输
HTTP/1.0和HTTP/1.1区别
连接方式:HTTP/1.0为短连接,HTTP/1.1支持长连接
状态响应码:HTTP/1.1新增了大量状态码,如100预热请求
缓存机制:HTTP/1.1引入了更多缓存控制策略例如Entity tag,If-Match等更多可供选择的缓存头 来控制缓存策略
带宽:HTTP/1.0存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,服务器却 将整个对象送了过来。
HTTP/1.1允许只请求资源的某个部分
Host头:HTTP/1.1引入了Host头字段,允许在同一IP地址上托管多个域名,从而支持虚拟主机的 功能。
HTTP/1.1和HTTP/2.0区别
多路复用:HTTP/2.0在同一连接上可以同时传输多个请求和响应
二进制帧:HTTP/1.1使用文本格式的报文,HTTP/2.0使用二进制帧进行数据传输,更加紧凑和高 效,减少了传输的数据量和带宽消耗
头部压缩:HTTP/2.0支持对Header压缩
服务器推送:HTTP/2.0支持服务器推送,可以在客户端请求一个资源时,将其他资源一并推送给 客户端,HTTP/1.1需要客户端自己发送请求来获取相关资源
HTTP/2.0和HTTP/3.0区别
传输协议:HTTP/2.0是基于TCP协议实现的,HTTP/3.0新增了QUIC协议来实现可靠的传输
连接建立:HTTP/2.0需要经过TCP三次握手,HTTP/3.0仅需0个握手或者1个握手
队头阻塞:HTTP/2.0一旦发生丢包,会阻塞所有HTTP请求,HTTP/3.0某个数据流丢包,其他数 据流不受影响。
错误恢复:HTTP/3.0具有更好的错误恢复机制
安全性:HTTP/2.0使用TLS协议进行加密,HTTP/3.0基于QUIC协议,可以提供更强的安全性