HTTP
HTTP
常见的 HTTP 请求方法
GET: 向服务器获取数据;
POST:将实体提交到指定的资源,通常会造成服务器资源的修改;
PUT:上传文件,更新数据;
DELETE:删除服务器上的对象;
HEAD:获取报文首部,与 GET 相比,不返回报文主体部分;
OPTIONS:询问支持的请求方法,用来跨域请求;
CONNECT:要求在与代理服务器通信时建立隧道,使用隧道进行 TCP通信;
TRACE: 回显服务器收到的请求,主要⽤于测试或诊断。
GET 和 POST 的请求的区别
- 数据位置
GET:数据通过URL传递,通常作为查询字符串附加在URL之后,以?为分隔符,多个参数之间以&分隔。
POST:数据包含在请求体中,对用户不可见。
- 数据长度
GET:由于数据在URL中,受到URL长度限制,因此传输的数据量有限。
POST:由于数据在请求体中,理论上可以传输更大的数据量,没有GET请求那样的限制。
- 数据类型
GET:GET 请求应该是幂等的,意味着多次执行相同的GET请求,服务器的状态不会改变。
POST:POST 请求不是幂等的,因为多次提交表单可能会导致资源状态的改变。
- 安全性:
GET:由于数据在URL中可见,因此不适合传输敏感信息,如密码或个人信息。
POST:数据在请求体中,对用户不可见,因此比GET更安全。
- 历史记录:
GET:GET请求会保留在浏览器的历史记录中。
POST:POST请求不会保留在浏览器的历史记录中。
- 用途:
GET:通常用于请求服务器发送资源。
POST:通常用于向服务器提交要处理的数据。
HTTP 1.0 / HTTP 1.1 的区别
持久连接: HTTP1.1 引入了持久连接,允许在同一个TCP连接上发送多个请求和响应,优化了 HTTP 1.0 每个请求都是独立的,服务器不保留任何请求之间的信息,减少了建立和关闭连接的开销。
管道化: HTTP1.0 请求/响应简单,客户端发送一个请求,服务器响应后关闭连接。而HTTP1.1 引入了管道化,允许客户端在发送请求后,不等待服务器响应,直接发送下一个请求,从而实现并发请求。
HTTP 1.1 和 HTTP 2.0 的区别
二进制协议: 在 HTTP/1.1 版中,报文的头信息必须是文本,数据体可以是文本,也可以是二进制。而 HTTP/2 则是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为"帧",可以分为头信息帧和数据帧。 帧的概念是它实现多路复用的基础。
多路复用: HTTP2.0 引入了多路复用,允许在一个连接上同时发送多个请求和响应,从而实现并发请求。
头部压缩: HTTP2.0 引入了头部压缩,可以减少请求头大小,从而提高传输效率。
服务器推送: HTTP/2 允许服务器未经请求,主动向客户端发送资源,使用服务器推送提前给客户端推送必要的资源,这样就可以相对减少一些延迟时间。
HTTP 3.0
HTTP/3 基于 UDP 协议实现了类似于 TCP 的多路复用数据流、传输可靠性等功能,这套功能被称为 QUIC 协议。
基于QUIC的传输层协议: 它提供了更快的连接建立时间和更好的拥塞控制,同时支持快速的连接迁移和 零RTT 握手。
0-RTT连接建立: 基于QUIC的特性,HTTP/3.0支持零RTT连接建立,使得客户端可以在不进行完整的握手过程的情况下发送数据,进一步减少了延迟。
无队头阻塞: 与HTTP/2不同,HTTP/3.0基于QUIC协议,每个请求流独立拥有滑动窗口,互不影响,从而彻底解决了队头阻塞问题。
什么是 HTTPS 协议
HTTPS是一种安全的通信协议,它在HTTP的基础上通过SSL/TLS协议提供了数据加密、完整性校验和身份验证。
加密: HTTPS使用SSL/TLS协议对数据进行加密,这意味着数据在传输过程中被转换成了一种无法被直接阅读的格式,只有拥有正确密钥的发送方和接收方才能理解数据的内容。
身份验证: 通过使用SSL/TLS证书,HTTPS协议能够验证服务器的身份,防止中间人攻击。客户端会检查服务器提供的证书是否由受信任的证书颁发机构(CA)签发,并且证书是否有效。
数据完整性: HTTPS确保数据在传输过程中没有被篡改。SSL/TLS协议提供了消息完整性检查,确保数据在传输过程中保持原样,任何未授权的修改都会被检测到。
隐私保护: 由于数据被加密,即使数据在传输过程中被截获,攻击者也无法读取数据的内容,从而保护了用户的隐私。
HTTPS就真的安全吗?
不一定。客户端通过浏览器向服务器发起HTTPS请求时,可能会被假基站获取全部信息,再由假基站和服务器完成TLS握手,从而导致信息泄露。
解决方法:假基站给服务端发送信息时用的是伪造的证书,这个证书是可以被客户端识别出非法的,只要客户端拒接接受假基站的证书就不会被假基站监听信息了。
- 0
- 0
- 0
- 0
- 0
- 0