HTTP
669字约2分钟
2024-09-26
提问
- TCP和UDP的区别?
- HTTP和HTTPS的区别?
- HTTP1.0, HTTP2.0和HTTP3.0的区别?
- 为什么HTTP3.0使用了UDP?
- 常见的HTTP状态码
- GET和POST的区别?
TCP和UDP的区别
TCP是保证数据正确性的, 三次握手四次挥手. 使用滑动窗口保证乱序数据的正确性.
UDP是不保证正确性的.
HTTP和HTTPS的区别
HTTPS是加密的.
HTTPS 经由 HTTP 进行通信, 但利用 SSL/TLS 来加密数据包. HTTPS 开发的主要目的, 是提供对网站服务器的身份认证, 保护交换数据的隐私与完整性.
HTTP1.0, HTTP2.0和HTTP3.0的区别
HTTP/1.1 相比 HTTP/1.0 提高了什么性能?
使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销 支持管道(pipeline)网络传输, 只要第一个请求发出去了, 不必等其回来, 就可以发第二个请求出去, 可以减少整体的响应时间
HTTP2.0相对于HTTP1.0的优化
头部压缩
二进制格式
1.0中使用的是纯文本
多路复用
实现了真正的并发请求
服务端推送
HTTP3.0
放弃TCP, 使用UDP
为什么HTTP3.0使用了UDP?
为了解决HTTP2.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 的一部分 |