了解css html tavascript 的语言
动态资源 :c/s的资源不一样,c存放的是一个程序,s/获取的文件是程序的执行结果
静态资源:c/s的资源是一样的
URN:是一种磁力链接
URI:我们常用
网站访问量:ip、pv(页面访问量)、UV(电脑访问)
网站访问量的计算:
http的功能对等于mysql:
GET=SELECT POST=INSERT PUT=UPDATE
HTTP的{1.0,1.1,2.0}的区别
1. 连接管理
HTTP/1.0
- 短连接:
- 每次请求都需要建立一个新的TCP连接,响应完成后立即关闭。
- 建立和关闭连接的开销很大,尤其是在高延迟或高并发场景下表现不佳。
- 无状态:
- 每次请求都是独立的,不共享状态信息。
HTTP/1.1
- 默认启用长连接:
- 使用
Connection: keep-alive
默认复用同一个TCP连接,可用于多个请求。 - 降低了频繁建立和关闭连接的开销,提升了性能。
- 使用
- 管道化(Pipelining):
- 支持在一个连接上发送多个请求,无需等待前一个请求完成。
- 但因为服务器需按顺序返回响应,容易受队头阻塞(Head-of-Line Blocking)影响,实际使用较少。
HTTP/2.0
- 多路复用(Multiplexing):
- 在一个TCP连接上同时发送多个请求和接收多个响应,不要求按顺序返回。
- 消除了队头阻塞问题,连接利用率显著提升。
- 更适合高并发和延迟敏感场景。
2. 数据传输
HTTP/1.0
- 文本协议:
- 请求和响应以纯文本形式发送,数据解析效率低。
- 一次请求对应一次响应:
- 不支持并行请求,资源加载慢。
HTTP/1.1
- 分块传输编码(Chunked Transfer Encoding):
- 支持动态内容,允许分块发送数据,不必等所有内容生成完成。
- 更丰富的头部功能:
- 如
Content-Encoding
(支持压缩)等头部字段提升了传输效率。
- 如
- 请求流水化:
- 虽然支持请求并发,但仍需按顺序返回响应,易受阻塞影响。
HTTP/2.0
- 二进制传输:
- 使用二进制帧代替文本传输,解析效率更高。
- 所有请求和响应被分割成帧(frame)并以流(stream)形式发送。
- 头部压缩:
- 使用 HPACK 压缩算法,大幅减少重复头部信息带来的传输冗余。
- 如多个请求具有相同的
User-Agent
、Cookie
字段,只传一次即可。
3. 并发性能
HTTP/1.0
- 不支持并发,每次只能处理一个请求,其他请求需等待。
HTTP/1.1
- 部分支持并发,通过管道化发送多个请求,但响应需按顺序返回。
- 队头阻塞:一个请求的延迟会阻塞后续请求。
HTTP/2.0
- 完全并发:
- 多个请求和响应可同时在一个连接中无序交替进行。
- 每个请求的处理独立,不受其他请求影响。
4. 新增功能
HTTP/1.1
- Host 头部:
- 支持虚拟主机,同一IP地址可以托管多个域名。
- 缓存控制:
- 增加
Cache-Control
、ETag
等字段优化缓存策略。
- 增加
- 错误状态码扩展:
- 引入了更多状态码,例如
100 Continue
、206 Partial Content
等。
- 引入了更多状态码,例如
- 分块传输:
- 支持动态生成数据时分块传输,适合长时间任务。
HTTP/2.0
- 服务器推送(Server Push):
- 允许服务器主动向客户端推送资源(如CSS、JS文件),无需客户端请求。
- 加速页面加载。
- 流量控制:
- 每个流都有优先级,重要资源可优先加载。
- 数据帧机制:
- 请求和响应被分为帧(Header Frame 和 Data Frame),实现更细粒度的控制。
5. 安全性
HTTP/1.0 和 HTTP/1.1
- 可与 SSL/TLS 配合使用,但未强制。
- 加密配置需要额外的步骤,容易出现问题。
HTTP/2.0
- 强烈推荐与 TLS/1.2 或更高版本结合。
- 实际部署中,几乎所有 HTTP/2.0 都运行在 HTTPS 上。
6. 实际使用场景
场景 | HTTP/1.0 | HTTP/1.1 | HTTP/2.0 |
---|---|---|---|
低流量网站 | 适用(简单实现) | 适用(默认版本) | 适用 |
高并发场景 | 性能瓶颈明显 | 较慢(队头阻塞) | 最佳选择 |
动态内容加载 | 不支持 | 支持(分块传输) | 更高效 |
移动网络 | 不推荐 | 尚可 | 高效,传输延迟低 |
总结表
特性 | HTTP/1.0 | HTTP/1.1 | HTTP/2.0 |
---|---|---|---|
连接管理 | 短连接 | 持久连接,支持管道化 | 持久连接,多路复用 |
传输方式 | 文本传输 | 文本传输 | 二进制传输 |
性能 | 差 | 中等(受队头阻塞影响) | 高效 |
头部压缩 | 不支持 | 不支持 | 支持(HPACK 算法) |
服务器推送 | 不支持 | 不支持 | 支持 |
安全性 | 未强制 | 可选加密 | 推荐与 HTTPS 配合 |