计网学习记录

HTTP协议

HTTP 1.0和 HTTP 1.1区别

1.连接方面:http1.0 默认使用非持久连接,而 http1.1 默认使用持久连接。http1.1 通过使用持久连接来使多个 http 请求复用同一个 TCP 连接,以此来避免使用非持久连接时每次需要建立连接的时延。
2.资源请求方面,在 http1.0 中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,http1.1 则在请求头引入了 range 头域,它允许只请求资源的某个部分。
3.http1.1 相对于 http1.0 还新增了很多请求方法,如 PUT、HEAD、OPTIONS 等。

HTTP 1.1 和 HTTP 2.0 的区别

1.二进制协议:2.0是彻底的二进制协议,而1.1的报文的头信息必须是文本
2.多路复用:2.0复用tcp连结,避免了“队头阻塞”的问题。(队头阻塞是由 HTTP 基本的“请求 - 应答”模型所导致的。HTTP 规定报文必须是“一发一收”,这就形成了一个先进先出的“串行”队列,如果前一个请求处理太慢,就会导致后边的请求一起等待,浪费了时间成本。)

输入URL

1.解析URL:判断输入是否合法,不合法就放入搜索引擎。判断非法字符,如果有则进行转义
2.缓存判断: 判断请求的资源是否在缓存里,如果不在,向服务器发起新的请求
3.DNS解析:把输入的URL解析成为服务器的IP地址
4.TCP三次握手: SYN是同步的意思,ACK是确认的意思。(DDos攻击:不断发送SYN,但不进行下一步,会导致服务器崩溃。)
建立通讯通道,5.发送HTTP请求:

6.响应HTTP请求:
在这里插入图片描述
7.页面渲染
8.TCP四次挥手:客户端和服务器都可以主动发起关闭请求。此处引用B站蛋老师的一张图
在这里插入图片描述
四次挥手主要是可能服务端还有未传输完毕的数据,需要两次确认

keep-alive

HTTP1.0 中默认是在每次请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接,这就是短连接。当使用Keep-Alive模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接,这就是长连接

HTTP3.0

HTTP/3基于UDP协议实现了类似于TCP的多路复用数据流、传输可靠性等功能,这套功能被称为QUIC协议。
在这里插入图片描述

HTTP缓存

强缓存
Expires:缓存过期时间,Expires=max-age + 请求时间,需要和Last-modified结合使用。
cache-control:

  1. max-age 指定一个时间长度,在这个时间段内缓存是有效的,单位是s。
  2. public 表明响应可以被任何对象(发送请求的客户端、代理服务器等等)缓存。
  3. private 表明响应只能被单个用户(可能是操作系统用户、浏览器用户)缓存,是非共享的,不能被代理服务器缓存。
  4. no-cache 强制所有缓存了该响应的用户,在使用已缓存的数据前,发送带验证器的请求到服务器。
  5. no-store 禁止缓存,每次请求都要向服务器重新获取数据。
    协商缓存(对比缓存):服务器根据http头信息中的Last-Modify/If-Modify-Since或Etag/If-None-Match来判断是否命中协商缓存。浏览器发送请求和资源标识时,如果是最新资源,返回304,直接从缓存里拿数据。如果不是最新资源,则返回200、最新资源和新的资源标识。

HTTP状态码

一、2xx(成功)

(1)200:成功

二、3xx(重定向)

(1)301:永久重定向。表示请求的资源已经分配到了新的URL
(2)302:临时重定向。
(3)304:与协商缓存相关。和重定向无关

三、4xx(错误状态码)

(1)400:请求报文存在语法错误
(2)404:表示在服务器上没有找到请求的资源

四、5xx(服务器错误)

(1)500:表示服务器端在执行请求时发生了错误
(2)503:表明服务器暂时处于超负载或正在停机维护,无法处理请求

HTTPS

HTTPS与HTTP

相当于加了一个安全层SSL/TLS,协议TLS/SSL具有身份验证、信息加密和完整性校验的功能。

TLS/SSL的工作原理

TLS/SSL的功能实现主要依赖三类基本算法:散列函数hash、对称加密、非对称加密。

  1. 基于散列函数验证信息的完整性
  2. 对称加密算法采用协商的秘钥对数据加密
  3. 非对称加密实现身份认证和秘钥协商
    对称加密是:双方使用同一秘钥加密。是1对1的。无法保证秘钥传输的安全性。
    非对称加密:有两个秘钥,一个公钥,一个私钥。把公钥公开,私钥保密。想通讯的客户,使用公钥对数据加密,我们可以使用私钥解密,就可以保护数据的安全。但是这样速度很慢。

TLS/SSL的工作方式就是客户端使用非对称加密与服务器进行通信,实现身份的验证并协商对称加密使用的秘钥。(这样也不一定是安全的的,可能会存在一个中间人,截取了对方发给我们的公钥,然后将他自己的公钥发送给我们,当我们使用他的公钥加密后发送的信息,就可以被他用自己的私钥解密。然后他伪装成我们以同样的方法向对方发送信息,这样我们的信息就被窃取了)
所以就有了数字证书:首先使用一种 Hash 算法来对公钥和其他信息进行加密,生成一个信息摘要,然后让有公信力的认证中心(简称 CA )用它的私钥对消息摘要加密,形成签名。最后将原始的信息和签名合在一起,称为数字证书。当接收方收到数字证书的时候,先根据原始信息使用同样的 Hash 算法生成一个摘要,然后使用公证处的公钥来对数字证书中的摘要进行解密,最后将解密的摘要和生成的摘要进行对比,就能发现得到的信息是否被更改了。

网络模型

一、OSI七层模型

  1. 应用层:为用户直接提供各种网络服务。(比如发送邮件,发送消息等)
  2. 表示层:对应用层的数据进行编码和转换。
  3. 会话层:建立、管理和终止表示层实体之间的通信会话。
  4. 传输层:定义传输方式TCP或者UDP
  5. 网络层:IP协议层,根据IP地址找到相应的路径,传递数据
  6. 数据链路层:网络层交下来的 IP 数据报封装成帧,并在链路的两个相邻节点间传送帧,每一帧都包含数据和必要的控制信息。
  7. 物理层:传输介质

二、TCP/IP五层协议

相当于把OSI模型的应用层、表示层、会话层整合为一层,取名为应用层。其余相似

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值