http常见面试题 |计算机网络2
7. HTTP 常见字段有哪些?
客户端 | Host: www.A.com | Connection: keep-alive | Accept: / Accept-Encoding: gzip, deflate |
---|---|---|---|
服务端 | Content-Length: 1000 | Content-Type: text/html; charset=utf-8 | Content-Encoding: gzip |
第一次请求的页面缓存在本地,第二次请求相同的页面时,根据标识和服务器协商,服务器根据标识判断客户端是否可以使用本地缓存
强制缓存:不需要和服务器交互,根据时间来判断,需要服务器第一次返回的页面设置过期时间
协商缓存:要和服务器交互,两种方式
- 请求数据携带第一次返回页面时间,服务器根据时间对比当前页面最近更改时间,返回客户端是否使用缓存
- 请求数据携带第一次返回页面标识符,服务器根据标识符是否存在判断页面有无更改,若无返回数据更新标识符
文章图片
优点 | 缺点 | 性能 |
---|---|---|
简单 | 无状态双刃剑(Cookie) | 长连接 |
灵活和易于扩展 | 明文传输双刃剑 | 管道网络传输 HTTP/1.1 管道解决了请求的队头阻塞,但是没有解决响应的队头阻塞。 |
应用广泛和跨平台 | 不安全 | 队头阻塞 |
? 二进制格式
? 数据流
? 多路复用:同一条连接上并发传输多个 Stream
? 服务器推送
? 缺陷是还是有对头阻塞的问题:在tcpc层上面出现
11.HTTP3.0有什么优化? ? HTTP/2 队头阻塞的问题是因为 TCP,所以 HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP!
他是基于 UDP 的 QUIC 协议
QUIC 是一个在 UDP 之上的伪 TCP + TLS + HTTP/2 的多路复用的协议。
优点:
- 因为基于udp,没有对头堵塞
- 不是通过四元组进行socket连接,不需要三次握手+四次握手,通过双发的id标识信息,连接更快
- 从wifi到蜂窝网,迁移更快
- 客户端向服务器索要并验证服务器的公钥。
- 双方协商生产「会话秘钥」。
- 双方采用「会话秘钥」进行加密通信。
客户端 | 服务端 |
---|---|
ClientHello 文章图片 |
SeverHello 文章图片 |
客户端回应 文章图片 |
服务器的最后回应 文章图片 |
推荐阅读
- 虚拟机快照功能介绍
- 前端|1.在Javascript中什么是伪数组(如何将伪数组转化为标准数组?2.JavaScript数组的常用方法有哪些?3. 描述一下对“异步“和“同步的理解“)
- AIOps探索揭秘日志异常检测新方法
- 软件测试常见面试题
- Python实现半自动化网络管理与日常工作
- 子线程任务发生异常时主线程事务回滚示例过程
- 详解Python中的字符串常识
- 脚本部署HTTP服务协议
- 详细Http状态查询返回 HTTP 状态代码以响应请求
- 如何在WordPress中强制使用https