HTTP
约 691 字大约 2 分钟
2024-09-26
提问
- TCP 和 UDP 的区别?
- HTTP 和 HTTPS 的区别?
- HTTP 1.0, HTTP 2.0 和 HTTP 3.0 的区别?
- 为什么 HTTP 3.0 使用了 UDP?
- 常见的 HTTP 状态码
- GET 和 POST 的区别?
TCP 和 UDP 的区别
TCP 是保证数据正确性的, 三次握手四次挥手. 使用滑动窗口保证乱序数据的正确性.
UDP 是不保证正确性的.
HTTP和HTTPS的区别
HTTPS 是加密的.
HTTPS 经由 HTTP 进行通信, 但利用 SSL/TLS 来加密数据包. HTTPS 开发的主要目的, 是提供对网站服务器的身份认证, 保护交换数据的隐私与完整性.
HTTP 1.0, HTTP 2.0 和 HTTP 3.0 的区别
HTTP/1.1 相比 HTTP/1.0 提高了什么性能?
使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销. 支持管道(pipeline)网络传输, 只要第一个请求发出去了, 不必等其回来, 就可以发第二个请求出去, 可以减少整体的响应时间.
HTTP 2.0 相对于 HTTP 1.0 的优化
头部压缩.
二进制格式.
1.0 中使用的是纯文本.
多路复用.
实现了真正的并发请求.
服务端推送.
HTTP 3.0
放弃 TCP, 使用 UDP.
为什么 HTTP 3.0 使用了 UDP?
为了解决 HTTP 2.0 中由于使用 TPC 导致的队头堵塞问题和连接时间过长的问题. 本质上是将 TCP 的重要功能转移到了用户态来解决, 不在内核中解决.
常见的 HTTP 状态码
code | 含义 |
---|---|
200 | 成功 |
404 | 资源找不到 |
500 | 服务器错误 |
POST 和 GET 的区别
GET - 从指定的资源请求数据. POST - 向指定的资源提交要被处理的数据.
| | GET | POST | | ---------------- | ------------------------------------------------------------------------------------------------- | | 后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交) | | 书签 | 可收藏为书签 | 不可收藏为书签 | | 缓存 | 能被缓存 | 不能缓存 | | 编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. 为二进制数据使用多重编码 | | 历史 | 参数保留在浏览器历史中 | 参数不会保存在浏览器历史中 | | 对数据长度的限制 | 有限制. 当发送数据时, GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符) | 无限制 | | 对数据类型的限制 | 只允许 ASCII 字符 | 没有限制. 也允许二进制数据 | | 安全性 | 与 POST 相比, GET 的安全性较差, 因为所发送的数据是 URL 的一部分 |