HTTP
约 671 字大约 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 中使用的是纯文本。 3. 多路复用。
实现了真正的并发请求。 4. 服务端推送。
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 的一部分 |