http和https

1. http的3个版本的区别

1.1. HTTP 1.0:像你家的大门

  • 无连接:服务器处理完后立即断开TCP连接
  • 无状态:服务器不跟踪每个客户端也不记录过去的请求

每次进出大门都要开门。

1.2. HTTP 1.1:像卧室的那张床

  • 长连接:KeepAlived长连接避免了连接建立和释放的开销
  • 有状态:通过Content-Length来判断当前请求数据是否已经全部接受

你可以躺在床上很久(长连接),直到你的定时闹钟(content-length)响起来。

1.3. HTTP 2.0:像自动工作的厨房

  • 二进制流:引入二进制数据帧和流的概念,其中帧对数据进行顺序标识
  • 多路复用:因为有了序列,服务器可以并行的传输数据
  • 主动推送:支持服务器主动向客户端推送资源,而不需要客户端先请求
  • 头部压缩:使用压缩算法对头部信息进行压缩,通讯双方各自缓存一份header_files表,既避免重复header的传输,又减少了需要传输的大小

厨房里有多条输送带同时工作(多路复用),把各种液体(二进制流)从冰箱直接推送到锅里(服务端主动推送),一种液体开始被推送前,它前面有一张有二维码的小纸条(头部压缩)标识这个液体的溯源信息。

2. https链接建立过程

1. 客户端(比如浏览器)向服务器发送一个连接请求,表明想要建立 HTTPS 连接。

2. 服务器返回数字证书,这个数字证书就是服务器的身份证,包含了服务器的名称、公钥等。

3. 客户端找CA机构验证数字证书是否合法有效。

这就好比收到一个陌生人的身份证,要去相关部门核实这张身份证是不是真的,以及是不是这个人的。

4. 客户端生成对称密钥。

5. 客户端用服务器公钥加密对称密钥并发送给服务器

6. 服务器用私钥解密获取对称密钥。

7. 双方使用对称密钥进行加密通信。

3. cookie和session

  • 存储位置
  1. Cookie:存在客户端(通常是浏览器)。
  2. Session:存在服务端。
  • 安全性
  1. Cookie:存在客户端,可能被篡改或窃取。
  2. Session:数据在服务器端,相对更安全。
  • 存储容量
  1. Cookie:一般有存储大小的限制,通常为 4KB 左右。
  2. Session:理论上存储容量没有严格限制,取决于服务器的配置和资源。
  • 生命周期
  1. Cookie:可以设置较长的生存时间,甚至可以持久存储。
  2. Session:默认情况下,当用户会话结束(如关闭浏览器),Session 数据会被销毁。但也可以通过编程设置 Session 的超时时间。

例如,在一个购物网站上选择了一些商品加入购物车。

  • 如果用Cookie,会保存在浏览器,其他人使用电脑时能看到购物车内容。
  • 如果用Session,会保存在服务端,只有在与服务器保持连接的会话期间能够访问这些信息。

4. 浏览器输入URL过程

1.浏览器解析 URL:确定要使用的协议(如 HTTP 、 HTTPS 等)、域名和资源路径。

2.发起 DNS 查询: 浏览器缓存、路由器缓存、DNS缓存 、host文件。

3.服务器建立 TCP 连接。

4.发送 HTTP 请求。

5.服务器处理请求:可能经过防火墙、网关、负载均衡器等。

6.服务器返回 HTTP 响应。

7.浏览器接收响应。

8.渲染页面。

9.关闭连接(根据协议和设置):在 HTTP 1.1 中,如果是持久连接,可能不会立即关闭;在 HTTP 2.0 中,通过多路复用,一个连接可处理多个请求和响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值